@gooddollar/goodprotocol 2.0.32-beta.0 → 2.0.32

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 (303) hide show
  1. package/artifacts/abis/CeloDistributionHelper.min.json +1 -0
  2. package/artifacts/abis/CeloDistributionHelperTest.min.json +1 -0
  3. package/artifacts/abis/CeloDistributionHelperTestHelper.min.json +1 -0
  4. package/artifacts/abis/IBancorExchangeProvider.min.json +1 -0
  5. package/artifacts/abis/IBroker.min.json +1 -0
  6. package/artifacts/abis/IGoodDollarExchangeProvider.min.json +1 -0
  7. package/artifacts/abis/IGoodDollarExpansionController.min.json +1 -0
  8. package/artifacts/abis/IMentoReserve.min.json +1 -0
  9. package/artifacts/abis/ITradingLimits.min.json +1 -0
  10. package/artifacts/abis/MentoExchange.min.json +1 -0
  11. package/artifacts/abis/ProtocolUpgradeV4Mento.min.json +1 -0
  12. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  13. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  14. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  15. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  16. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  17. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  43. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +4 -0
  44. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.json +282 -0
  45. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +4 -0
  46. package/artifacts/contracts/MentoInterfaces.sol/IBroker.json +491 -0
  47. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +4 -0
  48. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.json +164 -0
  49. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +4 -0
  50. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.json +333 -0
  51. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +4 -0
  52. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.json +927 -0
  53. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +4 -0
  54. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.json +10 -0
  55. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  56. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  57. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  58. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  59. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  60. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  61. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  62. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  63. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  64. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  65. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  66. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  67. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  68. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  69. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  71. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  72. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  73. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  74. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  75. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +4 -0
  80. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.json +864 -0
  81. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +4 -0
  82. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.json +890 -0
  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/DistributionHelperTest.json +2 -2
  90. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
  92. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  97. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  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/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  109. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  111. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  118. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  120. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  125. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  126. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +4 -0
  127. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.json +864 -0
  128. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  129. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
  130. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  131. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  132. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  133. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  134. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  135. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  136. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
  137. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  138. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  139. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  140. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  141. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  142. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  143. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  144. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  145. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  146. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  147. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  148. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  149. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  150. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  151. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  152. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  153. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  154. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  155. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  156. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  157. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  158. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  159. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  160. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  161. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  162. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  163. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  164. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  165. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  166. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  167. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  168. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  169. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  170. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  171. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  172. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  173. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  174. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  175. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  176. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  177. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  178. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  179. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  180. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  181. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  182. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  183. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  184. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  185. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  186. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  187. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  188. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  189. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  190. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
  191. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  192. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  193. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  194. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  195. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  196. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  197. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  198. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  199. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  200. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  201. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  202. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  203. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  204. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  205. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  206. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  207. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  208. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  209. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  210. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  211. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.json +2 -2
  212. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  213. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  214. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  215. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  216. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  217. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +4 -0
  218. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.json +24 -0
  219. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +4 -0
  220. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.json +92 -0
  221. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  222. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  223. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  224. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  225. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  226. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  227. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  228. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  229. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  230. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.json +2 -2
  231. package/contracts/MentoInterfaces.sol +746 -0
  232. package/contracts/mocks/CeloDistributionHelperTest.sol +25 -0
  233. package/contracts/reserve/CeloDistributionHelper.sol +286 -0
  234. package/contracts/reserve/GoodMarketMaker.sol +11 -1
  235. package/contracts/staking/GoodFundManager.sol +5 -2
  236. package/contracts/utils/ProtoclUpgradeV4Mento.sol +99 -0
  237. package/contracts/utils/ReserveRestore.sol +171 -147
  238. package/hardhat.config.ts +4 -4
  239. package/package.json +5 -2
  240. package/releases/deployment.json +7 -5
  241. package/scripts/multichain-deploy/helpers.ts +45 -24
  242. package/scripts/proposals/reserveRestore.ts +130 -85
  243. package/scripts/proposals/v4Upgrade.ts +845 -0
  244. package/test/reserve/CeloDistributionHelper.test.ts +377 -0
  245. package/test/reserve/GoodMarketMaker.test.ts +98 -35
  246. package/test/zzz - e2e/CeloDistributionHelper.e2e.test.ts +0 -0
  247. package/types/contracts/MentoInterfaces.sol/IBancorExchangeProvider.ts +422 -0
  248. package/types/contracts/MentoInterfaces.sol/IBroker.ts +727 -0
  249. package/types/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.ts +341 -0
  250. package/types/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.ts +617 -0
  251. package/types/contracts/MentoInterfaces.sol/IMentoReserve.ts +1700 -0
  252. package/types/contracts/MentoInterfaces.sol/index.ts +8 -0
  253. package/types/contracts/index.ts +2 -0
  254. package/types/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.ts +1226 -0
  255. package/types/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.ts +1279 -0
  256. package/types/contracts/mocks/CeloDistributionHelperTest.sol/index.ts +5 -0
  257. package/types/contracts/mocks/index.ts +2 -0
  258. package/types/contracts/reserve/CeloDistributionHelper.ts +1226 -0
  259. package/types/contracts/reserve/index.ts +1 -0
  260. package/types/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.ts +81 -0
  261. package/types/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +161 -0
  262. package/types/contracts/utils/ProtoclUpgradeV4Mento.sol/index.ts +5 -0
  263. package/types/contracts/utils/index.ts +2 -0
  264. package/types/factories/contracts/MentoInterfaces.sol/IBancorExchangeProvider__factory.ts +301 -0
  265. package/types/factories/contracts/MentoInterfaces.sol/IBroker__factory.ts +506 -0
  266. package/types/factories/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider__factory.ts +183 -0
  267. package/types/factories/contracts/MentoInterfaces.sol/IGoodDollarExpansionController__factory.ts +352 -0
  268. package/types/factories/contracts/MentoInterfaces.sol/IMentoReserve__factory.ts +942 -0
  269. package/types/factories/contracts/MentoInterfaces.sol/index.ts +8 -0
  270. package/types/factories/contracts/governance/StakersDistribution__factory.ts +1 -1
  271. package/types/factories/contracts/index.ts +1 -0
  272. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper__factory.ts +949 -0
  273. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest__factory.ts +919 -0
  274. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/index.ts +5 -0
  275. package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +1 -1
  276. package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest__factory.ts +1 -1
  277. package/types/factories/contracts/mocks/GoodCompoundStakingTest__factory.ts +1 -1
  278. package/types/factories/contracts/mocks/GoodFundManagerTest__factory.ts +1 -1
  279. package/types/factories/contracts/mocks/OverMintTesterRegularStake__factory.ts +1 -1
  280. package/types/factories/contracts/mocks/index.ts +1 -0
  281. package/types/factories/contracts/reserve/CeloDistributionHelper__factory.ts +919 -0
  282. package/types/factories/contracts/reserve/DistributionHelper__factory.ts +1 -1
  283. package/types/factories/contracts/reserve/ExchangeHelper__factory.ts +1 -1
  284. package/types/factories/contracts/reserve/GoodMarketMaker__factory.ts +1 -1
  285. package/types/factories/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai__factory.ts +1 -1
  286. package/types/factories/contracts/reserve/index.ts +1 -0
  287. package/types/factories/contracts/staking/DonationsStaking__factory.ts +1 -1
  288. package/types/factories/contracts/staking/GoodFundManager__factory.ts +1 -1
  289. package/types/factories/contracts/staking/aave/AaveStakingFactory__factory.ts +1 -1
  290. package/types/factories/contracts/staking/aave/GoodAaveStakingV2__factory.ts +1 -1
  291. package/types/factories/contracts/staking/aave/GoodAaveStaking__factory.ts +1 -1
  292. package/types/factories/contracts/staking/compound/CompoundStakingFactory__factory.ts +1 -1
  293. package/types/factories/contracts/staking/compound/GoodCompoundStakingV2__factory.ts +1 -1
  294. package/types/factories/contracts/staking/compound/GoodCompoundStaking__factory.ts +1 -1
  295. package/types/factories/contracts/utils/BuyAndBridgeHelper__factory.ts +1 -1
  296. package/types/factories/contracts/utils/LastauthReduction__factory.ts +1 -1
  297. package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange__factory.ts +39 -0
  298. package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +152 -0
  299. package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/index.ts +5 -0
  300. package/types/factories/contracts/utils/ReserveRestore__factory.ts +1 -1
  301. package/types/factories/contracts/utils/index.ts +1 -0
  302. package/types/hardhat.d.ts +90 -0
  303. package/types/index.ts +20 -0
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ITradingLimits",
4
+ "sourceName": "contracts/MentoInterfaces.sol",
5
+ "abi": [],
6
+ "bytecode": "0x",
7
+ "deployedBytecode": "0x",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -559,8 +559,8 @@
559
559
  "type": "function"
