@gooddollar/goodprotocol 2.2.0-beta.1 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/artifacts/abis/CreateReserveExchange.min.json +1 -0
  2. package/artifacts/abis/IBancorExchangeProvider.min.json +1 -1
  3. package/artifacts/abis/IBroker.min.json +1 -1
  4. package/artifacts/abis/IdentityV3.min.json +1 -1
  5. package/artifacts/abis/IdentityV4.min.json +1 -1
  6. package/artifacts/abis/InvitesV2.min.json +1 -1
  7. package/artifacts/abis/UpdateReserveRatio.min.json +1 -0
  8. package/artifacts/abis/Voters.min.json +1 -0
  9. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  11. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  12. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  13. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  14. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  15. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +1 -1
  16. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  42. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  43. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.json +69 -0
  44. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  45. package/artifacts/contracts/MentoInterfaces.sol/IBroker.json +131 -4
  46. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  47. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  48. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  49. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  50. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  51. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +2 -2
  52. package/artifacts/contracts/fuseFaucet/Faucet.sol/Voters.dbg.json +4 -0
  53. package/artifacts/contracts/fuseFaucet/Faucet.sol/Voters.json +42 -0
  54. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  55. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  56. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  57. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  58. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  59. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  60. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  61. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  62. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  63. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  64. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  65. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  66. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  67. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  69. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  70. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +40 -2
  71. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.dbg.json +1 -1
  72. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.json +15 -2
  73. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  74. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  75. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  76. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +59 -2
  77. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest.json +2 -2
  95. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper.json +2 -2
  97. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  109. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  118. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  120. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  125. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  126. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  127. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  128. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +1 -1
  129. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +2 -2
  130. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  131. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  132. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  133. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  134. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  135. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  136. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  137. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  138. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  139. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  140. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  141. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  142. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  143. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  144. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  145. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  146. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  147. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  148. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  149. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  150. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  151. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  152. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  153. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  154. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  155. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  156. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  157. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  158. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  159. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  160. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  161. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  162. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  163. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  164. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  165. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  166. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  167. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  168. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  169. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  170. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  171. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  172. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +2 -2
  173. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  174. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  175. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  176. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  177. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  178. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  179. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  180. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.json +2 -2
  181. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  182. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  183. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  184. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  185. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  186. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  187. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  188. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  189. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  190. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  191. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  192. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  193. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  194. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  195. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  196. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  197. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  198. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  199. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  200. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  201. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  202. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  203. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  204. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  205. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  206. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  207. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  208. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.json +2 -2
  209. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  210. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  211. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  212. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  213. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  214. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  215. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  216. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  217. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  218. package/artifacts/contracts/utils/UpdateReserveRatio.sol/CreateReserveExchange.dbg.json +4 -0
  219. package/artifacts/contracts/utils/UpdateReserveRatio.sol/CreateReserveExchange.json +77 -0
  220. package/artifacts/contracts/utils/UpdateReserveRatio.sol/MentoExchange.dbg.json +4 -0
  221. package/artifacts/contracts/utils/UpdateReserveRatio.sol/MentoExchange.json +24 -0
  222. package/artifacts/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio.dbg.json +4 -0
  223. package/artifacts/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio.json +60 -0
  224. package/contracts/MentoInterfaces.sol +247 -203
  225. package/contracts/fuseFaucet/Faucet.sol +15 -2
  226. package/contracts/identity/IdentityV3.sol +5 -0
  227. package/contracts/identity/IdentityV4.sol +25 -3
  228. package/contracts/invite/InvitesV2.sol +30 -10
  229. package/contracts/reserve/GenericDistributionHelper.sol +35 -7
  230. package/contracts/ubi/UBISchemeV2.sol +8 -1
  231. package/contracts/utils/UpdateReserveRatio.sol +121 -0
  232. package/hardhat.config.ts +2 -2
  233. package/package.json +1 -3
  234. package/releases/deploy-settings.json +3 -0
  235. package/releases/deployment.json +29 -17
  236. package/test/helpers.ts +4 -1
  237. package/test/identity/IdentityV4.test.ts +16 -6
  238. package/test/invite/InvitesV2.test.ts +50 -5
  239. package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +0 -1
  240. package/types/contracts/MentoInterfaces.sol/IBancorExchangeProvider.ts +54 -0
  241. package/types/contracts/MentoInterfaces.sol/IBroker.ts +99 -7
  242. package/types/contracts/fuseFaucet/{Faucet.ts → Faucet.sol/Faucet.ts} +1 -1
  243. package/types/contracts/{utils/UpdateReserveRatioAfterXDC.sol/MentoExchange.ts → fuseFaucet/Faucet.sol/Voters.ts} +34 -12
  244. package/types/contracts/fuseFaucet/{Faucet copy.sol/index.ts → Faucet.sol/index.ts} +2 -1
  245. package/types/contracts/fuseFaucet/index.ts +2 -1
  246. package/types/contracts/identity/IdentityV3.ts +46 -0
  247. package/types/contracts/identity/IdentityV4.ts +22 -0
  248. package/types/contracts/invite/InvitesV2.ts +106 -0
  249. package/types/contracts/utils/{ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts → UpdateReserveRatio.sol/CreateReserveExchange.ts} +10 -32
  250. package/types/contracts/utils/UpdateReserveRatio.sol/index.ts +1 -0
  251. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +0 -1
  252. package/types/factories/contracts/MentoInterfaces.sol/IBancorExchangeProvider__factory.ts +69 -0
  253. package/types/factories/contracts/MentoInterfaces.sol/IBroker__factory.ts +131 -4
  254. package/types/factories/contracts/fuseFaucet/Faucet.sol/Faucet__factory.ts +914 -0
  255. package/types/factories/contracts/fuseFaucet/Faucet.sol/Voters__factory.ts +54 -0
  256. package/types/factories/contracts/fuseFaucet/Faucet.sol/index.ts +5 -0
  257. package/types/factories/contracts/fuseFaucet/index.ts +1 -1
  258. package/types/factories/contracts/identity/IdentityV3__factory.ts +39 -1
  259. package/types/factories/contracts/identity/IdentityV4__factory.ts +14 -1
  260. package/types/factories/contracts/invite/InvitesV2__factory.ts +58 -1
  261. package/types/factories/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper__factory.ts +1 -1
  262. package/types/factories/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest__factory.ts +1 -1
  263. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +1 -1
  264. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +1 -1
  265. package/types/factories/contracts/utils/BuyFromReserveHelper__factory.ts +1 -1
  266. package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +1 -1
  267. package/types/factories/contracts/utils/UpdateReserveRatio.sol/CreateReserveExchange__factory.ts +137 -0
  268. package/types/factories/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio__factory.ts +1 -1
  269. package/types/factories/contracts/utils/UpdateReserveRatio.sol/index.ts +1 -0
  270. package/types/hardhat.d.ts +18 -9
  271. package/types/index.ts +8 -4
  272. package/types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +0 -108
  273. package/types/contracts/IQuoter.sol/IQuoterV2.ts +0 -297
  274. package/types/contracts/IQuoter.sol/index.ts +0 -4
  275. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +0 -155
  276. package/types/contracts/Interfaces.sol/AToken.ts +0 -81
  277. package/types/contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts +0 -156
  278. package/types/contracts/Interfaces.sol/ILendingPoolV3.ts +0 -254
  279. package/types/contracts/fuseFaucet/Faucet copy.sol/DebugFaucet.ts +0 -1439
  280. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +0 -648
  281. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +0 -843
  282. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +0 -4
  283. package/types/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts +0 -1252
  284. package/types/contracts/mocks/GenericDistributionHelperTest.sol/CeloDistributionHelperTestHelper.ts +0 -1357
  285. package/types/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts +0 -1247
  286. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +0 -4
  287. package/types/contracts/reserve/GoodReserveADai.ts +0 -2212
  288. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts +0 -1808
  289. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +0 -4
  290. package/types/contracts/token/GoodDollar18.ts +0 -1871
  291. package/types/contracts/utils/BuyGDClone.sol/BuyGDCloneV2.ts +0 -464
  292. package/types/contracts/utils/BuyGDClone.sol/IQuoterV2.ts +0 -184
  293. package/types/contracts/utils/BuyGDClone.sol/ISwapRouter.ts +0 -306
  294. package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +0 -108
  295. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts +0 -81
  296. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +0 -5
  297. package/types/contracts/utils/ReserveRestore.sol/MentoExchange.ts +0 -81
  298. package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +0 -112
  299. package/types/contracts/utils/ReserveRestore.sol/index.ts +0 -5
  300. package/types/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC.ts +0 -122
  301. package/types/contracts/utils/UpdateReserveRatioAfterXDC.sol/index.ts +0 -5
  302. package/types/contracts/utils/UpdateReserveSettingsForXdc.sol/MentoExchange.ts +0 -81
  303. package/types/contracts/utils/UpdateReserveSettingsForXdc.sol/UpdateReserveRatioAfterXDC.ts +0 -122
  304. package/types/contracts/utils/UpdateReserveSettingsForXdc.sol/index.ts +0 -5
  305. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +0 -146
  306. package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +0 -226
  307. package/types/factories/contracts/IQuoter.sol/index.ts +0 -4
  308. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +0 -84
  309. package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +0 -36
  310. package/types/factories/contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts +0 -88
  311. package/types/factories/contracts/Interfaces.sol/ILendingPoolV3__factory.ts +0 -186
  312. package/types/factories/contracts/fuseFaucet/Faucet copy.sol/DebugFaucet__factory.ts +0 -945
  313. package/types/factories/contracts/fuseFaucet/Faucet copy.sol/index.ts +0 -4
  314. package/types/factories/contracts/fuseFaucet/Faucet__factory.ts +0 -914
  315. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +0 -572
  316. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +0 -482
  317. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +0 -4
  318. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +0 -929
  319. package/types/factories/contracts/mocks/GenericDistributionHelperTest.sol/CeloDistributionHelperTestHelper__factory.ts +0 -1017
  320. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +0 -935
  321. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +0 -4
  322. package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +0 -1502
  323. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +0 -1240
  324. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +0 -4
  325. package/types/factories/contracts/token/GoodDollar18__factory.ts +0 -1257
  326. package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDCloneV2__factory.ts +0 -415
  327. package/types/factories/contracts/utils/BuyGDClone.sol/IQuoterV2__factory.ts +0 -126
  328. package/types/factories/contracts/utils/BuyGDClone.sol/ISwapRouter__factory.ts +0 -220
  329. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +0 -86
  330. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +0 -39
  331. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +0 -152
  332. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +0 -5
  333. package/types/factories/contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts +0 -39
  334. package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +0 -95
  335. package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +0 -5
  336. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/MentoExchange__factory.ts +0 -39
  337. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC__factory.ts +0 -104
  338. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/index.ts +0 -5
  339. package/types/factories/contracts/utils/UpdateReserveSettingsForXdc.sol/MentoExchange__factory.ts +0 -39
  340. package/types/factories/contracts/utils/UpdateReserveSettingsForXdc.sol/UpdateReserveRatioAfterXDC__factory.ts +0 -115
  341. package/types/factories/contracts/utils/UpdateReserveSettingsForXdc.sol/index.ts +0 -5
@@ -484,6 +484,19 @@
484
484
  "stateMutability": "nonpayable",
485
485
  "type": "function"
486
486
  },
487
+ {
488
+ "inputs": [],
489
+ "name": "authenticationPeriod",
490
+ "outputs": [
491
+ {
492
+ "internalType": "uint256",
493
+ "name": "",
494
+ "type": "uint256"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
487
500
  {
488
501
  "inputs": [],
489
502
  "name": "avatar",
@@ -1155,8 +1168,8 @@
1155
1168
  "type": "function"
1156
1169
  }
1157
1170
  ],
1158
- "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051613eba61004c60003960008181610dbf01528181610dff0152818161136f015281816113af01526114270152613eba6000f3fe60806040526004361061025a5760003560e01c806301ffc9a71461025f57806302329a291461029457806308e0d29d146102b657806310154bad146102d6578063188efc16146102f65780631aaff63c146103165780631b027099146103465780631b3c90a814610366578063223668441461037b578063248a9ca31461038f578063291d9549146103af5780632b14dda8146103cf5780632cec5330146103ef5780632d0e9b46146104115780632f2ff15d1461043e57806336568abe1461045e5780633659cfe61461047e57806337a1a9871461049e5780633af32abf146104be5780633e6326fc146104de5780634125f0f2146104fe5780634162169f1461051f578063485cc9551461053f5780634a03813f1461055f5780634f1ef2861461057f57806352d1902d1461059257806354f9f7a3146105a75780635aef7de6146105c75780635c975abb146105e75780635f539d6914610600578063613200401461062057806367c759371461065757806391d148541461068e578063925e8c1a146106ae57806396a1ef79146106ce578063a061922d146106ee578063a217fddf1461070e578063b2a1de2214610723578063b30f7e7f1461073a578063c375c2ef14610751578063c6a276c214610771578063c73cc4ae14610791578063cadef5ac146107b1578063d21685f4146107e6578063d326281614610806578063d547741f14610826578063d6cd947314610846578063e1758bd81461085b578063e1e360ba14610870578063e63ab1e914610890578063e737031a146108b2578063f653b81e146108d2578063fe575a8714610904575b600080fd5b34801561026b57600080fd5b5061027f61027a3660046133c3565b610924565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102b46102af3660046133fb565b61095b565b005b3480156102c257600080fd5b506102b46102d136600461342d565b61098d565b3480156102e257600080fd5b506102b46102f136600461342d565b61099a565b34801561030257600080fd5b506102b461031136600461342d565b6109c4565b34801561032257600080fd5b50610338600080516020613d9783398151915281565b60405190815260200161028b565b34801561035257600080fd5b506102b4610361366004613515565b610a3e565b34801561037257600080fd5b506102b4610a6e565b34801561038757600080fd5b50600161027f565b34801561039b57600080fd5b506103386103aa366004613564565b610b95565b3480156103bb57600080fd5b506102b46103ca36600461342d565b610baa565b3480156103db57600080fd5b506102b46103ea36600461342d565b610bd3565b3480156103fb57600080fd5b50610404610c9d565b60405161028b91906135cd565b34801561041d57600080fd5b5061043161042c36600461342d565b610cb9565b60405161028b91906135e0565b34801561044a57600080fd5b506102b46104593660046135f4565b610d1f565b34801561046a57600080fd5b506102b46104793660046135f4565b610d3b565b34801561048a57600080fd5b506102b461049936600461342d565b610db5565b3480156104aa57600080fd5b506102b46104b936600461342d565b610e7a565b3480156104ca57600080fd5b5061027f6104d936600461342d565b610f38565b3480156104ea57600080fd5b50606754610431906001600160a01b031681565b34801561050a57600080fd5b5061019c54610431906001600160a01b031681565b34801561052b57600080fd5b50606554610431906001600160a01b031681565b34801561054b57600080fd5b506102b461055a366004613624565b611042565b34801561056b57600080fd5b5061027f61057a366004613652565b6112aa565b6102b461058d36600461367e565b611365565b34801561059e57600080fd5b5061033861141a565b3480156105b357600080fd5b506104046105c236600461342d565b6114c8565b3480156105d357600080fd5b50606654610431906001600160a01b031681565b3480156105f357600080fd5b506101305460ff1661027f565b34801561060c57600080fd5b506102b461061b36600461342d565b61165c565b34801561062c57600080fd5b5061043161063b36600461342d565b61019b602052600090815260409020546001600160a01b031681565b34801561066357600080fd5b50610431610672366004613564565b61019a602052600090815260409020546001600160a01b031681565b34801561069a57600080fd5b5061027f6106a93660046135f4565b611725565b3480156106ba57600080fd5b506102b46106c93660046136d7565b611750565b3480156106da57600080fd5b506102b46106e9366004613652565b61183a565b3480156106fa57600080fd5b5061033861070936600461342d565b6119e9565b34801561071a57600080fd5b50610338600081565b34801561072f57600080fd5b506103386101965481565b34801561074657600080fd5b506103386101975481565b34801561075d57600080fd5b506102b461076c36600461342d565b611a16565b34801561077d57600080fd5b506102b461078c36600461342d565b611b68565b34801561079d57600080fd5b5061027f6107ac36600461342d565b611cc7565b3480156107bd57600080fd5b506107d16107cc366004613564565b611d7e565b60405163ffffffff909116815260200161028b565b3480156107f257600080fd5b506102b461080136600461342d565b611db9565b34801561081257600080fd5b506102b461082136600461374b565b611eed565b34801561083257600080fd5b506102b46108413660046135f4565b611f94565b34801561085257600080fd5b506102b4611fb0565b34801561086757600080fd5b50610431611fe8565b34801561087c57600080fd5b5061033861088b36600461342d565b612075565b34801561089c57600080fd5b50610338600080516020613dd783398151915281565b3480156108be57600080fd5b506102b46108cd3660046137cf565b61212a565b3480156108de57600080fd5b506108f26108ed36600461342d565b61217f565b60405161028b9695949392919061382e565b34801561091057600080fd5b5061027f61091f36600461342d565b612247565b60006001600160e01b03198216637965db0b60e01b148061095557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613dd7833981519152610973816122ba565b8115610985576109816122c4565b5050565b610981612319565b610997814261183a565b50565b600080516020613d978339815191526109b2816122ba565b6109ba612353565b610981824661239a565b600080516020613d978339815191526109dc816122ba565b6109e4612353565b6109ed826124c7565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613d97833981519152610a56816122ba565b610a5e612353565b610a698383466127a0565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190613874565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190613874565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613d97833981519152610bc2816122ba565b610bca612353565b610981826124c7565b6000610bde816122ba565b6067546001600160a01b031615610c325760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c3b8261283b565b606654610c53906000906001600160a01b031661285e565b606654610c7890600080516020613dd7833981519152906001600160a01b031661285e565b60665461098190600080516020613d97833981519152906001600160a01b031661285e565b604051806080016040528060478152602001613e176047913981565b6000610cc482610f38565b15610ccd575090565b6001600160a01b03808316600090815261019b6020526040902054610cf29116610f38565b15610d1757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d2882610b95565b610d31816122ba565b610a698383612864565b6001600160a01b0381163314610dab5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c29565b61098182826128ea565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dfd5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e2f612951565b6001600160a01b031614610e555760405162461bcd60e51b8152600401610c29906138cb565b610e5e8161296d565b6040805160008082526020820190925261099791839190612975565b6001600160a01b03818116600090815261019b602052604090205416331480610eab5750336001600160a01b038216145b610ee65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610f63904261391b565b610f6d919061392e565b6001600160a01b0384166000908152610199602052604090206004015490915060ff16600103610fa957610fa183826112aa565b159392505050565b61019c546001600160a01b0316156110395761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610fec9086906004016135e0565b602060405180830381865afa925050508015611025575060408051601f3d908101601f1916820190925261102291810190613950565b60015b6110325750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110625750600054600160ff909116105b80611083575061107130612ae0565b158015611083575060005460ff166001145b6110e65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c29565b6000805460ff191660011790558015611109576000805461ff0019166101001790555b611111612aef565b611119612b16565b611160604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612b4a565b61116b60008461285e565b611183600080516020613dd78339815191528461285e565b61119b600080516020613d978339815191528461285e565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a69576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61019d546001600160a01b03831660009081526101996020526040812060040154909161010090910463ffffffff16106112e657506000610955565b6001600160a01b0383166000908152610199602052604081206004015461019d80549091610100900463ffffffff169081106113245761132461396d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16905080831061135b576001915050610955565b5060009392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113ad5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113df612951565b6001600160a01b0316146114055760405162461bcd60e51b8152600401610c29906138cb565b61140e8261296d565b61098182826001612975565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c29565b50600080516020613df783398151915290565b6001600160a01b0381166000908152610199602052604090206002018054606091906114f390613983565b80601f016020809104026020016040519081016040528092919081815260200182805461151f90613983565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506115ab9150505750919050565b61019c546001600160a01b0316156116465761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906115ee9086906004016135e0565b600060405180830381865afa92505050801561162c57506040513d6000823e601f3d908101601f1916820160405261162991908101906139bd565b60015b611032575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613d97833981519152611674816122ba565b61167c612353565b813b6116ca5760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c29565b6116d4824661239a565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613d97833981519152611768816122ba565b816117a55760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c29565b6117b261019d600061334f565b60005b828110156118345761019d8484838181106117d2576117d261396d565b90506020020160208101906117e79190613a2a565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061182c81613a4d565b9150506117b5565b50505050565b600080516020613d97833981519152611852816122ba565b61185a612353565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146118995760405162461bcd60e51b8152600401610c2990613a66565b6001600160a01b0383166000908152610199602052604081205462015180906118c2908561391b565b6118cc919061392e565b90506118d884826112aa565b1561198d576001600160a01b0384166000908152610199602052604090206004018054600191908290611917908290610100900463ffffffff16613a8f565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b038816600090815261019960205260409020600401549190910490911610905061198d576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500906119db9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611a115746610955565b919050565b600080516020613d97833981519152611a2e816122ba565b611a36612353565b61019c546001600160a01b031615801590611abe575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611a7d9085906004016135e0565b602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613950565b15611b275761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611af49085906004016135e0565b600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050505b611b30826124c7565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613d97833981519152611b80816122ba565b611b88612353565b61019c546001600160a01b031615801590611c10575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611bcf9085906004016135e0565b602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190613950565b15611c795761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611c469085906004016135e0565b600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611cf657506001919050565b61019c546001600160a01b031615610d175761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611d399085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613950565b60015b61095557506000919050565b61019d8181548110611d8f57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611dc233610f38565b611dde5760405162461bcd60e51b8152600401610c2990613a66565b611de781610f38565b158015611dfa5750611df881612247565b155b611e385760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c29565b6001600160a01b03818116600090815261019b60205260409020541615611e955760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b0384161480611f175750611f17600080516020613d9783398151915233611725565b611f545760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c29565b610a698383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8d92505050565b611f9d82610b95565b611fa6816122ba565b610a6983836128ea565b611fb8612353565b611fc133610f38565b611fdd5760405162461bcd60e51b8152600401610c2990613a66565b611fe6336124c7565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190613874565b905090565b6001600160a01b03811660009081526101996020526040812054156120b157506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d175761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba906120f49085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613ab3565b600080516020613d97833981519152612142816122ba565b61214a612353565b6121558585856127a0565b8115612178576001600160a01b0385166000908152610199602052604090208290555b5050505050565b61019960205260009081526040902080546001820154600283018054929391926121a890613983565b80601f01602080910402602001604051908101604052809291908181526020018280546121d490613983565b80156122215780601f106121f657610100808354040283529160200191612221565b820191906000526020600020905b81548152906001019060200180831161220457829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff908116900361227757506001919050565b61019c546001600160a01b031615610d175761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d399085906004016135e0565b6109978133612e0d565b6122cc612353565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123023390565b60405161230f91906135e0565b60405180910390a1565b612321612e66565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612302565b6101305460ff1615611fe65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c29565b6001600160a01b0382166000908152610199602052604090206004015460ff16156123fc5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c29565b600161019660008282546124109190613acc565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b1561248f57600161019760008282546124899190613acc565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061251457506001600160a01b0381166000908152610199602052604090206004015460ff166002145b156126b4576001610196600082825461252d919061391b565b9091555050803b151580156125455750600061019754115b15612564576001610197600082825461255e919061391b565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461258b90613983565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790613983565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101999092526040822082815560018101839055959650949350915061264b90506002830182613374565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b03161580159061273c575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf906126fb9084906004016135e0565b602060405180830381865afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613950565b156109975761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906127729084906004016135e0565b600060405180830381600087803b15801561278c57600080fd5b505af1158015612178573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156127e25760405162461bcd60e51b8152600401610c2990613adf565b6001600160a01b0384166000908152610199602052604090206002016128088482613b5d565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611834848361239a565b606780546001600160a01b0319166001600160a01b038316179055610997610a6e565b61098182825b61286e8282611725565b61098157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128a63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128f48282611725565b1561098157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613df7833981519152546001600160a01b031690565b610997612eb0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156129a857610a6983612f73565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612a02575060408051601f3d908101601f191682019092526129ff91810190613ab3565b60015b612a655760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c29565b600080516020613df78339815191528114612ad45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c29565b50610a6983838361300d565b6001600160a01b03163b151590565b600054610100900460ff16611fe65760405162461bcd60e51b8152600401610c2990613c1c565b600054610100900460ff16612b3d5760405162461bcd60e51b8152600401610c2990613c1c565b610130805460ff19169055565b600054610100900460ff16612b715760405162461bcd60e51b8152600401610c2990613c1c565b8151602092830120815191909201206101629190915561016355565b612b9682610f38565b612bb25760405162461bcd60e51b8152600401610c2990613a66565b6000815111612bef5760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c29565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612c315760405162461bcd60e51b8152600401610c2990613adf565b61019c546001600160a01b031615612d635761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612caa575060408051601f3d908101601f19168201909252612ca791810190613874565b60015b15612cb25790505b6001600160a01b0381161580612cd95750836001600160a01b0316816001600160a01b0316145b80612d0a57506001600160a01b0381166000908152610199602052604081206002018054612d0690613983565b9050115b612d615760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c29565b505b6001600160a01b038316600090815261019960205260408082209051612d8c9160020190613c67565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612dda8482613b5d565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612e178282611725565b61098157612e2481613032565b612e2f836020613044565b604051602001612e40929190613cdd565b60408051601f198184030181529082905262461bcd60e51b8252610c29916004016135cd565b6101305460ff16611fe65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c29565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d9190613874565b6001600160a01b031614611fe65760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c29565b612f7c81612ae0565b612fde5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c29565b600080516020613df783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613016836131df565b6000825111806130235750805b15610a6957611834838361321f565b60606109556001600160a01b03831660145b60606000613053836002613d4c565b61305e906002613acc565b6001600160401b038111156130755761307561344a565b6040519080825280601f01601f19166020018201604052801561309f576020820181803683370190505b509050600360fc1b816000815181106130ba576130ba61396d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106130e9576130e961396d565b60200101906001600160f81b031916908160001a905350600061310d846002613d4c565b613118906001613acc565b90505b6001811115613190576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061314c5761314c61396d565b1a60f81b8282815181106131625761316261396d565b60200101906001600160f81b031916908160001a90535060049490941c9361318981613d63565b905061311b565b5083156110325760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c29565b6131e881612f73565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061322a83612ae0565b6132855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c29565b600080846001600160a01b0316846040516132a09190613d7a565b600060405180830381855af49150503d80600081146132db576040519150601f19603f3d011682016040523d82523d6000602084013e6132e0565b606091505b50915091506133088282604051806060016040528060278152602001613e5e60279139613311565b95945050505050565b60608315613320575081611032565b61103283838151156133355781518083602001fd5b8060405162461bcd60e51b8152600401610c2991906135cd565b50805460008255600701600890049060005260206000209081019061099791906133aa565b50805461338090613983565b6000825580601f10613390575050565b601f01602090049060005260206000209081019061099791905b5b808211156133bf57600081556001016133ab565b5090565b6000602082840312156133d557600080fd5b81356001600160e01b03198116811461103257600080fd5b801515811461099757600080fd5b60006020828403121561340d57600080fd5b8135611032816133ed565b6001600160a01b038116811461099757600080fd5b60006020828403121561343f57600080fd5b813561103281613418565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134885761348861344a565b604052919050565b60006001600160401b038211156134a9576134a961344a565b50601f01601f191660200190565b60006134ca6134c584613490565b613460565b90508281528383830111156134de57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261350657600080fd5b611032838335602085016134b7565b6000806040838503121561352857600080fd5b823561353381613418565b915060208301356001600160401b0381111561354e57600080fd5b61355a858286016134f5565b9150509250929050565b60006020828403121561357657600080fd5b5035919050565b60005b83811015613598578181015183820152602001613580565b50506000910152565b600081518084526135b981602086016020860161357d565b601f01601f19169290920160200192915050565b60208152600061103260208301846135a1565b6001600160a01b0391909116815260200190565b6000806040838503121561360757600080fd5b82359150602083013561361981613418565b809150509250929050565b6000806040838503121561363757600080fd5b823561364281613418565b9150602083013561361981613418565b6000806040838503121561366557600080fd5b823561367081613418565b946020939093013593505050565b6000806040838503121561369157600080fd5b823561369c81613418565b915060208301356001600160401b038111156136b757600080fd5b8301601f810185136136c857600080fd5b61355a858235602084016134b7565b600080602083850312156136ea57600080fd5b82356001600160401b038082111561370157600080fd5b818501915085601f83011261371557600080fd5b81358181111561372457600080fd5b8660208260051b850101111561373957600080fd5b60209290920196919550909350505050565b60008060006040848603121561376057600080fd5b833561376b81613418565b925060208401356001600160401b038082111561378757600080fd5b818601915086601f83011261379b57600080fd5b8135818111156137aa57600080fd5b8760208285010111156137bc57600080fd5b6020830194508093505050509250925092565b600080600080608085870312156137e557600080fd5b84356137f081613418565b935060208501356001600160401b0381111561380b57600080fd5b613817878288016134f5565b949794965050505060408301359260600135919050565b86815285602082015260c06040820152600061384d60c08301876135a1565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b60006020828403121561388657600080fd5b815161103281613418565b6020808252602c90820152600080516020613db783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613db783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095557610955613905565b60008261394b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561396257600080fd5b8151611032816133ed565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061399757607f821691505b6020821081036139b757634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156139cf57600080fd5b81516001600160401b038111156139e557600080fd5b8201601f810184136139f657600080fd5b8051613a046134c582613490565b818152856020838501011115613a1957600080fd5b61330882602083016020860161357d565b600060208284031215613a3c57600080fd5b813560ff8116811461103257600080fd5b600060018201613a5f57613a5f613905565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613aac57613aac613905565b5092915050565b600060208284031215613ac557600080fd5b5051919050565b8082018082111561095557610955613905565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a6957600081815260208120601f850160051c81016020861015613b365750805b601f850160051c820191505b81811015613b5557828155600101613b42565b505050505050565b81516001600160401b03811115613b7657613b7661344a565b613b8a81613b848454613983565b84613b0f565b602080601f831160018114613bbf5760008415613ba75750858301515b600019600386901b1c1916600185901b178555613b55565b600085815260208120601f198616915b82811015613bee57888601518255948401946001909101908401613bcf565b5085821015613c0c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613c7581613983565b60018281168015613c8d5760018114613ca257613cd1565b60ff1984168752821515830287019450613cd1565b8760005260208060002060005b85811015613cc85781548a820152908401908201613caf565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613d0f81601785016020880161357d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d4081602884016020880161357d565b01602801949350505050565b808202811582820484141761095557610955613905565b600081613d7257613d72613905565b506000190190565b60008251613d8c81846020870161357d565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205a6c8c6a4ae389e5596f7baa926bbf7092f41f3ccc63c590b9a2b7011247957064736f6c63430008130033",
1159
- "deployedBytecode": "0x60806040526004361061025a5760003560e01c806301ffc9a71461025f57806302329a291461029457806308e0d29d146102b657806310154bad146102d6578063188efc16146102f65780631aaff63c146103165780631b027099146103465780631b3c90a814610366578063223668441461037b578063248a9ca31461038f578063291d9549146103af5780632b14dda8146103cf5780632cec5330146103ef5780632d0e9b46146104115780632f2ff15d1461043e57806336568abe1461045e5780633659cfe61461047e57806337a1a9871461049e5780633af32abf146104be5780633e6326fc146104de5780634125f0f2146104fe5780634162169f1461051f578063485cc9551461053f5780634a03813f1461055f5780634f1ef2861461057f57806352d1902d1461059257806354f9f7a3146105a75780635aef7de6146105c75780635c975abb146105e75780635f539d6914610600578063613200401461062057806367c759371461065757806391d148541461068e578063925e8c1a146106ae57806396a1ef79146106ce578063a061922d146106ee578063a217fddf1461070e578063b2a1de2214610723578063b30f7e7f1461073a578063c375c2ef14610751578063c6a276c214610771578063c73cc4ae14610791578063cadef5ac146107b1578063d21685f4146107e6578063d326281614610806578063d547741f14610826578063d6cd947314610846578063e1758bd81461085b578063e1e360ba14610870578063e63ab1e914610890578063e737031a146108b2578063f653b81e146108d2578063fe575a8714610904575b600080fd5b34801561026b57600080fd5b5061027f61027a3660046133c3565b610924565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102b46102af3660046133fb565b61095b565b005b3480156102c257600080fd5b506102b46102d136600461342d565b61098d565b3480156102e257600080fd5b506102b46102f136600461342d565b61099a565b34801561030257600080fd5b506102b461031136600461342d565b6109c4565b34801561032257600080fd5b50610338600080516020613d9783398151915281565b60405190815260200161028b565b34801561035257600080fd5b506102b4610361366004613515565b610a3e565b34801561037257600080fd5b506102b4610a6e565b34801561038757600080fd5b50600161027f565b34801561039b57600080fd5b506103386103aa366004613564565b610b95565b3480156103bb57600080fd5b506102b46103ca36600461342d565b610baa565b3480156103db57600080fd5b506102b46103ea36600461342d565b610bd3565b3480156103fb57600080fd5b50610404610c9d565b60405161028b91906135cd565b34801561041d57600080fd5b5061043161042c36600461342d565b610cb9565b60405161028b91906135e0565b34801561044a57600080fd5b506102b46104593660046135f4565b610d1f565b34801561046a57600080fd5b506102b46104793660046135f4565b610d3b565b34801561048a57600080fd5b506102b461049936600461342d565b610db5565b3480156104aa57600080fd5b506102b46104b936600461342d565b610e7a565b3480156104ca57600080fd5b5061027f6104d936600461342d565b610f38565b3480156104ea57600080fd5b50606754610431906001600160a01b031681565b34801561050a57600080fd5b5061019c54610431906001600160a01b031681565b34801561052b57600080fd5b50606554610431906001600160a01b031681565b34801561054b57600080fd5b506102b461055a366004613624565b611042565b34801561056b57600080fd5b5061027f61057a366004613652565b6112aa565b6102b461058d36600461367e565b611365565b34801561059e57600080fd5b5061033861141a565b3480156105b357600080fd5b506104046105c236600461342d565b6114c8565b3480156105d357600080fd5b50606654610431906001600160a01b031681565b3480156105f357600080fd5b506101305460ff1661027f565b34801561060c57600080fd5b506102b461061b36600461342d565b61165c565b34801561062c57600080fd5b5061043161063b36600461342d565b61019b602052600090815260409020546001600160a01b031681565b34801561066357600080fd5b50610431610672366004613564565b61019a602052600090815260409020546001600160a01b031681565b34801561069a57600080fd5b5061027f6106a93660046135f4565b611725565b3480156106ba57600080fd5b506102b46106c93660046136d7565b611750565b3480156106da57600080fd5b506102b46106e9366004613652565b61183a565b3480156106fa57600080fd5b5061033861070936600461342d565b6119e9565b34801561071a57600080fd5b50610338600081565b34801561072f57600080fd5b506103386101965481565b34801561074657600080fd5b506103386101975481565b34801561075d57600080fd5b506102b461076c36600461342d565b611a16565b34801561077d57600080fd5b506102b461078c36600461342d565b611b68565b34801561079d57600080fd5b5061027f6107ac36600461342d565b611cc7565b3480156107bd57600080fd5b506107d16107cc366004613564565b611d7e565b60405163ffffffff909116815260200161028b565b3480156107f257600080fd5b506102b461080136600461342d565b611db9565b34801561081257600080fd5b506102b461082136600461374b565b611eed565b34801561083257600080fd5b506102b46108413660046135f4565b611f94565b34801561085257600080fd5b506102b4611fb0565b34801561086757600080fd5b50610431611fe8565b34801561087c57600080fd5b5061033861088b36600461342d565b612075565b34801561089c57600080fd5b50610338600080516020613dd783398151915281565b3480156108be57600080fd5b506102b46108cd3660046137cf565b61212a565b3480156108de57600080fd5b506108f26108ed36600461342d565b61217f565b60405161028b9695949392919061382e565b34801561091057600080fd5b5061027f61091f36600461342d565b612247565b60006001600160e01b03198216637965db0b60e01b148061095557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613dd7833981519152610973816122ba565b8115610985576109816122c4565b5050565b610981612319565b610997814261183a565b50565b600080516020613d978339815191526109b2816122ba565b6109ba612353565b610981824661239a565b600080516020613d978339815191526109dc816122ba565b6109e4612353565b6109ed826124c7565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613d97833981519152610a56816122ba565b610a5e612353565b610a698383466127a0565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190613874565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190613874565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613d97833981519152610bc2816122ba565b610bca612353565b610981826124c7565b6000610bde816122ba565b6067546001600160a01b031615610c325760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c3b8261283b565b606654610c53906000906001600160a01b031661285e565b606654610c7890600080516020613dd7833981519152906001600160a01b031661285e565b60665461098190600080516020613d97833981519152906001600160a01b031661285e565b604051806080016040528060478152602001613e176047913981565b6000610cc482610f38565b15610ccd575090565b6001600160a01b03808316600090815261019b6020526040902054610cf29116610f38565b15610d1757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d2882610b95565b610d31816122ba565b610a698383612864565b6001600160a01b0381163314610dab5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c29565b61098182826128ea565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dfd5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e2f612951565b6001600160a01b031614610e555760405162461bcd60e51b8152600401610c29906138cb565b610e5e8161296d565b6040805160008082526020820190925261099791839190612975565b6001600160a01b03818116600090815261019b602052604090205416331480610eab5750336001600160a01b038216145b610ee65760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610f63904261391b565b610f6d919061392e565b6001600160a01b0384166000908152610199602052604090206004015490915060ff16600103610fa957610fa183826112aa565b159392505050565b61019c546001600160a01b0316156110395761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610fec9086906004016135e0565b602060405180830381865afa925050508015611025575060408051601f3d908101601f1916820190925261102291810190613950565b60015b6110325750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110625750600054600160ff909116105b80611083575061107130612ae0565b158015611083575060005460ff166001145b6110e65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c29565b6000805460ff191660011790558015611109576000805461ff0019166101001790555b611111612aef565b611119612b16565b611160604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612b4a565b61116b60008461285e565b611183600080516020613dd78339815191528461285e565b61119b600080516020613d978339815191528461285e565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a69576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61019d546001600160a01b03831660009081526101996020526040812060040154909161010090910463ffffffff16106112e657506000610955565b6001600160a01b0383166000908152610199602052604081206004015461019d80549091610100900463ffffffff169081106113245761132461396d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16905080831061135b576001915050610955565b5060009392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113ad5760405162461bcd60e51b8152600401610c2990613891565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113df612951565b6001600160a01b0316146114055760405162461bcd60e51b8152600401610c29906138cb565b61140e8261296d565b61098182826001612975565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114b55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c29565b50600080516020613df783398151915290565b6001600160a01b0381166000908152610199602052604090206002018054606091906114f390613983565b80601f016020809104026020016040519081016040528092919081815260200182805461151f90613983565b801561156c5780601f106115415761010080835404028352916020019161156c565b820191906000526020600020905b81548152906001019060200180831161154f57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506115ab9150505750919050565b61019c546001600160a01b0316156116465761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906115ee9086906004016135e0565b600060405180830381865afa92505050801561162c57506040513d6000823e601f3d908101601f1916820160405261162991908101906139bd565b60015b611032575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613d97833981519152611674816122ba565b61167c612353565b813b6116ca5760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c29565b6116d4824661239a565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613d97833981519152611768816122ba565b816117a55760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c29565b6117b261019d600061334f565b60005b828110156118345761019d8484838181106117d2576117d261396d565b90506020020160208101906117e79190613a2a565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061182c81613a4d565b9150506117b5565b50505050565b600080516020613d97833981519152611852816122ba565b61185a612353565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146118995760405162461bcd60e51b8152600401610c2990613a66565b6001600160a01b0383166000908152610199602052604081205462015180906118c2908561391b565b6118cc919061392e565b90506118d884826112aa565b1561198d576001600160a01b0384166000908152610199602052604090206004018054600191908290611917908290610100900463ffffffff16613a8f565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b038816600090815261019960205260409020600401549190910490911610905061198d576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500906119db9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611a115746610955565b919050565b600080516020613d97833981519152611a2e816122ba565b611a36612353565b61019c546001600160a01b031615801590611abe575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611a7d9085906004016135e0565b602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613950565b15611b275761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611af49085906004016135e0565b600060405180830381600087803b158015611b0e57600080fd5b505af1158015611b22573d6000803e3d6000fd5b505050505b611b30826124c7565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613d97833981519152611b80816122ba565b611b88612353565b61019c546001600160a01b031615801590611c10575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611bcf9085906004016135e0565b602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190613950565b15611c795761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611c469085906004016135e0565b600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611cf657506001919050565b61019c546001600160a01b031615610d175761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611d399085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613950565b60015b61095557506000919050565b61019d8181548110611d8f57600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611dc233610f38565b611dde5760405162461bcd60e51b8152600401610c2990613a66565b611de781610f38565b158015611dfa5750611df881612247565b155b611e385760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c29565b6001600160a01b03818116600090815261019b60205260409020541615611e955760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c29565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b0384161480611f175750611f17600080516020613d9783398151915233611725565b611f545760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c29565b610a698383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8d92505050565b611f9d82610b95565b611fa6816122ba565b610a6983836128ea565b611fb8612353565b611fc133610f38565b611fdd5760405162461bcd60e51b8152600401610c2990613a66565b611fe6336124c7565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190613874565b905090565b6001600160a01b03811660009081526101996020526040812054156120b157506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d175761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba906120f49085906004016135e0565b602060405180830381865afa925050508015611d72575060408051601f3d908101601f19168201909252611d6f91810190613ab3565b600080516020613d97833981519152612142816122ba565b61214a612353565b6121558585856127a0565b8115612178576001600160a01b0385166000908152610199602052604090208290555b5050505050565b61019960205260009081526040902080546001820154600283018054929391926121a890613983565b80601f01602080910402602001604051908101604052809291908181526020018280546121d490613983565b80156122215780601f106121f657610100808354040283529160200191612221565b820191906000526020600020905b81548152906001019060200180831161220457829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff908116900361227757506001919050565b61019c546001600160a01b031615610d175761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d399085906004016135e0565b6109978133612e0d565b6122cc612353565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123023390565b60405161230f91906135e0565b60405180910390a1565b612321612e66565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612302565b6101305460ff1615611fe65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c29565b6001600160a01b0382166000908152610199602052604090206004015460ff16156123fc5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c29565b600161019660008282546124109190613acc565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b1561248f57600161019760008282546124899190613acc565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061251457506001600160a01b0381166000908152610199602052604090206004015460ff166002145b156126b4576001610196600082825461252d919061391b565b9091555050803b151580156125455750600061019754115b15612564576001610197600082825461255e919061391b565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461258b90613983565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790613983565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101999092526040822082815560018101839055959650949350915061264b90506002830182613374565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b03161580159061273c575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf906126fb9084906004016135e0565b602060405180830381865afa158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190613950565b156109975761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906127729084906004016135e0565b600060405180830381600087803b15801561278c57600080fd5b505af1158015612178573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156127e25760405162461bcd60e51b8152600401610c2990613adf565b6001600160a01b0384166000908152610199602052604090206002016128088482613b5d565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611834848361239a565b606780546001600160a01b0319166001600160a01b038316179055610997610a6e565b61098182825b61286e8282611725565b61098157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128a63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6128f48282611725565b1561098157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613df7833981519152546001600160a01b031690565b610997612eb0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156129a857610a6983612f73565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612a02575060408051601f3d908101601f191682019092526129ff91810190613ab3565b60015b612a655760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c29565b600080516020613df78339815191528114612ad45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c29565b50610a6983838361300d565b6001600160a01b03163b151590565b600054610100900460ff16611fe65760405162461bcd60e51b8152600401610c2990613c1c565b600054610100900460ff16612b3d5760405162461bcd60e51b8152600401610c2990613c1c565b610130805460ff19169055565b600054610100900460ff16612b715760405162461bcd60e51b8152600401610c2990613c1c565b8151602092830120815191909201206101629190915561016355565b612b9682610f38565b612bb25760405162461bcd60e51b8152600401610c2990613a66565b6000815111612bef5760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c29565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612c315760405162461bcd60e51b8152600401610c2990613adf565b61019c546001600160a01b031615612d635761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612caa575060408051601f3d908101601f19168201909252612ca791810190613874565b60015b15612cb25790505b6001600160a01b0381161580612cd95750836001600160a01b0316816001600160a01b0316145b80612d0a57506001600160a01b0381166000908152610199602052604081206002018054612d0690613983565b9050115b612d615760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c29565b505b6001600160a01b038316600090815261019960205260408082209051612d8c9160020190613c67565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612dda8482613b5d565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612e178282611725565b61098157612e2481613032565b612e2f836020613044565b604051602001612e40929190613cdd565b60408051601f198184030181529082905262461bcd60e51b8252610c29916004016135cd565b6101305460ff16611fe65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c29565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1d9190613874565b6001600160a01b031614611fe65760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c29565b612f7c81612ae0565b612fde5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c29565b600080516020613df783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613016836131df565b6000825111806130235750805b15610a6957611834838361321f565b60606109556001600160a01b03831660145b60606000613053836002613d4c565b61305e906002613acc565b6001600160401b038111156130755761307561344a565b6040519080825280601f01601f19166020018201604052801561309f576020820181803683370190505b509050600360fc1b816000815181106130ba576130ba61396d565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106130e9576130e961396d565b60200101906001600160f81b031916908160001a905350600061310d846002613d4c565b613118906001613acc565b90505b6001811115613190576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061314c5761314c61396d565b1a60f81b8282815181106131625761316261396d565b60200101906001600160f81b031916908160001a90535060049490941c9361318981613d63565b905061311b565b5083156110325760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c29565b6131e881612f73565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061322a83612ae0565b6132855760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c29565b600080846001600160a01b0316846040516132a09190613d7a565b600060405180830381855af49150503d80600081146132db576040519150601f19603f3d011682016040523d82523d6000602084013e6132e0565b606091505b50915091506133088282604051806060016040528060278152602001613e5e60279139613311565b95945050505050565b60608315613320575081611032565b61103283838151156133355781518083602001fd5b8060405162461bcd60e51b8152600401610c2991906135cd565b50805460008255600701600890049060005260206000209081019061099791906133aa565b50805461338090613983565b6000825580601f10613390575050565b601f01602090049060005260206000209081019061099791905b5b808211156133bf57600081556001016133ab565b5090565b6000602082840312156133d557600080fd5b81356001600160e01b03198116811461103257600080fd5b801515811461099757600080fd5b60006020828403121561340d57600080fd5b8135611032816133ed565b6001600160a01b038116811461099757600080fd5b60006020828403121561343f57600080fd5b813561103281613418565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134885761348861344a565b604052919050565b60006001600160401b038211156134a9576134a961344a565b50601f01601f191660200190565b60006134ca6134c584613490565b613460565b90508281528383830111156134de57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261350657600080fd5b611032838335602085016134b7565b6000806040838503121561352857600080fd5b823561353381613418565b915060208301356001600160401b0381111561354e57600080fd5b61355a858286016134f5565b9150509250929050565b60006020828403121561357657600080fd5b5035919050565b60005b83811015613598578181015183820152602001613580565b50506000910152565b600081518084526135b981602086016020860161357d565b601f01601f19169290920160200192915050565b60208152600061103260208301846135a1565b6001600160a01b0391909116815260200190565b6000806040838503121561360757600080fd5b82359150602083013561361981613418565b809150509250929050565b6000806040838503121561363757600080fd5b823561364281613418565b9150602083013561361981613418565b6000806040838503121561366557600080fd5b823561367081613418565b946020939093013593505050565b6000806040838503121561369157600080fd5b823561369c81613418565b915060208301356001600160401b038111156136b757600080fd5b8301601f810185136136c857600080fd5b61355a858235602084016134b7565b600080602083850312156136ea57600080fd5b82356001600160401b038082111561370157600080fd5b818501915085601f83011261371557600080fd5b81358181111561372457600080fd5b8660208260051b850101111561373957600080fd5b60209290920196919550909350505050565b60008060006040848603121561376057600080fd5b833561376b81613418565b925060208401356001600160401b038082111561378757600080fd5b818601915086601f83011261379b57600080fd5b8135818111156137aa57600080fd5b8760208285010111156137bc57600080fd5b6020830194508093505050509250925092565b600080600080608085870312156137e557600080fd5b84356137f081613418565b935060208501356001600160401b0381111561380b57600080fd5b613817878288016134f5565b949794965050505060408301359260600135919050565b86815285602082015260c06040820152600061384d60c08301876135a1565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b60006020828403121561388657600080fd5b815161103281613418565b6020808252602c90820152600080516020613db783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613db783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095557610955613905565b60008261394b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561396257600080fd5b8151611032816133ed565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061399757607f821691505b6020821081036139b757634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156139cf57600080fd5b81516001600160401b038111156139e557600080fd5b8201601f810184136139f657600080fd5b8051613a046134c582613490565b818152856020838501011115613a1957600080fd5b61330882602083016020860161357d565b600060208284031215613a3c57600080fd5b813560ff8116811461103257600080fd5b600060018201613a5f57613a5f613905565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613aac57613aac613905565b5092915050565b600060208284031215613ac557600080fd5b5051919050565b8082018082111561095557610955613905565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a6957600081815260208120601f850160051c81016020861015613b365750805b601f850160051c820191505b81811015613b5557828155600101613b42565b505050505050565b81516001600160401b03811115613b7657613b7661344a565b613b8a81613b848454613983565b84613b0f565b602080601f831160018114613bbf5760008415613ba75750858301515b600019600386901b1c1916600185901b178555613b55565b600085815260208120601f198616915b82811015613bee57888601518255948401946001909101908401613bcf565b5085821015613c0c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613c7581613983565b60018281168015613c8d5760018114613ca257613cd1565b60ff1984168752821515830287019450613cd1565b8760005260208060002060005b85811015613cc85781548a820152908401908201613caf565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613d0f81601785016020880161357d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d4081602884016020880161357d565b01602801949350505050565b808202811582820484141761095557610955613905565b600081613d7257613d72613905565b506000190190565b60008251613d8c81846020870161357d565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205a6c8c6a4ae389e5596f7baa926bbf7092f41f3ccc63c590b9a2b7011247957064736f6c63430008130033",
1171
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161403d61004c60003960008181610e2d01528181610e6d015281816113cc0152818161140c0152611484015261403d6000f3fe6080604052600436106102655760003560e01c806301ffc9a71461026a57806302329a291461029f57806308e0d29d146102c157806310154bad146102e1578063188efc16146103015780631aaff63c146103215780631b027099146103515780631b3c90a8146103715780632236684414610386578063248a9ca31461039a578063291d9549146103ba5780632b14dda8146103da5780632cec5330146103fa5780632d0e9b461461041c5780632f2ff15d1461044957806331b376e21461046957806336568abe1461047e5780633659cfe61461049e57806337a1a987146104be5780633af32abf146104de5780633e6326fc146104fe5780634125f0f21461051e5780634162169f1461053f578063485cc9551461055f5780634a03813f1461057f5780634f1ef2861461059f57806352d1902d146105b257806354f9f7a3146105c75780635aef7de6146105e75780635c975abb146106075780635f539d6914610620578063613200401461064057806367c759371461067757806391d14854146106ae578063925e8c1a146106ce57806396a1ef79146106ee578063a061922d1461070e578063a217fddf1461072e578063b2a1de2214610743578063b30f7e7f1461075a578063c375c2ef14610771578063c6a276c214610791578063c73cc4ae146107b1578063cadef5ac146107d1578063d21685f414610806578063d326281614610826578063d547741f14610846578063d6cd947314610866578063e1758bd81461087b578063e1e360ba14610890578063e63ab1e9146108b0578063e737031a146108d2578063f653b81e146108f2578063fe575a8714610924575b600080fd5b34801561027657600080fd5b5061028a610285366004613546565b610944565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102bf6102ba36600461357e565b61097b565b005b3480156102cd57600080fd5b506102bf6102dc3660046135b0565b6109ad565b3480156102ed57600080fd5b506102bf6102fc3660046135b0565b6109ba565b34801561030d57600080fd5b506102bf61031c3660046135b0565b6109e4565b34801561032d57600080fd5b50610343600080516020613f1a83398151915281565b604051908152602001610296565b34801561035d57600080fd5b506102bf61036c366004613698565b610a5e565b34801561037d57600080fd5b506102bf610a8e565b34801561039257600080fd5b50600161028a565b3480156103a657600080fd5b506103436103b53660046136e7565b610bb5565b3480156103c657600080fd5b506102bf6103d53660046135b0565b610bca565b3480156103e657600080fd5b506102bf6103f53660046135b0565b610bf3565b34801561040657600080fd5b5061040f610cbd565b6040516102969190613750565b34801561042857600080fd5b5061043c6104373660046135b0565b610cd9565b6040516102969190613763565b34801561045557600080fd5b506102bf610464366004613777565b610d3f565b34801561047557600080fd5b50610343610d5b565b34801561048a57600080fd5b506102bf610499366004613777565b610da9565b3480156104aa57600080fd5b506102bf6104b93660046135b0565b610e23565b3480156104ca57600080fd5b506102bf6104d93660046135b0565b610ee8565b3480156104ea57600080fd5b5061028a6104f93660046135b0565b610fa6565b34801561050a57600080fd5b5060675461043c906001600160a01b031681565b34801561052a57600080fd5b5061019c5461043c906001600160a01b031681565b34801561054b57600080fd5b5060655461043c906001600160a01b031681565b34801561056b57600080fd5b506102bf61057a3660046137a7565b6110b0565b34801561058b57600080fd5b5061028a61059a3660046137d5565b611318565b6102bf6105ad366004613801565b6113c2565b3480156105be57600080fd5b50610343611477565b3480156105d357600080fd5b5061040f6105e23660046135b0565b611525565b3480156105f357600080fd5b5060665461043c906001600160a01b031681565b34801561061357600080fd5b506101305460ff1661028a565b34801561062c57600080fd5b506102bf61063b3660046135b0565b6116b9565b34801561064c57600080fd5b5061043c61065b3660046135b0565b61019b602052600090815260409020546001600160a01b031681565b34801561068357600080fd5b5061043c6106923660046136e7565b61019a602052600090815260409020546001600160a01b031681565b3480156106ba57600080fd5b5061028a6106c9366004613777565b611782565b3480156106da57600080fd5b506102bf6106e936600461385a565b6117ad565b3480156106fa57600080fd5b506102bf6107093660046137d5565b61194b565b34801561071a57600080fd5b506103436107293660046135b0565b611b6c565b34801561073a57600080fd5b50610343600081565b34801561074f57600080fd5b506103436101965481565b34801561076657600080fd5b506103436101975481565b34801561077d57600080fd5b506102bf61078c3660046135b0565b611b99565b34801561079d57600080fd5b506102bf6107ac3660046135b0565b611ceb565b3480156107bd57600080fd5b5061028a6107cc3660046135b0565b611e4a565b3480156107dd57600080fd5b506107f16107ec3660046136e7565b611f01565b60405163ffffffff9091168152602001610296565b34801561081257600080fd5b506102bf6108213660046135b0565b611f3c565b34801561083257600080fd5b506102bf6108413660046138ce565b612070565b34801561085257600080fd5b506102bf610861366004613777565b612117565b34801561087257600080fd5b506102bf612133565b34801561088757600080fd5b5061043c61216b565b34801561089c57600080fd5b506103436108ab3660046135b0565b6121f8565b3480156108bc57600080fd5b50610343600080516020613f5a83398151915281565b3480156108de57600080fd5b506102bf6108ed366004613952565b6122ad565b3480156108fe57600080fd5b5061091261090d3660046135b0565b612302565b604051610296969594939291906139b1565b34801561093057600080fd5b5061028a61093f3660046135b0565b6123ca565b60006001600160e01b03198216637965db0b60e01b148061097557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613f5a8339815191526109938161243d565b81156109a5576109a1612447565b5050565b6109a161249c565b6109b7814261194b565b50565b600080516020613f1a8339815191526109d28161243d565b6109da6124d6565b6109a1824661251d565b600080516020613f1a8339815191526109fc8161243d565b610a046124d6565b610a0d8261264a565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613f1a833981519152610a768161243d565b610a7e6124d6565b610a89838346612923565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1591906139f7565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9391906139f7565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613f1a833981519152610be28161243d565b610bea6124d6565b6109a18261264a565b6000610bfe8161243d565b6067546001600160a01b031615610c525760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c5b826129be565b606654610c73906000906001600160a01b03166129e1565b606654610c9890600080516020613f5a833981519152906001600160a01b03166129e1565b6066546109a190600080516020613f1a833981519152906001600160a01b03166129e1565b604051806080016040528060478152602001613f9a6047913981565b6000610ce482610fa6565b15610ced575090565b6001600160a01b03808316600090815261019b6020526040902054610d129116610fa6565b15610d3757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d4882610bb5565b610d518161243d565b610a8983836129e7565b61019d805460009190610d7090600190613a2a565b81548110610d8057610d80613a3d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16919050565b6001600160a01b0381163314610e195760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c49565b6109a18282612a6d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e6b5760405162461bcd60e51b8152600401610c4990613a53565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e9d612ad4565b6001600160a01b031614610ec35760405162461bcd60e51b8152600401610c4990613a8d565b610ecc81612af0565b604080516000808252602082019092526109b791839190612af8565b6001600160a01b03818116600090815261019b602052604090205416331480610f195750336001600160a01b038216145b610f545760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c49565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610fd19042613a2a565b610fdb9190613ac7565b6001600160a01b0384166000908152610199602052604090206004015490915060ff166001036110175761100f8382611318565b159392505050565b61019c546001600160a01b0316156110a75761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061105a908690600401613763565b602060405180830381865afa925050508015611093575060408051601f3d908101601f1916820190925261109091810190613ae9565b60015b6110a05750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110d05750600054600160ff909116105b806110f157506110df30612c63565b1580156110f1575060005460ff166001145b6111545760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c49565b6000805460ff191660011790558015611177576000805461ff0019166101001790555b61117f612c72565b611187612c99565b6111ce604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612ccd565b6111d96000846129e1565b6111f1600080516020613f5a833981519152846129e1565b611209600080516020613f1a833981519152846129e1565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a89576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001600160a01b0382166000908152610199602052604081206004810154905461010090910463ffffffff16906369a937e611156113635761019d5461136090600190613a2a565b90505b600061019d8263ffffffff168154811061137f5761137f613a3d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff1690508084106113b757600192505050610975565b506000949350505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361140a5760405162461bcd60e51b8152600401610c4990613a53565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661143c612ad4565b6001600160a01b0316146114625760405162461bcd60e51b8152600401610c4990613a8d565b61146b82612af0565b6109a182826001612af8565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115125760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c49565b50600080516020613f7a83398151915290565b6001600160a01b03811660009081526101996020526040902060020180546060919061155090613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461157c90613b06565b80156115c95780601f1061159e576101008083540402835291602001916115c9565b820191906000526020600020905b8154815290600101906020018083116115ac57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506116089150505750919050565b61019c546001600160a01b0316156116a35761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a39061164b908690600401613763565b600060405180830381865afa92505050801561168957506040513d6000823e601f3d908101601f191682016040526116869190810190613b40565b60015b6110a0575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613f1a8339815191526116d18161243d565b6116d96124d6565b813b6117275760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c49565b611731824661251d565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613f1a8339815191526117c58161243d565b816118025760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c49565b61180f61019d60006134d2565b60005b82811015611945578015806118825750838361182f600184613a2a565b81811061183e5761183e613a3d565b90506020020160208101906118539190613bad565b60ff1684848381811061186857611868613a3d565b905060200201602081019061187d9190613bad565b60ff16115b6118ce5760405162461bcd60e51b815260206004820152601e60248201527f6f7074696f6e73206e6f7420696e20617363656e64696e67206f7264657200006044820152606401610c49565b61019d8484838181106118e3576118e3613a3d565b90506020020160208101906118f89190613bad565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061193d81613bd0565b915050611812565b50505050565b600080516020613f1a8339815191526119638161243d565b61196b6124d6565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146119aa5760405162461bcd60e51b8152600401610c4990613be9565b6001600160a01b0383166000908152610199602052604081205462015180906119d39085613a2a565b6119dd9190613ac7565b6001600160a01b038516600090815261019960205260409020549091506369a937e61115611a515761019d54611a1590600190613a2a565b6001600160a01b038516600090815261019960205260409020600401805463ffffffff929092166101000264ffffffff00199092169190911790555b611a5b8482611318565b15611b10576001600160a01b0384166000908152610199602052604090206004018054600191908290611a9a908290610100900463ffffffff16613c12565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b0388166000908152610199602052604090206004015491909104909116109050611b10576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f50090611b5e9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611b945746610975565b919050565b600080516020613f1a833981519152611bb18161243d565b611bb96124d6565b61019c546001600160a01b031615801590611c41575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611c00908590600401613763565b602060405180830381865afa158015611c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c419190613ae9565b15611caa5761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611c77908590600401613763565b600060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050505b611cb38261264a565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613f1a833981519152611d038161243d565b611d0b6124d6565b61019c546001600160a01b031615801590611d93575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d52908590600401613763565b602060405180830381865afa158015611d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d939190613ae9565b15611dfc5761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611dc9908590600401613763565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611e7957506001919050565b61019c546001600160a01b031615610d375761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611ebc908590600401613763565b602060405180830381865afa925050508015611ef5575060408051601f3d908101601f19168201909252611ef291810190613ae9565b60015b61097557506000919050565b61019d8181548110611f1257600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611f4533610fa6565b611f615760405162461bcd60e51b8152600401610c4990613be9565b611f6a81610fa6565b158015611f7d5750611f7b816123ca565b155b611fbb5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c49565b6001600160a01b03818116600090815261019b602052604090205416156120185760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c49565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b038416148061209a575061209a600080516020613f1a83398151915233611782565b6120d75760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c49565b610a898383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d1092505050565b61212082610bb5565b6121298161243d565b610a898383612a6d565b61213b6124d6565b61214433610fa6565b6121605760405162461bcd60e51b8152600401610c4990613be9565b6121693361264a565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156121cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f391906139f7565b905090565b6001600160a01b038116600090815261019960205260408120541561223457506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d375761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba90612277908590600401613763565b602060405180830381865afa925050508015611ef5575060408051601f3d908101601f19168201909252611ef291810190613c36565b600080516020613f1a8339815191526122c58161243d565b6122cd6124d6565b6122d8858585612923565b81156122fb576001600160a01b0385166000908152610199602052604090208290555b5050505050565b610199602052600090815260409020805460018201546002830180549293919261232b90613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461235790613b06565b80156123a45780601f10612379576101008083540402835291602001916123a4565b820191906000526020600020905b81548152906001019060200180831161238757829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff90811690036123fa57506001919050565b61019c546001600160a01b031615610d375761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611ebc908590600401613763565b6109b78133612f90565b61244f6124d6565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124853390565b6040516124929190613763565b60405180910390a1565b6124a4612fe9565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612485565b6101305460ff16156121695760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c49565b6001600160a01b0382166000908152610199602052604090206004015460ff161561257f5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c49565b600161019660008282546125939190613c4f565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b15612612576001610197600082825461260c9190613c4f565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061269757506001600160a01b0381166000908152610199602052604090206004015460ff166002145b1561283757600161019660008282546126b09190613a2a565b9091555050803b151580156126c85750600061019754115b156126e757600161019760008282546126e19190613a2a565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461270e90613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461273a90613b06565b80156127875780601f1061275c57610100808354040283529160200191612787565b820191906000526020600020905b81548152906001019060200180831161276a57829003601f168201915b505083516020808601919091206001600160a01b0388166000908152610199909252604082208281556001810183905595965094935091506127ce905060028301826134f7565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b0316158015906128bf575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061287e908490600401613763565b602060405180830381865afa15801561289b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bf9190613ae9565b156109b75761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906128f5908490600401613763565b600060405180830381600087803b15801561290f57600080fd5b505af11580156122fb573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156129655760405162461bcd60e51b8152600401610c4990613c62565b6001600160a01b03841660009081526101996020526040902060020161298b8482613ce0565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611945848361251d565b606780546001600160a01b0319166001600160a01b0383161790556109b7610a8e565b6109a182825b6129f18282611782565b6109a157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a293390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612a778282611782565b156109a157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613f7a833981519152546001600160a01b031690565b6109b7613033565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b2b57610a89836130f6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612b85575060408051601f3d908101601f19168201909252612b8291810190613c36565b60015b612be85760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c49565b600080516020613f7a8339815191528114612c575760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c49565b50610a89838383613190565b6001600160a01b03163b151590565b600054610100900460ff166121695760405162461bcd60e51b8152600401610c4990613d9f565b600054610100900460ff16612cc05760405162461bcd60e51b8152600401610c4990613d9f565b610130805460ff19169055565b600054610100900460ff16612cf45760405162461bcd60e51b8152600401610c4990613d9f565b8151602092830120815191909201206101629190915561016355565b612d1982610fa6565b612d355760405162461bcd60e51b8152600401610c4990613be9565b6000815111612d725760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c49565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612db45760405162461bcd60e51b8152600401610c4990613c62565b61019c546001600160a01b031615612ee65761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612e2d575060408051601f3d908101601f19168201909252612e2a918101906139f7565b60015b15612e355790505b6001600160a01b0381161580612e5c5750836001600160a01b0316816001600160a01b0316145b80612e8d57506001600160a01b0381166000908152610199602052604081206002018054612e8990613b06565b9050115b612ee45760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c49565b505b6001600160a01b038316600090815261019960205260408082209051612f0f9160020190613dea565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612f5d8482613ce0565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612f9a8282611782565b6109a157612fa7816131b5565b612fb28360206131c7565b604051602001612fc3929190613e60565b60408051601f198184030181529082905262461bcd60e51b8252610c4991600401613750565b6101305460ff166121695760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c49565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa15801561307c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a091906139f7565b6001600160a01b0316146121695760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c49565b6130ff81612c63565b6131615760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c49565b600080516020613f7a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61319983613362565b6000825111806131a65750805b15610a895761194583836133a2565b60606109756001600160a01b03831660145b606060006131d6836002613ecf565b6131e1906002613c4f565b6001600160401b038111156131f8576131f86135cd565b6040519080825280601f01601f191660200182016040528015613222576020820181803683370190505b509050600360fc1b8160008151811061323d5761323d613a3d565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061326c5761326c613a3d565b60200101906001600160f81b031916908160001a9053506000613290846002613ecf565b61329b906001613c4f565b90505b6001811115613313576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106132cf576132cf613a3d565b1a60f81b8282815181106132e5576132e5613a3d565b60200101906001600160f81b031916908160001a90535060049490941c9361330c81613ee6565b905061329e565b5083156110a05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c49565b61336b816130f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606133ad83612c63565b6134085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c49565b600080846001600160a01b0316846040516134239190613efd565b600060405180830381855af49150503d806000811461345e576040519150601f19603f3d011682016040523d82523d6000602084013e613463565b606091505b509150915061348b8282604051806060016040528060278152602001613fe160279139613494565b95945050505050565b606083156134a35750816110a0565b6110a083838151156134b85781518083602001fd5b8060405162461bcd60e51b8152600401610c499190613750565b5080546000825560070160089004906000526020600020908101906109b7919061352d565b50805461350390613b06565b6000825580601f10613513575050565b601f0160209004906000526020600020908101906109b791905b5b80821115613542576000815560010161352e565b5090565b60006020828403121561355857600080fd5b81356001600160e01b0319811681146110a057600080fd5b80151581146109b757600080fd5b60006020828403121561359057600080fd5b81356110a081613570565b6001600160a01b03811681146109b757600080fd5b6000602082840312156135c257600080fd5b81356110a08161359b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561360b5761360b6135cd565b604052919050565b60006001600160401b0382111561362c5761362c6135cd565b50601f01601f191660200190565b600061364d61364884613613565b6135e3565b905082815283838301111561366157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261368957600080fd5b6110a08383356020850161363a565b600080604083850312156136ab57600080fd5b82356136b68161359b565b915060208301356001600160401b038111156136d157600080fd5b6136dd85828601613678565b9150509250929050565b6000602082840312156136f957600080fd5b5035919050565b60005b8381101561371b578181015183820152602001613703565b50506000910152565b6000815180845261373c816020860160208601613700565b601f01601f19169290920160200192915050565b6020815260006110a06020830184613724565b6001600160a01b0391909116815260200190565b6000806040838503121561378a57600080fd5b82359150602083013561379c8161359b565b809150509250929050565b600080604083850312156137ba57600080fd5b82356137c58161359b565b9150602083013561379c8161359b565b600080604083850312156137e857600080fd5b82356137f38161359b565b946020939093013593505050565b6000806040838503121561381457600080fd5b823561381f8161359b565b915060208301356001600160401b0381111561383a57600080fd5b8301601f8101851361384b57600080fd5b6136dd8582356020840161363a565b6000806020838503121561386d57600080fd5b82356001600160401b038082111561388457600080fd5b818501915085601f83011261389857600080fd5b8135818111156138a757600080fd5b8660208260051b85010111156138bc57600080fd5b60209290920196919550909350505050565b6000806000604084860312156138e357600080fd5b83356138ee8161359b565b925060208401356001600160401b038082111561390a57600080fd5b818601915086601f83011261391e57600080fd5b81358181111561392d57600080fd5b87602082850101111561393f57600080fd5b6020830194508093505050509250925092565b6000806000806080858703121561396857600080fd5b84356139738161359b565b935060208501356001600160401b0381111561398e57600080fd5b61399a87828801613678565b949794965050505060408301359260600135919050565b86815285602082015260c0604082015260006139d060c0830187613724565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b600060208284031215613a0957600080fd5b81516110a08161359b565b634e487b7160e01b600052601160045260246000fd5b8181038181111561097557610975613a14565b634e487b7160e01b600052603260045260246000fd5b6020808252602c90820152600080516020613f3a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613f3a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600082613ae457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215613afb57600080fd5b81516110a081613570565b600181811c90821680613b1a57607f821691505b602082108103613b3a57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613b5257600080fd5b81516001600160401b03811115613b6857600080fd5b8201601f81018413613b7957600080fd5b8051613b8761364882613613565b818152856020838501011115613b9c57600080fd5b61348b826020830160208601613700565b600060208284031215613bbf57600080fd5b813560ff811681146110a057600080fd5b600060018201613be257613be2613a14565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613c2f57613c2f613a14565b5092915050565b600060208284031215613c4857600080fd5b5051919050565b8082018082111561097557610975613a14565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a8957600081815260208120601f850160051c81016020861015613cb95750805b601f850160051c820191505b81811015613cd857828155600101613cc5565b505050505050565b81516001600160401b03811115613cf957613cf96135cd565b613d0d81613d078454613b06565b84613c92565b602080601f831160018114613d425760008415613d2a5750858301515b600019600386901b1c1916600185901b178555613cd8565b600085815260208120601f198616915b82811015613d7157888601518255948401946001909101908401613d52565b5085821015613d8f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613df881613b06565b60018281168015613e105760018114613e2557613e54565b60ff1984168752821515830287019450613e54565b8760005260208060002060005b85811015613e4b5781548a820152908401908201613e32565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613e92816017850160208801613700565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ec3816028840160208801613700565b01602801949350505050565b808202811582820484141761097557610975613a14565b600081613ef557613ef5613a14565b506000190190565b60008251613f0f818460208701613700565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045ce99f6d47449f241f482abfdbd309694d4f1a1c9acea93ddfef1fe1b2bc17464736f6c63430008130033",
1172
+ "deployedBytecode": "0x6080604052600436106102655760003560e01c806301ffc9a71461026a57806302329a291461029f57806308e0d29d146102c157806310154bad146102e1578063188efc16146103015780631aaff63c146103215780631b027099146103515780631b3c90a8146103715780632236684414610386578063248a9ca31461039a578063291d9549146103ba5780632b14dda8146103da5780632cec5330146103fa5780632d0e9b461461041c5780632f2ff15d1461044957806331b376e21461046957806336568abe1461047e5780633659cfe61461049e57806337a1a987146104be5780633af32abf146104de5780633e6326fc146104fe5780634125f0f21461051e5780634162169f1461053f578063485cc9551461055f5780634a03813f1461057f5780634f1ef2861461059f57806352d1902d146105b257806354f9f7a3146105c75780635aef7de6146105e75780635c975abb146106075780635f539d6914610620578063613200401461064057806367c759371461067757806391d14854146106ae578063925e8c1a146106ce57806396a1ef79146106ee578063a061922d1461070e578063a217fddf1461072e578063b2a1de2214610743578063b30f7e7f1461075a578063c375c2ef14610771578063c6a276c214610791578063c73cc4ae146107b1578063cadef5ac146107d1578063d21685f414610806578063d326281614610826578063d547741f14610846578063d6cd947314610866578063e1758bd81461087b578063e1e360ba14610890578063e63ab1e9146108b0578063e737031a146108d2578063f653b81e146108f2578063fe575a8714610924575b600080fd5b34801561027657600080fd5b5061028a610285366004613546565b610944565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b506102bf6102ba36600461357e565b61097b565b005b3480156102cd57600080fd5b506102bf6102dc3660046135b0565b6109ad565b3480156102ed57600080fd5b506102bf6102fc3660046135b0565b6109ba565b34801561030d57600080fd5b506102bf61031c3660046135b0565b6109e4565b34801561032d57600080fd5b50610343600080516020613f1a83398151915281565b604051908152602001610296565b34801561035d57600080fd5b506102bf61036c366004613698565b610a5e565b34801561037d57600080fd5b506102bf610a8e565b34801561039257600080fd5b50600161028a565b3480156103a657600080fd5b506103436103b53660046136e7565b610bb5565b3480156103c657600080fd5b506102bf6103d53660046135b0565b610bca565b3480156103e657600080fd5b506102bf6103f53660046135b0565b610bf3565b34801561040657600080fd5b5061040f610cbd565b6040516102969190613750565b34801561042857600080fd5b5061043c6104373660046135b0565b610cd9565b6040516102969190613763565b34801561045557600080fd5b506102bf610464366004613777565b610d3f565b34801561047557600080fd5b50610343610d5b565b34801561048a57600080fd5b506102bf610499366004613777565b610da9565b3480156104aa57600080fd5b506102bf6104b93660046135b0565b610e23565b3480156104ca57600080fd5b506102bf6104d93660046135b0565b610ee8565b3480156104ea57600080fd5b5061028a6104f93660046135b0565b610fa6565b34801561050a57600080fd5b5060675461043c906001600160a01b031681565b34801561052a57600080fd5b5061019c5461043c906001600160a01b031681565b34801561054b57600080fd5b5060655461043c906001600160a01b031681565b34801561056b57600080fd5b506102bf61057a3660046137a7565b6110b0565b34801561058b57600080fd5b5061028a61059a3660046137d5565b611318565b6102bf6105ad366004613801565b6113c2565b3480156105be57600080fd5b50610343611477565b3480156105d357600080fd5b5061040f6105e23660046135b0565b611525565b3480156105f357600080fd5b5060665461043c906001600160a01b031681565b34801561061357600080fd5b506101305460ff1661028a565b34801561062c57600080fd5b506102bf61063b3660046135b0565b6116b9565b34801561064c57600080fd5b5061043c61065b3660046135b0565b61019b602052600090815260409020546001600160a01b031681565b34801561068357600080fd5b5061043c6106923660046136e7565b61019a602052600090815260409020546001600160a01b031681565b3480156106ba57600080fd5b5061028a6106c9366004613777565b611782565b3480156106da57600080fd5b506102bf6106e936600461385a565b6117ad565b3480156106fa57600080fd5b506102bf6107093660046137d5565b61194b565b34801561071a57600080fd5b506103436107293660046135b0565b611b6c565b34801561073a57600080fd5b50610343600081565b34801561074f57600080fd5b506103436101965481565b34801561076657600080fd5b506103436101975481565b34801561077d57600080fd5b506102bf61078c3660046135b0565b611b99565b34801561079d57600080fd5b506102bf6107ac3660046135b0565b611ceb565b3480156107bd57600080fd5b5061028a6107cc3660046135b0565b611e4a565b3480156107dd57600080fd5b506107f16107ec3660046136e7565b611f01565b60405163ffffffff9091168152602001610296565b34801561081257600080fd5b506102bf6108213660046135b0565b611f3c565b34801561083257600080fd5b506102bf6108413660046138ce565b612070565b34801561085257600080fd5b506102bf610861366004613777565b612117565b34801561087257600080fd5b506102bf612133565b34801561088757600080fd5b5061043c61216b565b34801561089c57600080fd5b506103436108ab3660046135b0565b6121f8565b3480156108bc57600080fd5b50610343600080516020613f5a83398151915281565b3480156108de57600080fd5b506102bf6108ed366004613952565b6122ad565b3480156108fe57600080fd5b5061091261090d3660046135b0565b612302565b604051610296969594939291906139b1565b34801561093057600080fd5b5061028a61093f3660046135b0565b6123ca565b60006001600160e01b03198216637965db0b60e01b148061097557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020613f5a8339815191526109938161243d565b81156109a5576109a1612447565b5050565b6109a161249c565b6109b7814261194b565b50565b600080516020613f1a8339815191526109d28161243d565b6109da6124d6565b6109a1824661251d565b600080516020613f1a8339815191526109fc8161243d565b610a046124d6565b610a0d8261264a565b6001600160a01b03821660008181526101996020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b600080516020613f1a833981519152610a768161243d565b610a7e6124d6565b610a89838346612923565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1591906139f7565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9391906139f7565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b600080516020613f1a833981519152610be28161243d565b610bea6124d6565b6109a18261264a565b6000610bfe8161243d565b6067546001600160a01b031615610c525760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064015b60405180910390fd5b610c5b826129be565b606654610c73906000906001600160a01b03166129e1565b606654610c9890600080516020613f5a833981519152906001600160a01b03166129e1565b6066546109a190600080516020613f1a833981519152906001600160a01b03166129e1565b604051806080016040528060478152602001613f9a6047913981565b6000610ce482610fa6565b15610ced575090565b6001600160a01b03808316600090815261019b6020526040902054610d129116610fa6565b15610d3757506001600160a01b03908116600090815261019b60205260409020541690565b506000919050565b610d4882610bb5565b610d518161243d565b610a8983836129e7565b61019d805460009190610d7090600190613a2a565b81548110610d8057610d80613a3d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff16919050565b6001600160a01b0381163314610e195760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c49565b6109a18282612a6d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e6b5760405162461bcd60e51b8152600401610c4990613a53565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e9d612ad4565b6001600160a01b031614610ec35760405162461bcd60e51b8152600401610c4990613a8d565b610ecc81612af0565b604080516000808252602082019092526109b791839190612af8565b6001600160a01b03818116600090815261019b602052604090205416331480610f195750336001600160a01b038216145b610f545760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610c49565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319169055513392917f7cdef5f9c5cb8ce728661ede956fef26cb91eb4d7d2180cc041b73f9fef568d291a350565b6001600160a01b0381166000908152610199602052604081205481906201518090610fd19042613a2a565b610fdb9190613ac7565b6001600160a01b0384166000908152610199602052604090206004015490915060ff166001036110175761100f8382611318565b159392505050565b61019c546001600160a01b0316156110a75761019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061105a908690600401613763565b602060405180830381865afa925050508015611093575060408051601f3d908101601f1916820190925261109091810190613ae9565b60015b6110a05750600092915050565b9392505050565b50600092915050565b600054610100900460ff16158080156110d05750600054600160ff909116105b806110f157506110df30612c63565b1580156110f1575060005460ff166001145b6111545760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c49565b6000805460ff191660011790558015611177576000805461ff0019166101001790555b61117f612c72565b611187612c99565b6111ce604051806040016040528060088152602001674964656e7469747960c01b815250604051806040016040528060058152602001640312e302e360dc1b815250612ccd565b6111d96000846129e1565b6111f1600080516020613f5a833981519152846129e1565b611209600080516020613f1a833981519152846129e1565b61019c80546001600160a01b0384166001600160a01b031990911617905561019d805460018181018355600083905260088083047f71880bb8535eda3be1bc3614789b84ba72ab02d5ae26ba282fa1178bb7fea1e6908101805463ffffffff60046007978816810261010090810a8381021990941690931790935587548087018955858104850180549189168502840a808a0290840219909216919091179055875495860190975592840490910180549390941602900a60b48102930219169190911790558015610a89576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6001600160a01b0382166000908152610199602052604081206004810154905461010090910463ffffffff16906369a937e611156113635761019d5461136090600190613a2a565b90505b600061019d8263ffffffff168154811061137f5761137f613a3d565b6000918252602090912060088204015460079091166004026101000a900463ffffffff1690508084106113b757600192505050610975565b506000949350505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361140a5760405162461bcd60e51b8152600401610c4990613a53565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661143c612ad4565b6001600160a01b0316146114625760405162461bcd60e51b8152600401610c4990613a8d565b61146b82612af0565b6109a182826001612af8565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115125760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c49565b50600080516020613f7a83398151915290565b6001600160a01b03811660009081526101996020526040902060020180546060919061155090613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461157c90613b06565b80156115c95780601f1061159e576101008083540402835291602001916115c9565b820191906000526020600020905b8154815290600101906020018083116115ac57829003601f168201915b50508351602080860191909120600081815261019a909252604090912054949550936001600160a01b0380881691160392506116089150505750919050565b61019c546001600160a01b0316156116a35761019c546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a39061164b908690600401613763565b600060405180830381865afa92505050801561168957506040513d6000823e601f3d908101601f191682016040526116869190810190613b40565b60015b6110a0575050604080516020810190915260008152919050565b5050604080516020810190915260008152919050565b600080516020613f1a8339815191526116d18161243d565b6116d96124d6565b813b6117275760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e7472616374006044820152606401610c49565b611731824661251d565b6001600160a01b03821660008181526101996020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020613f1a8339815191526117c58161243d565b816118025760405162461bcd60e51b815260206004820152600d60248201526c656d707479206f7074696f6e7360981b6044820152606401610c49565b61180f61019d60006134d2565b60005b82811015611945578015806118825750838361182f600184613a2a565b81811061183e5761183e613a3d565b90506020020160208101906118539190613bad565b60ff1684848381811061186857611868613a3d565b905060200201602081019061187d9190613bad565b60ff16115b6118ce5760405162461bcd60e51b815260206004820152601e60248201527f6f7074696f6e73206e6f7420696e20617363656e64696e67206f7264657200006044820152606401610c49565b61019d8484838181106118e3576118e3613a3d565b90506020020160208101906118f89190613bad565b8154600181018355600092835260209092206008830401805463ffffffff60079094166004026101000a938402191660ff929092169092021790558061193d81613bd0565b915050611812565b50505050565b600080516020613f1a8339815191526119638161243d565b61196b6124d6565b6001600160a01b0383166000908152610199602052604090206004015460ff166001146119aa5760405162461bcd60e51b8152600401610c4990613be9565b6001600160a01b0383166000908152610199602052604081205462015180906119d39085613a2a565b6119dd9190613ac7565b6001600160a01b038516600090815261019960205260409020549091506369a937e61115611a515761019d54611a1590600190613a2a565b6001600160a01b038516600090815261019960205260409020600401805463ffffffff929092166101000264ffffffff00199092169190911790555b611a5b8482611318565b15611b10576001600160a01b0384166000908152610199602052604090206004018054600191908290611a9a908290610100900463ffffffff16613c12565b825463ffffffff91821661010093840a908102908302199091161790925561019d546001600160a01b0388166000908152610199602052604090206004015491909104909116109050611b10576001600160a01b038416600090815261019960205260409020600401805464ffffffff00191690555b6001600160a01b0384166000818152610199602052604090819020859055517fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f50090611b5e9086815260200190565b60405180910390a250505050565b6001600160a01b0381166000908152610199602052604090206003015480611b945746610975565b919050565b600080516020613f1a833981519152611bb18161243d565b611bb96124d6565b61019c546001600160a01b031615801590611c41575061019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611c00908590600401613763565b602060405180830381865afa158015611c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c419190613ae9565b15611caa5761019c5460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611c77908590600401613763565b600060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050505b611cb38261264a565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b600080516020613f1a833981519152611d038161243d565b611d0b6124d6565b61019c546001600160a01b031615801590611d93575061019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611d52908590600401613763565b602060405180830381865afa158015611d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d939190613ae9565b15611dfc5761019c546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611dc9908590600401613763565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b505050505b6001600160a01b03821660008181526101996020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610199602052604081206004015460ff16600203611e7957506001919050565b61019c546001600160a01b031615610d375761019c5460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611ebc908590600401613763565b602060405180830381865afa925050508015611ef5575060408051601f3d908101601f19168201909252611ef291810190613ae9565b60015b61097557506000919050565b61019d8181548110611f1257600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b611f4533610fa6565b611f615760405162461bcd60e51b8152600401610c4990613be9565b611f6a81610fa6565b158015611f7d5750611f7b816123ca565b155b611fbb5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610c49565b6001600160a01b03818116600090815261019b602052604090205416156120185760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b6044820152606401610c49565b6001600160a01b038116600081815261019b602052604080822080546001600160a01b0319163390811790915590519092917f18f7736ef54539debd9afd3c9500b106e12ae7c70e685f5a5efd727b1ce1d54c91a350565b336001600160a01b038416148061209a575061209a600080516020613f1a83398151915233611782565b6120d75760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5e995960921b6044820152606401610c49565b610a898383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d1092505050565b61212082610bb5565b6121298161243d565b610a898383612a6d565b61213b6124d6565b61214433610fa6565b6121605760405162461bcd60e51b8152600401610c4990613be9565b6121693361264a565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156121cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f391906139f7565b905090565b6001600160a01b038116600090815261019960205260408120541561223457506001600160a01b03166000908152610199602052604090205490565b61019c546001600160a01b031615610d375761019c546040516370f1b05d60e11b81526001600160a01b039091169063e1e360ba90612277908590600401613763565b602060405180830381865afa925050508015611ef5575060408051601f3d908101601f19168201909252611ef291810190613c36565b600080516020613f1a8339815191526122c58161243d565b6122cd6124d6565b6122d8858585612923565b81156122fb576001600160a01b0385166000908152610199602052604090208290555b5050505050565b610199602052600090815260409020805460018201546002830180549293919261232b90613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461235790613b06565b80156123a45780601f10612379576101008083540402835291602001916123a4565b820191906000526020600020905b81548152906001019060200180831161238757829003601f168201915b50505050600383015460049093015491929160ff81169150610100900463ffffffff1686565b6001600160a01b0381166000908152610199602052604081206004015460ff90811690036123fa57506001919050565b61019c546001600160a01b031615610d375761019c5460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611ebc908590600401613763565b6109b78133612f90565b61244f6124d6565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124853390565b6040516124929190613763565b60405180910390a1565b6124a4612fe9565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612485565b6101305460ff16156121695760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c49565b6001600160a01b0382166000908152610199602052604090206004015460ff161561257f5760405162461bcd60e51b8152602060048201526012602482015271616c7265616479206861732073746174757360701b6044820152606401610c49565b600161019660008282546125939190613c4f565b90915550506001600160a01b038216600090815261019960209081526040808320600481018054426001808501829055908455600390930187905564ffffffffff1916909117905561019b909152902080546001600160a01b0319169055813b15612612576001610197600082825461260c9190613c4f565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b6001600160a01b0381166000908152610199602052604090206004015460ff166001148061269757506001600160a01b0381166000908152610199602052604090206004015460ff166002145b1561283757600161019660008282546126b09190613a2a565b9091555050803b151580156126c85750600061019754115b156126e757600161019760008282546126e19190613a2a565b90915550505b6001600160a01b038116600090815261019960205260408120600201805461270e90613b06565b80601f016020809104026020016040519081016040528092919081815260200182805461273a90613b06565b80156127875780601f1061275c57610100808354040283529160200191612787565b820191906000526020600020905b81548152906001019060200180831161276a57829003601f168201915b505083516020808601919091206001600160a01b0388166000908152610199909252604082208281556001810183905595965094935091506127ce905060028301826134f7565b506000600382018190556004909101805464ffffffffff1916905581815261019a602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a250505b61019c546001600160a01b0316158015906128bf575061019c54604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061287e908490600401613763565b602060405180830381865afa15801561289b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bf9190613ae9565b156109b75761019c5460405163291d954960e01b81526001600160a01b039091169063291d9549906128f5908490600401613763565b600060405180830381600087803b15801561290f57600080fd5b505af11580156122fb573d6000803e3d6000fd5b8151602080840191909120600081815261019a9092526040909120546001600160a01b0316156129655760405162461bcd60e51b8152600401610c4990613c62565b6001600160a01b03841660009081526101996020526040902060020161298b8482613ce0565b50600081815261019a6020526040902080546001600160a01b0319166001600160a01b038616179055611945848361251d565b606780546001600160a01b0319166001600160a01b0383161790556109b7610a8e565b6109a182825b6129f18282611782565b6109a157600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a293390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612a778282611782565b156109a157600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613f7a833981519152546001600160a01b031690565b6109b7613033565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b2b57610a89836130f6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612b85575060408051601f3d908101601f19168201909252612b8291810190613c36565b60015b612be85760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c49565b600080516020613f7a8339815191528114612c575760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c49565b50610a89838383613190565b6001600160a01b03163b151590565b600054610100900460ff166121695760405162461bcd60e51b8152600401610c4990613d9f565b600054610100900460ff16612cc05760405162461bcd60e51b8152600401610c4990613d9f565b610130805460ff19169055565b600054610100900460ff16612cf45760405162461bcd60e51b8152600401610c4990613d9f565b8151602092830120815191909201206101629190915561016355565b612d1982610fa6565b612d355760405162461bcd60e51b8152600401610c4990613be9565b6000815111612d725760405162461bcd60e51b815260206004820152600960248201526864696420656d70747960b81b6044820152606401610c49565b8051602080830191909120600081815261019a9092526040909120546001600160a01b031615612db45760405162461bcd60e51b8152600401610c4990613c62565b61019c546001600160a01b031615612ee65761019c546040516367c7593760e01b8152600481018390526000916001600160a01b0316906367c7593790602401602060405180830381865afa925050508015612e2d575060408051601f3d908101601f19168201909252612e2a918101906139f7565b60015b15612e355790505b6001600160a01b0381161580612e5c5750836001600160a01b0316816001600160a01b0316145b80612e8d57506001600160a01b0381166000908152610199602052604081206002018054612e8990613b06565b9050115b612ee45760405162461bcd60e51b815260206004820152602260248201527f44494420616c72656164792072656769737465726564206f6c644964656e7469604482015261747960f01b6064820152608401610c49565b505b6001600160a01b038316600090815261019960205260408082209051612f0f9160020190613dea565b6040805191829003909120600081815261019a602090815283822080546001600160a01b03191690556001600160a01b0388168252610199905291909120909150600201612f5d8482613ce0565b5050600090815261019a6020526040902080546001600160a01b0319166001600160a01b03939093169290921790915550565b612f9a8282611782565b6109a157612fa7816131b5565b612fb28360206131c7565b604051602001612fc3929190613e60565b60408051601f198184030181529082905262461bcd60e51b8252610c4991600401613750565b6101305460ff166121695760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c49565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa15801561307c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a091906139f7565b6001600160a01b0316146121695760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610c49565b6130ff81612c63565b6131615760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c49565b600080516020613f7a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61319983613362565b6000825111806131a65750805b15610a895761194583836133a2565b60606109756001600160a01b03831660145b606060006131d6836002613ecf565b6131e1906002613c4f565b6001600160401b038111156131f8576131f86135cd565b6040519080825280601f01601f191660200182016040528015613222576020820181803683370190505b509050600360fc1b8160008151811061323d5761323d613a3d565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061326c5761326c613a3d565b60200101906001600160f81b031916908160001a9053506000613290846002613ecf565b61329b906001613c4f565b90505b6001811115613313576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106132cf576132cf613a3d565b1a60f81b8282815181106132e5576132e5613a3d565b60200101906001600160f81b031916908160001a90535060049490941c9361330c81613ee6565b905061329e565b5083156110a05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c49565b61336b816130f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606133ad83612c63565b6134085760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c49565b600080846001600160a01b0316846040516134239190613efd565b600060405180830381855af49150503d806000811461345e576040519150601f19603f3d011682016040523d82523d6000602084013e613463565b606091505b509150915061348b8282604051806060016040528060278152602001613fe160279139613494565b95945050505050565b606083156134a35750816110a0565b6110a083838151156134b85781518083602001fd5b8060405162461bcd60e51b8152600401610c499190613750565b5080546000825560070160089004906000526020600020908101906109b7919061352d565b50805461350390613b06565b6000825580601f10613513575050565b601f0160209004906000526020600020908101906109b791905b5b80821115613542576000815560010161352e565b5090565b60006020828403121561355857600080fd5b81356001600160e01b0319811681146110a057600080fd5b80151581146109b757600080fd5b60006020828403121561359057600080fd5b81356110a081613570565b6001600160a01b03811681146109b757600080fd5b6000602082840312156135c257600080fd5b81356110a08161359b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561360b5761360b6135cd565b604052919050565b60006001600160401b0382111561362c5761362c6135cd565b50601f01601f191660200190565b600061364d61364884613613565b6135e3565b905082815283838301111561366157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261368957600080fd5b6110a08383356020850161363a565b600080604083850312156136ab57600080fd5b82356136b68161359b565b915060208301356001600160401b038111156136d157600080fd5b6136dd85828601613678565b9150509250929050565b6000602082840312156136f957600080fd5b5035919050565b60005b8381101561371b578181015183820152602001613703565b50506000910152565b6000815180845261373c816020860160208601613700565b601f01601f19169290920160200192915050565b6020815260006110a06020830184613724565b6001600160a01b0391909116815260200190565b6000806040838503121561378a57600080fd5b82359150602083013561379c8161359b565b809150509250929050565b600080604083850312156137ba57600080fd5b82356137c58161359b565b9150602083013561379c8161359b565b600080604083850312156137e857600080fd5b82356137f38161359b565b946020939093013593505050565b6000806040838503121561381457600080fd5b823561381f8161359b565b915060208301356001600160401b0381111561383a57600080fd5b8301601f8101851361384b57600080fd5b6136dd8582356020840161363a565b6000806020838503121561386d57600080fd5b82356001600160401b038082111561388457600080fd5b818501915085601f83011261389857600080fd5b8135818111156138a757600080fd5b8660208260051b85010111156138bc57600080fd5b60209290920196919550909350505050565b6000806000604084860312156138e357600080fd5b83356138ee8161359b565b925060208401356001600160401b038082111561390a57600080fd5b818601915086601f83011261391e57600080fd5b81358181111561392d57600080fd5b87602082850101111561393f57600080fd5b6020830194508093505050509250925092565b6000806000806080858703121561396857600080fd5b84356139738161359b565b935060208501356001600160401b0381111561398e57600080fd5b61399a87828801613678565b949794965050505060408301359260600135919050565b86815285602082015260c0604082015260006139d060c0830187613724565b60608301959095525060ff92909216608083015263ffffffff1660a0909101529392505050565b600060208284031215613a0957600080fd5b81516110a08161359b565b634e487b7160e01b600052601160045260246000fd5b8181038181111561097557610975613a14565b634e487b7160e01b600052603260045260246000fd5b6020808252602c90820152600080516020613f3a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613f3a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600082613ae457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215613afb57600080fd5b81516110a081613570565b600181811c90821680613b1a57607f821691505b602082108103613b3a57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613b5257600080fd5b81516001600160401b03811115613b6857600080fd5b8201601f81018413613b7957600080fd5b8051613b8761364882613613565b818152856020838501011115613b9c57600080fd5b61348b826020830160208601613700565b600060208284031215613bbf57600080fd5b813560ff811681146110a057600080fd5b600060018201613be257613be2613a14565b5060010190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b63ffffffff818116838216019080821115613c2f57613c2f613a14565b5092915050565b600060208284031215613c4857600080fd5b5051919050565b8082018082111561097557610975613a14565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b601f821115610a8957600081815260208120601f850160051c81016020861015613cb95750805b601f850160051c820191505b81811015613cd857828155600101613cc5565b505050505050565b81516001600160401b03811115613cf957613cf96135cd565b613d0d81613d078454613b06565b84613c92565b602080601f831160018114613d425760008415613d2a5750858301515b600019600386901b1c1916600185901b178555613cd8565b600085815260208120601f198616915b82811015613d7157888601518255948401946001909101908401613d52565b5085821015613d8f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808354613df881613b06565b60018281168015613e105760018114613e2557613e54565b60ff1984168752821515830287019450613e54565b8760005260208060002060005b85811015613e4b5781548a820152908401908201613e32565b50505082870194505b50929695505050505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613e92816017850160208801613700565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ec3816028840160208801613700565b01602801949350505050565b808202811582820484141761097557610975613a14565b600081613ef557613ef5613a14565b506000190190565b60008251613f0f818460208701613700565b919091019291505056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc436f6e6e6563744964656e7469747928616464726573732077686974656c69737465642c6164647265737320636f6e6e65637465642c75696e7432353620646561646c696e6529416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122045ce99f6d47449f241f482abfdbd309694d4f1a1c9acea93ddfef1fe1b2bc17464736f6c63430008130033",
1160
1173
  "linkReferences": {},
1161
1174
  "deployedLinkReferences": {}
1162
1175
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b02266b1bd7e9bdab5e7fed89c80d0b3.json"
3
+ "buildInfo": "../../../build-info/7ea2ef00995e6e1369005dd6a04bb556.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b02266b1bd7e9bdab5e7fed89c80d0b3.json"
3
+ "buildInfo": "../../../build-info/7ea2ef00995e6e1369005dd6a04bb556.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b02266b1bd7e9bdab5e7fed89c80d0b3.json"
3
+ "buildInfo": "../../../build-info/7ea2ef00995e6e1369005dd6a04bb556.json"
4
4
  }