560
560
  }
561
561
  ],
562
- "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161294561004c600039600081816107450152818161078e01528181610a9101528181610ad10152610b4d01526129456000f3fe6080604052600436106101315760003560e01c806305a6aafa146101365780631b3c90a814610158578063213b329e1461016d57806322dec37b146101925780632d36bd88146101bf5780632e42a896146101f457806331903da1146102865780633659cfe6146102b35780633c8c043a146102d35780633d9a12cc146102e95780633e458a8e146103095780633e6326fc146103295780634162169f1461035657806347b3e7e8146103765780634f1db7f6146103a35780634f1ef2861461040157806352d1902d1461041457806352e62ac2146104295780635aef7de6146104495780637bcbb9ff14610469578063846141b31461049f578063862a4d47146104cc5780638aaa31de146104e2578063a39b215314610502578063c4d66de814610522578063e1758bd814610542575b600080fd5b34801561014257600080fd5b5061015661015136600461223f565b610557565b005b34801561016457600080fd5b5061015661056f565b34801561017957600080fd5b506202a3005b6040519081526020015b60405180910390f35b34801561019e57600080fd5b5061017f6101ad36600461227d565b609c6020526000908152604090205481565b3480156101cb57600080fd5b506101df6101da3660046122e0565b610696565b60408051928352602083019190915201610189565b34801561020057600080fd5b5061025361020f3660046123a3565b60a0602090815260009283526040808420909152908252902080546001909101546001600160801b0380831692600160801b90819004821692808316929190041684565b604080516001600160801b0395861681529385166020850152918416918301919091529091166060820152608001610189565b34801561029257600080fd5b5061017f6102a136600461227d565b609d6020526000908152604090205481565b3480156102bf57600080fd5b506101566102ce36600461227d565b61073b565b3480156102df57600080fd5b5061017f60d35481565b3480156102f557600080fd5b5061017f6103043660046123dc565b610809565b34801561031557600080fd5b50610156610324366004612426565b6108fd565b34801561033557600080fd5b50606754610349906001600160a01b031681565b6040516101899190612452565b34801561036257600080fd5b50606554610349906001600160a01b031681565b34801561038257600080fd5b5061017f61039136600461227d565b609f6020526000908152604090205481565b3480156103af57600080fd5b506101df6103be3660046123a3565b6001600160a01b03918216600081815260a06020908152604080832094909516825292835283812054918152609a909252919020546001600160801b0390911691565b61015661040f366004612466565b610a87565b34801561042057600080fd5b5061017f610b40565b34801561043557600080fd5b5061017f6104443660046122e0565b610bee565b34801561045557600080fd5b50606654610349906001600160a01b031681565b34801561047557600080fd5b5061017f61048436600461227d565b6001600160a01b03166000908152609b602052604090205490565b3480156104ab57600080fd5b5061017f6104ba36600461227d565b609e6020526000908152604090205481565b3480156104d857600080fd5b5061017f60d45481565b3480156104ee57600080fd5b506101566104fd36600461250d565b610d6c565b34801561050e57600080fd5b5061015661051d366004612426565b610dae565b34801561052e57600080fd5b5061015661053d36600461227d565b610ec6565b34801561054e57600080fd5b50610349610fed565b61055f61107a565b60d381905561056c61113f565b50565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612594565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190612594565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008060006106a58585610bee565b90506000805b86518110156107305760a060008883815181106106ca576106ca6125b1565b6020908102919091018101516001600160a01b0390811683528282019390935260409182016000908120938a16815292905290206001015461071c90600160801b90046001600160801b0316836125dd565b915080610728816125f0565b9150506106ab565b509590945092505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361078c5760405162461bcd60e51b815260040161078390612609565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107be611615565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161078390612643565b6107ed81611631565b6040805160008082526020820190925261056c91839190611639565b6001600160a01b03808516600081815260a0602090815260408083209486168352938152838220845160808101865281546001600160801b038082168352600160801b9182900481168386015260019093015480841683890152049091166060820152928252609a9052918220548290156108f357600061088b8888886117a4565b91505082604001516001600160801b0316915082602001516001600160801b0316676765c793fa10079d601b1b8285600001516001600160801b03166108d1919061267d565b6108db9190612694565b6108e591906126b6565b6108ef90836125dd565b9150505b9695505050505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610934906004016126c9565b602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b81526004016109a09190612452565b608060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612716565b9350935093505080156109f657505050505050565b610a15848787866001600160401b0316866001600160401b031661189c565b50604080516001808252818301909252600091602080830190803683370190505090508481600081518110610a4c57610a4c6125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050610a768782611939565b610a7e61113f565b50505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610acf5760405162461bcd60e51b815260040161078390612609565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b01611615565b6001600160a01b031614610b275760405162461bcd60e51b815260040161078390612643565b610b3082611631565b610b3c82826001611639565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bdb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610783565b506000805160206128c983398151915290565b60008060005b8451811015610d625760675460405163bf40fac160e01b8152600091829182916001600160a01b03169063bf40fac190610c30906004016126c9565b602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190612594565b6001600160a01b031663d0250144898681518110610c9157610c916125b1565b60200260200101516040518263ffffffff1660e01b8152600401610cb59190612452565b608060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190612716565b9195509350915050801515600003610d4c57610d3f888581518110610d1d57610d1d6125b1565b6020026020010151846001600160401b0316846001600160401b03168a610809565b610d4990866125dd565b94505b5050508080610d5a906125f0565b915050610bf4565b5090505b92915050565b610da98383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061193992505050565b505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610de5906004016126c9565b602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b8152600401610e519190612452565b608060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612716565b935093509350508015610ea757505050505050565b610a15848787866001600160401b0316866001600160401b0316611bf8565b600054610100900460ff1615808015610ee65750600054600160ff909116105b80610f075750610ef530611c6b565b158015610f07575060005460ff166001145b610f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610783565b6000805460ff191660011790558015610f8d576000805461ff0019166101001790555b66d3c21bcecceda160191b60d355610fa482611c7a565b8015610b3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612594565b905090565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190612594565b6001600160a01b03161461113d5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610783565b565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061116e906004016126c9565b602060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190612594565b6001600160a01b03161461113d5760675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906111ec906004016126c9565b602060405180830381865afa158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612594565b90506000816001600160a01b0316630e47dbd96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190612775565b90506000816001600160401b038111156112af576112af61229a565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b5090506000826001600160401b038111156112f5576112f561229a565b60405190808252806020026020018201604052801561131e578160200160208202803683370190505b5090506000805b84811015611559576040516372d00e9f60e01b8152600481018290526001600160a01b038716906372d00e9f90602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190612594565b8482815181106113a8576113a86125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600080876001600160a01b031663d02501448785815181106113ec576113ec6125b1565b60200260200101516040518263ffffffff1660e01b81526004016114109190612452565b608060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114519190612716565b50925092505043826001600160401b031611158015611478575043816001600160401b0316115b15611544576000868481518110611491576114916125b1565b60200260200101516001600160a01b031663e99b5d3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612775565b90508086858151811061150f5761150f6125b1565b60200260200101818152505085848151811061152d5761152d6125b1565b60200260200101518561154091906125dd565b9450505b50508080611551906125f0565b915050611325565b5060005b8481101561160d576000808311611581578560d35461157c9190612694565b6115b3565b82848381518110611594576115946125b1565b602002602001015160d3546115a9919061267d565b6115b39190612694565b905060008483815181106115c9576115c96125b1565b602002602001015111156115fa576115fa8583815181106115ec576115ec6125b1565b602002602001015182611c9d565b5080611605816125f0565b91505061155d565b505050505050565b6000805160206128c9833981519152546001600160a01b031690565b61056c61107a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561166c57610da983611cd6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116c6575060408051601f3d908101601f191682019092526116c391810190612775565b60015b6117295760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610783565b6000805160206128c983398151915281146117985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610783565b50610da9838383611d70565b6001600160a01b0383166000908152609b6020908152604080832054609e909252909120549083821080156117d95750834310155b6117e357816117e5565b835b915060008343116117f657436117f8565b835b9050848110806118085750838310155b156118135750611894565b600061181f84836126b6565b6001600160a01b0388166000908152609f602052604081205491925090611846908361267d565b6001600160a01b0389166000908152609a602052604090205490915061187782676765c793fa10079d601b1b61267d565b6118819190612694565b61188b90856125dd565b93508294505050505b935093915050565b60006118a9868484611d95565b6001600160a01b03808716600090815260a060209081526040808320938916835292905220546118f090879087906118eb9088906001600160801b03166126b6565b611e12565b6001600160a01b0386166000908152609a60205260409020546119149085906126b6565b6001600160a01b0387166000908152609a602052604090205550600195945050505050565b60675460405163bf40fac160e01b815260009182916001600160a01b039091169063bf40fac19061196c906004016126c9565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612594565b905060005b8351811015611ab2576000806000846001600160a01b031663d02501448886815181106119e1576119e16125b1565b60200260200101516040518263ffffffff1660e01b8152600401611a059190612452565b608060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612716565b9195509350915050801515600003611a9c57611a8f878581518110611a6d57611a6d6125b1565b602002602001015189856001600160401b0316856001600160401b0316611f8e565b611a9990876125dd565b95505b5050508080611aaa906125f0565b9150506119b2565b508115611bf25760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190612594565b6040516340c10f1960e01b81526001600160a01b0386811660048301526024820185905291909116906340c10f19906044016020604051808303816000875af1158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb5919061278e565b507fb5bb6cf2a7d73ab2167d87f348feea953c3e405a4ece2a262cd92cdce829f6d2848484604051611be9939291906127a9565b60405180910390a15b50505050565b6000611c05868484611d95565b6001600160a01b03808716600090815260a06020908152604080832093891683529290522054611c4790879087906118eb9088906001600160801b03166125dd565b6001600160a01b0386166000908152609a60205260409020546119149085906125dd565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561056c61056f565b611ca982600043611d95565b611cb66202a30082612694565b6001600160a01b039092166000908152609f602052604090209190915550565b611cdf81611c6b565b611d415760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610783565b6000805160206128c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d79836120c3565b600082511180611d865750805b15610da957611bf28383612103565b6001600160a01b0383166000908152609a60205260408120549003611dd25750506001600160a01b03166000908152609e60205260409020439055565b600080611de08585856117a4565b6001600160a01b039096166000908152609b6020908152604080832098909855609e9052959095209490945550505050565b6001600160a01b03808416600090815260a06020908152604080832093861683529290522080546001600160801b031615611f1e5780546001600160a01b0385166000908152609b602052604081205490916001600160801b03600160801b8204811692676765c793fa10079d601b1b92611e8d921661267d565b611e979190612694565b611ea191906126b6565b6001830154909150611ebd9082906001600160801b031661280e565b6001830180546001600160801b0319166001600160801b03929092169190911790556001600160a01b0385166000908152609d6020526040902054611f039082906125dd565b6001600160a01b0386166000908152609d6020526040902055505b80546001600160801b0319166001600160801b0383161781556001600160a01b0384166000908152609b6020526040902054676765c793fa10079d601b1b90611f67908461267d565b611f719190612694565b81546001600160801b03918216600160801b029116179055505050565b6000611f9b858484611d95565b6001600160a01b03808616600090815260a06020908152604080832093881683529290522054611fd790869086906001600160801b0316611e12565b6001600160a01b03858116600090815260a06020908152604080832093881683529290522060010180546001600160801b038082169283929091601091612027918591600160801b90041661280e565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03888116600081815260a060209081526040808320948c16835293815283822060010180546001600160801b0319169055918152609c90915220546120979250908316906125dd565b6001600160a01b0387166000908152609c60205260409020556001600160801b03169050949350505050565b6120cc81611cd6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061210e83611c6b565b6121695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610783565b600080846001600160a01b0316846040516121849190612859565b600060405180830381855af49150503d80600081146121bf576040519150601f19603f3d011682016040523d82523d6000602084013e6121c4565b606091505b50915091506121ec82826040518060600160405280602781526020016128e9602791396121f5565b95945050505050565b6060831561220457508161220e565b61220e8383612215565b9392505050565b8151156122255781518083602001fd5b8060405162461bcd60e51b81526004016107839190612875565b60006020828403121561225157600080fd5b5035919050565b6001600160a01b038116811461056c57600080fd5b803561227881612258565b919050565b60006020828403121561228f57600080fd5b813561220e81612258565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122d8576122d861229a565b604052919050565b600080604083850312156122f357600080fd5b82356001600160401b038082111561230a57600080fd5b818501915085601f83011261231e57600080fd5b81356020828211156123325761233261229a565b8160051b92506123438184016122b0565b828152928401810192818101908985111561235d57600080fd5b948201945b84861015612387578535935061237784612258565b8382529482019490820190612362565b9650612396905087820161226d565b9450505050509250929050565b600080604083850312156123b657600080fd5b82356123c181612258565b915060208301356123d181612258565b809150509250929050565b600080600080608085870312156123f257600080fd5b84356123fd81612258565b93506020850135925060408501359150606085013561241b81612258565b939692955090935050565b6000806040838503121561243957600080fd5b823561244481612258565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561247957600080fd5b823561248481612258565b91506020838101356001600160401b03808211156124a157600080fd5b818601915086601f8301126124b557600080fd5b8135818111156124c7576124c761229a565b6124d9601f8201601f191685016122b0565b915080825287848285010111156124ef57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060006040848603121561252257600080fd5b833561252d81612258565b925060208401356001600160401b038082111561254957600080fd5b818601915086601f83011261255d57600080fd5b81358181111561256c57600080fd5b8760208260051b850101111561258157600080fd5b6020830194508093505050509250925092565b6000602082840312156125a657600080fd5b815161220e81612258565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610d6657610d666125c7565b600060018201612602576126026125c7565b5060010190565b6020808252602c908201526000805160206128a983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128a983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b8082028115828204841417610d6657610d666125c7565b6000826126b157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d6657610d666125c7565b6020808252600c908201526b232aa7222fa6a0a720a3a2a960a11b604082015260600190565b80516001600160401b038116811461227857600080fd5b8051801515811461227857600080fd5b6000806000806080858703121561272c57600080fd5b845163ffffffff8116811461274057600080fd5b935061274e602086016126ef565b925061275c604086016126ef565b915061276a60608601612706565b905092959194509250565b60006020828403121561278757600080fd5b5051919050565b6000602082840312156127a057600080fd5b61220e82612706565b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156127f75785518516835294830194918301916001016127d9565b505080945050505050826040830152949350505050565b6001600160801b0381811683821601908082111561282e5761282e6125c7565b5092915050565b60005b83811015612850578181015183820152602001612838565b50506000910152565b6000825161286b818460208701612835565b9190910192915050565b6020815260008251806020840152612894816040850160208701612835565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f1d3a62fce1268b81b7c8013b836a731c341285b749718462308581b2d58370264736f6c63430008130033",
563
- "deployedBytecode": "0x6080604052600436106101315760003560e01c806305a6aafa146101365780631b3c90a814610158578063213b329e1461016d57806322dec37b146101925780632d36bd88146101bf5780632e42a896146101f457806331903da1146102865780633659cfe6146102b35780633c8c043a146102d35780633d9a12cc146102e95780633e458a8e146103095780633e6326fc146103295780634162169f1461035657806347b3e7e8146103765780634f1db7f6146103a35780634f1ef2861461040157806352d1902d1461041457806352e62ac2146104295780635aef7de6146104495780637bcbb9ff14610469578063846141b31461049f578063862a4d47146104cc5780638aaa31de146104e2578063a39b215314610502578063c4d66de814610522578063e1758bd814610542575b600080fd5b34801561014257600080fd5b5061015661015136600461223f565b610557565b005b34801561016457600080fd5b5061015661056f565b34801561017957600080fd5b506202a3005b6040519081526020015b60405180910390f35b34801561019e57600080fd5b5061017f6101ad36600461227d565b609c6020526000908152604090205481565b3480156101cb57600080fd5b506101df6101da3660046122e0565b610696565b60408051928352602083019190915201610189565b34801561020057600080fd5b5061025361020f3660046123a3565b60a0602090815260009283526040808420909152908252902080546001909101546001600160801b0380831692600160801b90819004821692808316929190041684565b604080516001600160801b0395861681529385166020850152918416918301919091529091166060820152608001610189565b34801561029257600080fd5b5061017f6102a136600461227d565b609d6020526000908152604090205481565b3480156102bf57600080fd5b506101566102ce36600461227d565b61073b565b3480156102df57600080fd5b5061017f60d35481565b3480156102f557600080fd5b5061017f6103043660046123dc565b610809565b34801561031557600080fd5b50610156610324366004612426565b6108fd565b34801561033557600080fd5b50606754610349906001600160a01b031681565b6040516101899190612452565b34801561036257600080fd5b50606554610349906001600160a01b031681565b34801561038257600080fd5b5061017f61039136600461227d565b609f6020526000908152604090205481565b3480156103af57600080fd5b506101df6103be3660046123a3565b6001600160a01b03918216600081815260a06020908152604080832094909516825292835283812054918152609a909252919020546001600160801b0390911691565b61015661040f366004612466565b610a87565b34801561042057600080fd5b5061017f610b40565b34801561043557600080fd5b5061017f6104443660046122e0565b610bee565b34801561045557600080fd5b50606654610349906001600160a01b031681565b34801561047557600080fd5b5061017f61048436600461227d565b6001600160a01b03166000908152609b602052604090205490565b3480156104ab57600080fd5b5061017f6104ba36600461227d565b609e6020526000908152604090205481565b3480156104d857600080fd5b5061017f60d45481565b3480156104ee57600080fd5b506101566104fd36600461250d565b610d6c565b34801561050e57600080fd5b5061015661051d366004612426565b610dae565b34801561052e57600080fd5b5061015661053d36600461227d565b610ec6565b34801561054e57600080fd5b50610349610fed565b61055f61107a565b60d381905561056c61113f565b50565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612594565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190612594565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008060006106a58585610bee565b90506000805b86518110156107305760a060008883815181106106ca576106ca6125b1565b6020908102919091018101516001600160a01b0390811683528282019390935260409182016000908120938a16815292905290206001015461071c90600160801b90046001600160801b0316836125dd565b915080610728816125f0565b9150506106ab565b509590945092505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361078c5760405162461bcd60e51b815260040161078390612609565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107be611615565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161078390612643565b6107ed81611631565b6040805160008082526020820190925261056c91839190611639565b6001600160a01b03808516600081815260a0602090815260408083209486168352938152838220845160808101865281546001600160801b038082168352600160801b9182900481168386015260019093015480841683890152049091166060820152928252609a9052918220548290156108f357600061088b8888886117a4565b91505082604001516001600160801b0316915082602001516001600160801b0316676765c793fa10079d601b1b8285600001516001600160801b03166108d1919061267d565b6108db9190612694565b6108e591906126b6565b6108ef90836125dd565b9150505b9695505050505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610934906004016126c9565b602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b81526004016109a09190612452565b608060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612716565b9350935093505080156109f657505050505050565b610a15848787866001600160401b0316866001600160401b031661189c565b50604080516001808252818301909252600091602080830190803683370190505090508481600081518110610a4c57610a4c6125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050610a768782611939565b610a7e61113f565b50505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610acf5760405162461bcd60e51b815260040161078390612609565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b01611615565b6001600160a01b031614610b275760405162461bcd60e51b815260040161078390612643565b610b3082611631565b610b3c82826001611639565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bdb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610783565b506000805160206128c983398151915290565b60008060005b8451811015610d625760675460405163bf40fac160e01b8152600091829182916001600160a01b03169063bf40fac190610c30906004016126c9565b602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190612594565b6001600160a01b031663d0250144898681518110610c9157610c916125b1565b60200260200101516040518263ffffffff1660e01b8152600401610cb59190612452565b608060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190612716565b9195509350915050801515600003610d4c57610d3f888581518110610d1d57610d1d6125b1565b6020026020010151846001600160401b0316846001600160401b03168a610809565b610d4990866125dd565b94505b5050508080610d5a906125f0565b915050610bf4565b5090505b92915050565b610da98383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061193992505050565b505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610de5906004016126c9565b602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b8152600401610e519190612452565b608060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612716565b935093509350508015610ea757505050505050565b610a15848787866001600160401b0316866001600160401b0316611bf8565b600054610100900460ff1615808015610ee65750600054600160ff909116105b80610f075750610ef530611c6b565b158015610f07575060005460ff166001145b610f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610783565b6000805460ff191660011790558015610f8d576000805461ff0019166101001790555b66d3c21bcecceda160191b60d355610fa482611c7a565b8015610b3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612594565b905090565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190612594565b6001600160a01b03161461113d5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610783565b565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061116e906004016126c9565b602060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190612594565b6001600160a01b03161461113d5760675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906111ec906004016126c9565b602060405180830381865afa158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612594565b90506000816001600160a01b0316630e47dbd96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190612775565b90506000816001600160401b038111156112af576112af61229a565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b5090506000826001600160401b038111156112f5576112f561229a565b60405190808252806020026020018201604052801561131e578160200160208202803683370190505b5090506000805b84811015611559576040516372d00e9f60e01b8152600481018290526001600160a01b038716906372d00e9f90602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190612594565b8482815181106113a8576113a86125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600080876001600160a01b031663d02501448785815181106113ec576113ec6125b1565b60200260200101516040518263ffffffff1660e01b81526004016114109190612452565b608060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114519190612716565b50925092505043826001600160401b031611158015611478575043816001600160401b0316115b15611544576000868481518110611491576114916125b1565b60200260200101516001600160a01b031663e99b5d3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612775565b90508086858151811061150f5761150f6125b1565b60200260200101818152505085848151811061152d5761152d6125b1565b60200260200101518561154091906125dd565b9450505b50508080611551906125f0565b915050611325565b5060005b8481101561160d576000808311611581578560d35461157c9190612694565b6115b3565b82848381518110611594576115946125b1565b602002602001015160d3546115a9919061267d565b6115b39190612694565b905060008483815181106115c9576115c96125b1565b602002602001015111156115fa576115fa8583815181106115ec576115ec6125b1565b602002602001015182611c9d565b5080611605816125f0565b91505061155d565b505050505050565b6000805160206128c9833981519152546001600160a01b031690565b61056c61107a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561166c57610da983611cd6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116c6575060408051601f3d908101601f191682019092526116c391810190612775565b60015b6117295760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610783565b6000805160206128c983398151915281146117985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610783565b50610da9838383611d70565b6001600160a01b0383166000908152609b6020908152604080832054609e909252909120549083821080156117d95750834310155b6117e357816117e5565b835b915060008343116117f657436117f8565b835b9050848110806118085750838310155b156118135750611894565b600061181f84836126b6565b6001600160a01b0388166000908152609f602052604081205491925090611846908361267d565b6001600160a01b0389166000908152609a602052604090205490915061187782676765c793fa10079d601b1b61267d565b6118819190612694565b61188b90856125dd565b93508294505050505b935093915050565b60006118a9868484611d95565b6001600160a01b03808716600090815260a060209081526040808320938916835292905220546118f090879087906118eb9088906001600160801b03166126b6565b611e12565b6001600160a01b0386166000908152609a60205260409020546119149085906126b6565b6001600160a01b0387166000908152609a602052604090205550600195945050505050565b60675460405163bf40fac160e01b815260009182916001600160a01b039091169063bf40fac19061196c906004016126c9565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612594565b905060005b8351811015611ab2576000806000846001600160a01b031663d02501448886815181106119e1576119e16125b1565b60200260200101516040518263ffffffff1660e01b8152600401611a059190612452565b608060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612716565b9195509350915050801515600003611a9c57611a8f878581518110611a6d57611a6d6125b1565b602002602001015189856001600160401b0316856001600160401b0316611f8e565b611a9990876125dd565b95505b5050508080611aaa906125f0565b9150506119b2565b508115611bf25760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190612594565b6040516340c10f1960e01b81526001600160a01b0386811660048301526024820185905291909116906340c10f19906044016020604051808303816000875af1158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb5919061278e565b507fb5bb6cf2a7d73ab2167d87f348feea953c3e405a4ece2a262cd92cdce829f6d2848484604051611be9939291906127a9565b60405180910390a15b50505050565b6000611c05868484611d95565b6001600160a01b03808716600090815260a06020908152604080832093891683529290522054611c4790879087906118eb9088906001600160801b03166125dd565b6001600160a01b0386166000908152609a60205260409020546119149085906125dd565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561056c61056f565b611ca982600043611d95565b611cb66202a30082612694565b6001600160a01b039092166000908152609f602052604090209190915550565b611cdf81611c6b565b611d415760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610783565b6000805160206128c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d79836120c3565b600082511180611d865750805b15610da957611bf28383612103565b6001600160a01b0383166000908152609a60205260408120549003611dd25750506001600160a01b03166000908152609e60205260409020439055565b600080611de08585856117a4565b6001600160a01b039096166000908152609b6020908152604080832098909855609e9052959095209490945550505050565b6001600160a01b03808416600090815260a06020908152604080832093861683529290522080546001600160801b031615611f1e5780546001600160a01b0385166000908152609b602052604081205490916001600160801b03600160801b8204811692676765c793fa10079d601b1b92611e8d921661267d565b611e979190612694565b611ea191906126b6565b6001830154909150611ebd9082906001600160801b031661280e565b6001830180546001600160801b0319166001600160801b03929092169190911790556001600160a01b0385166000908152609d6020526040902054611f039082906125dd565b6001600160a01b0386166000908152609d6020526040902055505b80546001600160801b0319166001600160801b0383161781556001600160a01b0384166000908152609b6020526040902054676765c793fa10079d601b1b90611f67908461267d565b611f719190612694565b81546001600160801b03918216600160801b029116179055505050565b6000611f9b858484611d95565b6001600160a01b03808616600090815260a06020908152604080832093881683529290522054611fd790869086906001600160801b0316611e12565b6001600160a01b03858116600090815260a06020908152604080832093881683529290522060010180546001600160801b038082169283929091601091612027918591600160801b90041661280e565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03888116600081815260a060209081526040808320948c16835293815283822060010180546001600160801b0319169055918152609c90915220546120979250908316906125dd565b6001600160a01b0387166000908152609c60205260409020556001600160801b03169050949350505050565b6120cc81611cd6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061210e83611c6b565b6121695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610783565b600080846001600160a01b0316846040516121849190612859565b600060405180830381855af49150503d80600081146121bf576040519150601f19603f3d011682016040523d82523d6000602084013e6121c4565b606091505b50915091506121ec82826040518060600160405280602781526020016128e9602791396121f5565b95945050505050565b6060831561220457508161220e565b61220e8383612215565b9392505050565b8151156122255781518083602001fd5b8060405162461bcd60e51b81526004016107839190612875565b60006020828403121561225157600080fd5b5035919050565b6001600160a01b038116811461056c57600080fd5b803561227881612258565b919050565b60006020828403121561228f57600080fd5b813561220e81612258565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122d8576122d861229a565b604052919050565b600080604083850312156122f357600080fd5b82356001600160401b038082111561230a57600080fd5b818501915085601f83011261231e57600080fd5b81356020828211156123325761233261229a565b8160051b92506123438184016122b0565b828152928401810192818101908985111561235d57600080fd5b948201945b84861015612387578535935061237784612258565b8382529482019490820190612362565b9650612396905087820161226d565b9450505050509250929050565b600080604083850312156123b657600080fd5b82356123c181612258565b915060208301356123d181612258565b809150509250929050565b600080600080608085870312156123f257600080fd5b84356123fd81612258565b93506020850135925060408501359150606085013561241b81612258565b939692955090935050565b6000806040838503121561243957600080fd5b823561244481612258565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561247957600080fd5b823561248481612258565b91506020838101356001600160401b03808211156124a157600080fd5b818601915086601f8301126124b557600080fd5b8135818111156124c7576124c761229a565b6124d9601f8201601f191685016122b0565b915080825287848285010111156124ef57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060006040848603121561252257600080fd5b833561252d81612258565b925060208401356001600160401b038082111561254957600080fd5b818601915086601f83011261255d57600080fd5b81358181111561256c57600080fd5b8760208260051b850101111561258157600080fd5b6020830194508093505050509250925092565b6000602082840312156125a657600080fd5b815161220e81612258565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610d6657610d666125c7565b600060018201612602576126026125c7565b5060010190565b6020808252602c908201526000805160206128a983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128a983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b8082028115828204841417610d6657610d666125c7565b6000826126b157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d6657610d666125c7565b6020808252600c908201526b232aa7222fa6a0a720a3a2a960a11b604082015260600190565b80516001600160401b038116811461227857600080fd5b8051801515811461227857600080fd5b6000806000806080858703121561272c57600080fd5b845163ffffffff8116811461274057600080fd5b935061274e602086016126ef565b925061275c604086016126ef565b915061276a60608601612706565b905092959194509250565b60006020828403121561278757600080fd5b5051919050565b6000602082840312156127a057600080fd5b61220e82612706565b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156127f75785518516835294830194918301916001016127d9565b505080945050505050826040830152949350505050565b6001600160801b0381811683821601908082111561282e5761282e6125c7565b5092915050565b60005b83811015612850578181015183820152602001612838565b50506000910152565b6000825161286b818460208701612835565b9190910192915050565b6020815260008251806020840152612894816040850160208701612835565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f1d3a62fce1268b81b7c8013b836a731c341285b749718462308581b2d58370264736f6c63430008130033",
562
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161294561004c600039600081816107450152818161078e01528181610a9101528181610ad10152610b4d01526129456000f3fe6080604052600436106101315760003560e01c806305a6aafa146101365780631b3c90a814610158578063213b329e1461016d57806322dec37b146101925780632d36bd88146101bf5780632e42a896146101f457806331903da1146102865780633659cfe6146102b35780633c8c043a146102d35780633d9a12cc146102e95780633e458a8e146103095780633e6326fc146103295780634162169f1461035657806347b3e7e8146103765780634f1db7f6146103a35780634f1ef2861461040157806352d1902d1461041457806352e62ac2146104295780635aef7de6146104495780637bcbb9ff14610469578063846141b31461049f578063862a4d47146104cc5780638aaa31de146104e2578063a39b215314610502578063c4d66de814610522578063e1758bd814610542575b600080fd5b34801561014257600080fd5b5061015661015136600461223f565b610557565b005b34801561016457600080fd5b5061015661056f565b34801561017957600080fd5b506202a3005b6040519081526020015b60405180910390f35b34801561019e57600080fd5b5061017f6101ad36600461227d565b609c6020526000908152604090205481565b3480156101cb57600080fd5b506101df6101da3660046122e0565b610696565b60408051928352602083019190915201610189565b34801561020057600080fd5b5061025361020f3660046123a3565b60a0602090815260009283526040808420909152908252902080546001909101546001600160801b0380831692600160801b90819004821692808316929190041684565b604080516001600160801b0395861681529385166020850152918416918301919091529091166060820152608001610189565b34801561029257600080fd5b5061017f6102a136600461227d565b609d6020526000908152604090205481565b3480156102bf57600080fd5b506101566102ce36600461227d565b61073b565b3480156102df57600080fd5b5061017f60d35481565b3480156102f557600080fd5b5061017f6103043660046123dc565b610809565b34801561031557600080fd5b50610156610324366004612426565b6108fd565b34801561033557600080fd5b50606754610349906001600160a01b031681565b6040516101899190612452565b34801561036257600080fd5b50606554610349906001600160a01b031681565b34801561038257600080fd5b5061017f61039136600461227d565b609f6020526000908152604090205481565b3480156103af57600080fd5b506101df6103be3660046123a3565b6001600160a01b03918216600081815260a06020908152604080832094909516825292835283812054918152609a909252919020546001600160801b0390911691565b61015661040f366004612466565b610a87565b34801561042057600080fd5b5061017f610b40565b34801561043557600080fd5b5061017f6104443660046122e0565b610bee565b34801561045557600080fd5b50606654610349906001600160a01b031681565b34801561047557600080fd5b5061017f61048436600461227d565b6001600160a01b03166000908152609b602052604090205490565b3480156104ab57600080fd5b5061017f6104ba36600461227d565b609e6020526000908152604090205481565b3480156104d857600080fd5b5061017f60d45481565b3480156104ee57600080fd5b506101566104fd36600461250d565b610d6c565b34801561050e57600080fd5b5061015661051d366004612426565b610dae565b34801561052e57600080fd5b5061015661053d36600461227d565b610ec6565b34801561054e57600080fd5b50610349610fed565b61055f61107a565b60d381905561056c61113f565b50565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612594565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190612594565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008060006106a58585610bee565b90506000805b86518110156107305760a060008883815181106106ca576106ca6125b1565b6020908102919091018101516001600160a01b0390811683528282019390935260409182016000908120938a16815292905290206001015461071c90600160801b90046001600160801b0316836125dd565b915080610728816125f0565b9150506106ab565b509590945092505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361078c5760405162461bcd60e51b815260040161078390612609565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107be611615565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161078390612643565b6107ed81611631565b6040805160008082526020820190925261056c91839190611639565b6001600160a01b03808516600081815260a0602090815260408083209486168352938152838220845160808101865281546001600160801b038082168352600160801b9182900481168386015260019093015480841683890152049091166060820152928252609a9052918220548290156108f357600061088b8888886117a4565b91505082604001516001600160801b0316915082602001516001600160801b0316676765c793fa10079d601b1b8285600001516001600160801b03166108d1919061267d565b6108db9190612694565b6108e591906126b6565b6108ef90836125dd565b9150505b9695505050505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610934906004016126c9565b602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b81526004016109a09190612452565b608060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612716565b9350935093505080156109f657505050505050565b610a15848787866001600160401b0316866001600160401b031661189c565b50604080516001808252818301909252600091602080830190803683370190505090508481600081518110610a4c57610a4c6125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050610a768782611939565b610a7e61113f565b50505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610acf5760405162461bcd60e51b815260040161078390612609565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b01611615565b6001600160a01b031614610b275760405162461bcd60e51b815260040161078390612643565b610b3082611631565b610b3c82826001611639565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bdb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610783565b506000805160206128c983398151915290565b60008060005b8451811015610d625760675460405163bf40fac160e01b8152600091829182916001600160a01b03169063bf40fac190610c30906004016126c9565b602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190612594565b6001600160a01b031663d0250144898681518110610c9157610c916125b1565b60200260200101516040518263ffffffff1660e01b8152600401610cb59190612452565b608060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190612716565b9195509350915050801515600003610d4c57610d3f888581518110610d1d57610d1d6125b1565b6020026020010151846001600160401b0316846001600160401b03168a610809565b610d4990866125dd565b94505b5050508080610d5a906125f0565b915050610bf4565b5090505b92915050565b610da98383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061193992505050565b505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610de5906004016126c9565b602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b8152600401610e519190612452565b608060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612716565b935093509350508015610ea757505050505050565b610a15848787866001600160401b0316866001600160401b0316611bf8565b600054610100900460ff1615808015610ee65750600054600160ff909116105b80610f075750610ef530611c6b565b158015610f07575060005460ff166001145b610f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610783565b6000805460ff191660011790558015610f8d576000805461ff0019166101001790555b66d3c21bcecceda160191b60d355610fa482611c7a565b8015610b3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612594565b905090565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190612594565b6001600160a01b03161461113d5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610783565b565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061116e906004016126c9565b602060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190612594565b6001600160a01b03161461113d5760675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906111ec906004016126c9565b602060405180830381865afa158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612594565b90506000816001600160a01b0316630e47dbd96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190612775565b90506000816001600160401b038111156112af576112af61229a565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b5090506000826001600160401b038111156112f5576112f561229a565b60405190808252806020026020018201604052801561131e578160200160208202803683370190505b5090506000805b84811015611559576040516372d00e9f60e01b8152600481018290526001600160a01b038716906372d00e9f90602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190612594565b8482815181106113a8576113a86125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600080876001600160a01b031663d02501448785815181106113ec576113ec6125b1565b60200260200101516040518263ffffffff1660e01b81526004016114109190612452565b608060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114519190612716565b50925092505043826001600160401b031611158015611478575043816001600160401b0316115b15611544576000868481518110611491576114916125b1565b60200260200101516001600160a01b031663e99b5d3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612775565b90508086858151811061150f5761150f6125b1565b60200260200101818152505085848151811061152d5761152d6125b1565b60200260200101518561154091906125dd565b9450505b50508080611551906125f0565b915050611325565b5060005b8481101561160d576000808311611581578560d35461157c9190612694565b6115b3565b82848381518110611594576115946125b1565b602002602001015160d3546115a9919061267d565b6115b39190612694565b905060008483815181106115c9576115c96125b1565b602002602001015111156115fa576115fa8583815181106115ec576115ec6125b1565b602002602001015182611c9d565b5080611605816125f0565b91505061155d565b505050505050565b6000805160206128c9833981519152546001600160a01b031690565b61056c61107a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561166c57610da983611cd6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116c6575060408051601f3d908101601f191682019092526116c391810190612775565b60015b6117295760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610783565b6000805160206128c983398151915281146117985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610783565b50610da9838383611d70565b6001600160a01b0383166000908152609b6020908152604080832054609e909252909120549083821080156117d95750834310155b6117e357816117e5565b835b915060008343116117f657436117f8565b835b9050848110806118085750838310155b156118135750611894565b600061181f84836126b6565b6001600160a01b0388166000908152609f602052604081205491925090611846908361267d565b6001600160a01b0389166000908152609a602052604090205490915061187782676765c793fa10079d601b1b61267d565b6118819190612694565b61188b90856125dd565b93508294505050505b935093915050565b60006118a9868484611d95565b6001600160a01b03808716600090815260a060209081526040808320938916835292905220546118f090879087906118eb9088906001600160801b03166126b6565b611e12565b6001600160a01b0386166000908152609a60205260409020546119149085906126b6565b6001600160a01b0387166000908152609a602052604090205550600195945050505050565b60675460405163bf40fac160e01b815260009182916001600160a01b039091169063bf40fac19061196c906004016126c9565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612594565b905060005b8351811015611ab2576000806000846001600160a01b031663d02501448886815181106119e1576119e16125b1565b60200260200101516040518263ffffffff1660e01b8152600401611a059190612452565b608060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612716565b9195509350915050801515600003611a9c57611a8f878581518110611a6d57611a6d6125b1565b602002602001015189856001600160401b0316856001600160401b0316611f8e565b611a9990876125dd565b95505b5050508080611aaa906125f0565b9150506119b2565b508115611bf25760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190612594565b6040516340c10f1960e01b81526001600160a01b0386811660048301526024820185905291909116906340c10f19906044016020604051808303816000875af1158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb5919061278e565b507fb5bb6cf2a7d73ab2167d87f348feea953c3e405a4ece2a262cd92cdce829f6d2848484604051611be9939291906127a9565b60405180910390a15b50505050565b6000611c05868484611d95565b6001600160a01b03808716600090815260a06020908152604080832093891683529290522054611c4790879087906118eb9088906001600160801b03166125dd565b6001600160a01b0386166000908152609a60205260409020546119149085906125dd565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561056c61056f565b611ca982600043611d95565b611cb66202a30082612694565b6001600160a01b039092166000908152609f602052604090209190915550565b611cdf81611c6b565b611d415760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610783565b6000805160206128c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d79836120c3565b600082511180611d865750805b15610da957611bf28383612103565b6001600160a01b0383166000908152609a60205260408120549003611dd25750506001600160a01b03166000908152609e60205260409020439055565b600080611de08585856117a4565b6001600160a01b039096166000908152609b6020908152604080832098909855609e9052959095209490945550505050565b6001600160a01b03808416600090815260a06020908152604080832093861683529290522080546001600160801b031615611f1e5780546001600160a01b0385166000908152609b602052604081205490916001600160801b03600160801b8204811692676765c793fa10079d601b1b92611e8d921661267d565b611e979190612694565b611ea191906126b6565b6001830154909150611ebd9082906001600160801b031661280e565b6001830180546001600160801b0319166001600160801b03929092169190911790556001600160a01b0385166000908152609d6020526040902054611f039082906125dd565b6001600160a01b0386166000908152609d6020526040902055505b80546001600160801b0319166001600160801b0383161781556001600160a01b0384166000908152609b6020526040902054676765c793fa10079d601b1b90611f67908461267d565b611f719190612694565b81546001600160801b03918216600160801b029116179055505050565b6000611f9b858484611d95565b6001600160a01b03808616600090815260a06020908152604080832093881683529290522054611fd790869086906001600160801b0316611e12565b6001600160a01b03858116600090815260a06020908152604080832093881683529290522060010180546001600160801b038082169283929091601091612027918591600160801b90041661280e565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03888116600081815260a060209081526040808320948c16835293815283822060010180546001600160801b0319169055918152609c90915220546120979250908316906125dd565b6001600160a01b0387166000908152609c60205260409020556001600160801b03169050949350505050565b6120cc81611cd6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061210e83611c6b565b6121695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610783565b600080846001600160a01b0316846040516121849190612859565b600060405180830381855af49150503d80600081146121bf576040519150601f19603f3d011682016040523d82523d6000602084013e6121c4565b606091505b50915091506121ec82826040518060600160405280602781526020016128e9602791396121f5565b95945050505050565b6060831561220457508161220e565b61220e8383612215565b9392505050565b8151156122255781518083602001fd5b8060405162461bcd60e51b81526004016107839190612875565b60006020828403121561225157600080fd5b5035919050565b6001600160a01b038116811461056c57600080fd5b803561227881612258565b919050565b60006020828403121561228f57600080fd5b813561220e81612258565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122d8576122d861229a565b604052919050565b600080604083850312156122f357600080fd5b82356001600160401b038082111561230a57600080fd5b818501915085601f83011261231e57600080fd5b81356020828211156123325761233261229a565b8160051b92506123438184016122b0565b828152928401810192818101908985111561235d57600080fd5b948201945b84861015612387578535935061237784612258565b8382529482019490820190612362565b9650612396905087820161226d565b9450505050509250929050565b600080604083850312156123b657600080fd5b82356123c181612258565b915060208301356123d181612258565b809150509250929050565b600080600080608085870312156123f257600080fd5b84356123fd81612258565b93506020850135925060408501359150606085013561241b81612258565b939692955090935050565b6000806040838503121561243957600080fd5b823561244481612258565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561247957600080fd5b823561248481612258565b91506020838101356001600160401b03808211156124a157600080fd5b818601915086601f8301126124b557600080fd5b8135818111156124c7576124c761229a565b6124d9601f8201601f191685016122b0565b915080825287848285010111156124ef57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060006040848603121561252257600080fd5b833561252d81612258565b925060208401356001600160401b038082111561254957600080fd5b818601915086601f83011261255d57600080fd5b81358181111561256c57600080fd5b8760208260051b850101111561258157600080fd5b6020830194508093505050509250925092565b6000602082840312156125a657600080fd5b815161220e81612258565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610d6657610d666125c7565b600060018201612602576126026125c7565b5060010190565b6020808252602c908201526000805160206128a983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128a983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b8082028115828204841417610d6657610d666125c7565b6000826126b157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d6657610d666125c7565b6020808252600c908201526b232aa7222fa6a0a720a3a2a960a11b604082015260600190565b80516001600160401b038116811461227857600080fd5b8051801515811461227857600080fd5b6000806000806080858703121561272c57600080fd5b845163ffffffff8116811461274057600080fd5b935061274e602086016126ef565b925061275c604086016126ef565b915061276a60608601612706565b905092959194509250565b60006020828403121561278757600080fd5b5051919050565b6000602082840312156127a057600080fd5b61220e82612706565b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156127f75785518516835294830194918301916001016127d9565b505080945050505050826040830152949350505050565b6001600160801b0381811683821601908082111561282e5761282e6125c7565b5092915050565b60005b83811015612850578181015183820152602001612838565b50506000910152565b6000825161286b818460208701612835565b9190910192915050565b6020815260008251806020840152612894816040850160208701612835565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f50e9107e9ea93fe0852047d68847357532f3929983eca147e60e88d8b6b0b0464736f6c63430008130033",
563
+ "deployedBytecode": "0x6080604052600436106101315760003560e01c806305a6aafa146101365780631b3c90a814610158578063213b329e1461016d57806322dec37b146101925780632d36bd88146101bf5780632e42a896146101f457806331903da1146102865780633659cfe6146102b35780633c8c043a146102d35780633d9a12cc146102e95780633e458a8e146103095780633e6326fc146103295780634162169f1461035657806347b3e7e8146103765780634f1db7f6146103a35780634f1ef2861461040157806352d1902d1461041457806352e62ac2146104295780635aef7de6146104495780637bcbb9ff14610469578063846141b31461049f578063862a4d47146104cc5780638aaa31de146104e2578063a39b215314610502578063c4d66de814610522578063e1758bd814610542575b600080fd5b34801561014257600080fd5b5061015661015136600461223f565b610557565b005b34801561016457600080fd5b5061015661056f565b34801561017957600080fd5b506202a3005b6040519081526020015b60405180910390f35b34801561019e57600080fd5b5061017f6101ad36600461227d565b609c6020526000908152604090205481565b3480156101cb57600080fd5b506101df6101da3660046122e0565b610696565b60408051928352602083019190915201610189565b34801561020057600080fd5b5061025361020f3660046123a3565b60a0602090815260009283526040808420909152908252902080546001909101546001600160801b0380831692600160801b90819004821692808316929190041684565b604080516001600160801b0395861681529385166020850152918416918301919091529091166060820152608001610189565b34801561029257600080fd5b5061017f6102a136600461227d565b609d6020526000908152604090205481565b3480156102bf57600080fd5b506101566102ce36600461227d565b61073b565b3480156102df57600080fd5b5061017f60d35481565b3480156102f557600080fd5b5061017f6103043660046123dc565b610809565b34801561031557600080fd5b50610156610324366004612426565b6108fd565b34801561033557600080fd5b50606754610349906001600160a01b031681565b6040516101899190612452565b34801561036257600080fd5b50606554610349906001600160a01b031681565b34801561038257600080fd5b5061017f61039136600461227d565b609f6020526000908152604090205481565b3480156103af57600080fd5b506101df6103be3660046123a3565b6001600160a01b03918216600081815260a06020908152604080832094909516825292835283812054918152609a909252919020546001600160801b0390911691565b61015661040f366004612466565b610a87565b34801561042057600080fd5b5061017f610b40565b34801561043557600080fd5b5061017f6104443660046122e0565b610bee565b34801561045557600080fd5b50606654610349906001600160a01b031681565b34801561047557600080fd5b5061017f61048436600461227d565b6001600160a01b03166000908152609b602052604090205490565b3480156104ab57600080fd5b5061017f6104ba36600461227d565b609e6020526000908152604090205481565b3480156104d857600080fd5b5061017f60d45481565b3480156104ee57600080fd5b506101566104fd36600461250d565b610d6c565b34801561050e57600080fd5b5061015661051d366004612426565b610dae565b34801561052e57600080fd5b5061015661053d36600461227d565b610ec6565b34801561054e57600080fd5b50610349610fed565b61055f61107a565b60d381905561056c61113f565b50565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f69190612594565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190612594565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b60008060006106a58585610bee565b90506000805b86518110156107305760a060008883815181106106ca576106ca6125b1565b6020908102919091018101516001600160a01b0390811683528282019390935260409182016000908120938a16815292905290206001015461071c90600160801b90046001600160801b0316836125dd565b915080610728816125f0565b9150506106ab565b509590945092505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361078c5760405162461bcd60e51b815260040161078390612609565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107be611615565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161078390612643565b6107ed81611631565b6040805160008082526020820190925261056c91839190611639565b6001600160a01b03808516600081815260a0602090815260408083209486168352938152838220845160808101865281546001600160801b038082168352600160801b9182900481168386015260019093015480841683890152049091166060820152928252609a9052918220548290156108f357600061088b8888886117a4565b91505082604001516001600160801b0316915082602001516001600160801b0316676765c793fa10079d601b1b8285600001516001600160801b03166108d1919061267d565b6108db9190612694565b6108e591906126b6565b6108ef90836125dd565b9150505b9695505050505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610934906004016126c9565b602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b81526004016109a09190612452565b608060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612716565b9350935093505080156109f657505050505050565b610a15848787866001600160401b0316866001600160401b031661189c565b50604080516001808252818301909252600091602080830190803683370190505090508481600081518110610a4c57610a4c6125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050610a768782611939565b610a7e61113f565b50505050505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610acf5760405162461bcd60e51b815260040161078390612609565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b01611615565b6001600160a01b031614610b275760405162461bcd60e51b815260040161078390612643565b610b3082611631565b610b3c82826001611639565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bdb5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610783565b506000805160206128c983398151915290565b60008060005b8451811015610d625760675460405163bf40fac160e01b8152600091829182916001600160a01b03169063bf40fac190610c30906004016126c9565b602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190612594565b6001600160a01b031663d0250144898681518110610c9157610c916125b1565b60200260200101516040518263ffffffff1660e01b8152600401610cb59190612452565b608060405180830381865afa158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf69190612716565b9195509350915050801515600003610d4c57610d3f888581518110610d1d57610d1d6125b1565b6020026020010151846001600160401b0316846001600160401b03168a610809565b610d4990866125dd565b94505b5050508080610d5a906125f0565b915050610bf4565b5090505b92915050565b610da98383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061193992505050565b505050565b60675460405163bf40fac160e01b81523391600091829182916001600160a01b039091169063bf40fac190610de5906004016126c9565b602060405180830381865afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190612594565b6001600160a01b031663d0250144856040518263ffffffff1660e01b8152600401610e519190612452565b608060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612716565b935093509350508015610ea757505050505050565b610a15848787866001600160401b0316866001600160401b0316611bf8565b600054610100900460ff1615808015610ee65750600054600160ff909116105b80610f075750610ef530611c6b565b158015610f07575060005460ff166001145b610f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610783565b6000805460ff191660011790558015610f8d576000805461ff0019166101001790555b66d3c21bcecceda160191b60d355610fa482611c7a565b8015610b3c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612594565b905090565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190612594565b6001600160a01b03161461113d5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610783565b565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061116e906004016126c9565b602060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af9190612594565b6001600160a01b03161461113d5760675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906111ec906004016126c9565b602060405180830381865afa158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612594565b90506000816001600160a01b0316630e47dbd96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112939190612775565b90506000816001600160401b038111156112af576112af61229a565b6040519080825280602002602001820160405280156112d8578160200160208202803683370190505b5090506000826001600160401b038111156112f5576112f561229a565b60405190808252806020026020018201604052801561131e578160200160208202803683370190505b5090506000805b84811015611559576040516372d00e9f60e01b8152600481018290526001600160a01b038716906372d00e9f90602401602060405180830381865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190612594565b8482815181106113a8576113a86125b1565b60200260200101906001600160a01b031690816001600160a01b031681525050600080876001600160a01b031663d02501448785815181106113ec576113ec6125b1565b60200260200101516040518263ffffffff1660e01b81526004016114109190612452565b608060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114519190612716565b50925092505043826001600160401b031611158015611478575043816001600160401b0316115b15611544576000868481518110611491576114916125b1565b60200260200101516001600160a01b031663e99b5d3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fa9190612775565b90508086858151811061150f5761150f6125b1565b60200260200101818152505085848151811061152d5761152d6125b1565b60200260200101518561154091906125dd565b9450505b50508080611551906125f0565b915050611325565b5060005b8481101561160d576000808311611581578560d35461157c9190612694565b6115b3565b82848381518110611594576115946125b1565b602002602001015160d3546115a9919061267d565b6115b39190612694565b905060008483815181106115c9576115c96125b1565b602002602001015111156115fa576115fa8583815181106115ec576115ec6125b1565b602002602001015182611c9d565b5080611605816125f0565b91505061155d565b505050505050565b6000805160206128c9833981519152546001600160a01b031690565b61056c61107a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561166c57610da983611cd6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156116c6575060408051601f3d908101601f191682019092526116c391810190612775565b60015b6117295760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610783565b6000805160206128c983398151915281146117985760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610783565b50610da9838383611d70565b6001600160a01b0383166000908152609b6020908152604080832054609e909252909120549083821080156117d95750834310155b6117e357816117e5565b835b915060008343116117f657436117f8565b835b9050848110806118085750838310155b156118135750611894565b600061181f84836126b6565b6001600160a01b0388166000908152609f602052604081205491925090611846908361267d565b6001600160a01b0389166000908152609a602052604090205490915061187782676765c793fa10079d601b1b61267d565b6118819190612694565b61188b90856125dd565b93508294505050505b935093915050565b60006118a9868484611d95565b6001600160a01b03808716600090815260a060209081526040808320938916835292905220546118f090879087906118eb9088906001600160801b03166126b6565b611e12565b6001600160a01b0386166000908152609a60205260409020546119149085906126b6565b6001600160a01b0387166000908152609a602052604090205550600195945050505050565b60675460405163bf40fac160e01b815260009182916001600160a01b039091169063bf40fac19061196c906004016126c9565b602060405180830381865afa158015611989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ad9190612594565b905060005b8351811015611ab2576000806000846001600160a01b031663d02501448886815181106119e1576119e16125b1565b60200260200101516040518263ffffffff1660e01b8152600401611a059190612452565b608060405180830381865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190612716565b9195509350915050801515600003611a9c57611a8f878581518110611a6d57611a6d6125b1565b602002602001015189856001600160401b0316856001600160401b0316611f8e565b611a9990876125dd565b95505b5050508080611aaa906125f0565b9150506119b2565b508115611bf25760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190612594565b6040516340c10f1960e01b81526001600160a01b0386811660048301526024820185905291909116906340c10f19906044016020604051808303816000875af1158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb5919061278e565b507fb5bb6cf2a7d73ab2167d87f348feea953c3e405a4ece2a262cd92cdce829f6d2848484604051611be9939291906127a9565b60405180910390a15b50505050565b6000611c05868484611d95565b6001600160a01b03808716600090815260a06020908152604080832093891683529290522054611c4790879087906118eb9088906001600160801b03166125dd565b6001600160a01b0386166000908152609a60205260409020546119149085906125dd565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561056c61056f565b611ca982600043611d95565b611cb66202a30082612694565b6001600160a01b039092166000908152609f602052604090209190915550565b611cdf81611c6b565b611d415760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610783565b6000805160206128c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d79836120c3565b600082511180611d865750805b15610da957611bf28383612103565b6001600160a01b0383166000908152609a60205260408120549003611dd25750506001600160a01b03166000908152609e60205260409020439055565b600080611de08585856117a4565b6001600160a01b039096166000908152609b6020908152604080832098909855609e9052959095209490945550505050565b6001600160a01b03808416600090815260a06020908152604080832093861683529290522080546001600160801b031615611f1e5780546001600160a01b0385166000908152609b602052604081205490916001600160801b03600160801b8204811692676765c793fa10079d601b1b92611e8d921661267d565b611e979190612694565b611ea191906126b6565b6001830154909150611ebd9082906001600160801b031661280e565b6001830180546001600160801b0319166001600160801b03929092169190911790556001600160a01b0385166000908152609d6020526040902054611f039082906125dd565b6001600160a01b0386166000908152609d6020526040902055505b80546001600160801b0319166001600160801b0383161781556001600160a01b0384166000908152609b6020526040902054676765c793fa10079d601b1b90611f67908461267d565b611f719190612694565b81546001600160801b03918216600160801b029116179055505050565b6000611f9b858484611d95565b6001600160a01b03808616600090815260a06020908152604080832093881683529290522054611fd790869086906001600160801b0316611e12565b6001600160a01b03858116600090815260a06020908152604080832093881683529290522060010180546001600160801b038082169283929091601091612027918591600160801b90041661280e565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b03888116600081815260a060209081526040808320948c16835293815283822060010180546001600160801b0319169055918152609c90915220546120979250908316906125dd565b6001600160a01b0387166000908152609c60205260409020556001600160801b03169050949350505050565b6120cc81611cd6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061210e83611c6b565b6121695760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610783565b600080846001600160a01b0316846040516121849190612859565b600060405180830381855af49150503d80600081146121bf576040519150601f19603f3d011682016040523d82523d6000602084013e6121c4565b606091505b50915091506121ec82826040518060600160405280602781526020016128e9602791396121f5565b95945050505050565b6060831561220457508161220e565b61220e8383612215565b9392505050565b8151156122255781518083602001fd5b8060405162461bcd60e51b81526004016107839190612875565b60006020828403121561225157600080fd5b5035919050565b6001600160a01b038116811461056c57600080fd5b803561227881612258565b919050565b60006020828403121561228f57600080fd5b813561220e81612258565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156122d8576122d861229a565b604052919050565b600080604083850312156122f357600080fd5b82356001600160401b038082111561230a57600080fd5b818501915085601f83011261231e57600080fd5b81356020828211156123325761233261229a565b8160051b92506123438184016122b0565b828152928401810192818101908985111561235d57600080fd5b948201945b84861015612387578535935061237784612258565b8382529482019490820190612362565b9650612396905087820161226d565b9450505050509250929050565b600080604083850312156123b657600080fd5b82356123c181612258565b915060208301356123d181612258565b809150509250929050565b600080600080608085870312156123f257600080fd5b84356123fd81612258565b93506020850135925060408501359150606085013561241b81612258565b939692955090935050565b6000806040838503121561243957600080fd5b823561244481612258565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561247957600080fd5b823561248481612258565b91506020838101356001600160401b03808211156124a157600080fd5b818601915086601f8301126124b557600080fd5b8135818111156124c7576124c761229a565b6124d9601f8201601f191685016122b0565b915080825287848285010111156124ef57600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060006040848603121561252257600080fd5b833561252d81612258565b925060208401356001600160401b038082111561254957600080fd5b818601915086601f83011261255d57600080fd5b81358181111561256c57600080fd5b8760208260051b850101111561258157600080fd5b6020830194508093505050509250925092565b6000602082840312156125a657600080fd5b815161220e81612258565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610d6657610d666125c7565b600060018201612602576126026125c7565b5060010190565b6020808252602c908201526000805160206128a983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128a983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b8082028115828204841417610d6657610d666125c7565b6000826126b157634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d6657610d666125c7565b6020808252600c908201526b232aa7222fa6a0a720a3a2a960a11b604082015260600190565b80516001600160401b038116811461227857600080fd5b8051801515811461227857600080fd5b6000806000806080858703121561272c57600080fd5b845163ffffffff8116811461274057600080fd5b935061274e602086016126ef565b925061275c604086016126ef565b915061276a60608601612706565b905092959194509250565b60006020828403121561278757600080fd5b5051919050565b6000602082840312156127a057600080fd5b61220e82612706565b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156127f75785518516835294830194918301916001016127d9565b505080945050505050826040830152949350505050565b6001600160801b0381811683821601908082111561282e5761282e6125c7565b5092915050565b60005b83811015612850578181015183820152602001612838565b50506000910152565b6000825161286b818460208701612835565b9190910192915050565b6020815260008251806020840152612894816040850160208701612835565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f50e9107e9ea93fe0852047d68847357532f3929983eca147e60e88d8b6b0b0464736f6c63430008130033",
564
564
  "linkReferences": {},
565
565
  "deployedLinkReferences": {}
566
566
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/3266d10edec7fc9970c70a167a51a0fe.json"
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
4
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/062ade5e006c401d527c0476deb5617e.json"
4
+ }