@artblocks/contracts 1.3.1 → 1.4.0

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 (234) hide show
  1. package/README.md +11 -10
  2. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
  3. package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
  4. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  5. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
  6. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
  7. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
  9. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
  10. package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
  11. package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
  12. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
  13. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
  14. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  42. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
  43. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
  44. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
  45. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
  46. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  47. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
  48. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
  49. package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
  50. package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
  51. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
  52. package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
  53. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
  54. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IPMPV0.sol/IPMPV0.json +7 -1
  63. package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
  64. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
  66. package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
  67. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  68. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
  69. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
  70. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
  71. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
  72. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
  73. package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
  74. package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
  75. package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
  76. package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
  77. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
  78. package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
  79. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  80. package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
  81. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  82. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  84. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  85. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  86. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  87. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  88. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  89. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  90. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  91. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  92. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  93. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
  94. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
  95. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
  96. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
  97. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  98. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  99. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  100. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
  101. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  102. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  103. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
  104. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  105. package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
  106. package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
  107. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
  108. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
  109. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
  110. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
  111. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  112. package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
  113. package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
  114. package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
  115. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
  116. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  117. package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
  118. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  119. package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
  120. package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
  121. package/artifacts/contracts/mock/MockPMPAugmentHook.sol/MockPMPAugmentHook.json +2 -2
  122. package/artifacts/contracts/mock/MockPMPConfigureHook.sol/MockPMPConfigureHook.json +2 -2
  123. package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
  124. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
  125. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
  126. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
  127. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  128. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
  129. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
  130. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
  131. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
  132. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
  133. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  134. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  135. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  136. package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
  137. package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
  138. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
  139. package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
  140. package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
  141. package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +9 -3
  142. package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
  143. package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
  144. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
  145. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
  146. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
  147. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
  148. package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
  149. package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
  150. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
  151. package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
  152. package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
  153. package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
  154. package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
  155. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
  156. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
  157. package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
  158. package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
  159. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
  160. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
  161. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
  162. package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
  163. package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
  164. package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
  165. package/contracts/DependencyRegistryV0.sol +143 -13
  166. package/contracts/GenArt721CoreV3_Curated.sol +1 -1
  167. package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
  168. package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
  169. package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
  170. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
  171. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
  172. package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
  173. package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
  174. package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
  175. package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
  176. package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
  177. package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
  178. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
  179. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
  180. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
  181. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
  182. package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
  183. package/contracts/interfaces/v0.8.x/IPMPV0.sol +5 -3
  184. package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
  185. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
  186. package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
  187. package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
  188. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
  189. package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
  190. package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
  191. package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
  192. package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
  193. package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
  194. package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
  195. package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
  196. package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
  197. package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
  198. package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
  199. package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
  200. package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
  201. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
  202. package/contracts/mock/ENSLibMock.sol +25 -0
  203. package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
  204. package/contracts/mock/FeistelWalkLibMock.sol +81 -0
  205. package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
  206. package/contracts/mock/MockGenArt721V3Core.sol +416 -0
  207. package/contracts/mock/MockPMP.sol +287 -0
  208. package/contracts/mock/MockTransferHook.sol +160 -0
  209. package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
  210. package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
  211. package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
  212. package/contracts/relay/RelayExecutor.sol +61 -0
  213. package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
  214. package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
  215. package/contracts/utils/MintMulticallUtil.sol +103 -0
  216. package/contracts/web3call/PMPV0.sol +92 -98
  217. package/contracts/web3call/PMPV1.sol +1204 -0
  218. package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
  219. package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
  220. package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
  221. package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
  222. package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
  223. package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
  224. package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
  225. package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
  226. package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
  227. package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
  228. package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
  229. package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
  230. package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
  231. package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
  232. package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
  233. package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
  234. package/package.json +40 -25
@@ -0,0 +1,502 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ClaimMinter",
4
+ "sourceName": "contracts/minter-suite/Minters/one-off/ClaimMinter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "minterFilter_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "coreContract_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "pmpContract_",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "pseudorandomAtomicContract_",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "uint256",
30
+ "name": "projectId_",
31
+ "type": "uint256"
32
+ },
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "maxInvocations_",
36
+ "type": "uint256"
37
+ },
38
+ {
39
+ "internalType": "uint256",
40
+ "name": "auctionLengthInSeconds_",
41
+ "type": "uint256"
42
+ }
43
+ ],
44
+ "stateMutability": "nonpayable",
45
+ "type": "constructor"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "ReentrancyGuardReentrantCall",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "value",
57
+ "type": "uint256"
58
+ },
59
+ {
60
+ "internalType": "uint256",
61
+ "name": "length",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "StringsInsufficientHexLength",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "anonymous": false,
70
+ "inputs": [
71
+ {
72
+ "indexed": false,
73
+ "internalType": "uint256",
74
+ "name": "basePriceInWei",
75
+ "type": "uint256"
76
+ },
77
+ {
78
+ "indexed": false,
79
+ "internalType": "uint256",
80
+ "name": "priceIncrementInWei",
81
+ "type": "uint256"
82
+ }
83
+ ],
84
+ "name": "PriceConfigured",
85
+ "type": "event"
86
+ },
87
+ {
88
+ "anonymous": false,
89
+ "inputs": [
90
+ {
91
+ "indexed": false,
92
+ "internalType": "uint256",
93
+ "name": "timestampStart",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "name": "TimestampStartConfigured",
98
+ "type": "event"
99
+ },
100
+ {
101
+ "anonymous": false,
102
+ "inputs": [
103
+ {
104
+ "indexed": true,
105
+ "internalType": "uint256",
106
+ "name": "tokenId",
107
+ "type": "uint256"
108
+ },
109
+ {
110
+ "indexed": true,
111
+ "internalType": "address",
112
+ "name": "claimant",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "indexed": false,
117
+ "internalType": "uint256",
118
+ "name": "price",
119
+ "type": "uint256"
120
+ }
121
+ ],
122
+ "name": "TokenClaimed",
123
+ "type": "event"
124
+ },
125
+ {
126
+ "anonymous": false,
127
+ "inputs": [
128
+ {
129
+ "indexed": true,
130
+ "internalType": "uint256",
131
+ "name": "tokenNumber",
132
+ "type": "uint256"
133
+ },
134
+ {
135
+ "indexed": true,
136
+ "internalType": "address",
137
+ "name": "toAddress",
138
+ "type": "address"
139
+ }
140
+ ],
141
+ "name": "TokenWithdrawnAfterAuction",
142
+ "type": "event"
143
+ },
144
+ {
145
+ "anonymous": false,
146
+ "inputs": [
147
+ {
148
+ "indexed": false,
149
+ "internalType": "uint256",
150
+ "name": "amount",
151
+ "type": "uint256"
152
+ }
153
+ ],
154
+ "name": "TokensPreMinted",
155
+ "type": "event"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "DEFAULT_PRICE_INCREMENT_IN_WEI",
160
+ "outputs": [
161
+ {
162
+ "internalType": "uint256",
163
+ "name": "",
164
+ "type": "uint256"
165
+ }
166
+ ],
167
+ "stateMutability": "view",
168
+ "type": "function"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "internalType": "uint256",
174
+ "name": "val",
175
+ "type": "uint256"
176
+ }
177
+ ],
178
+ "name": "armadilloSet",
179
+ "outputs": [],
180
+ "stateMutability": "nonpayable",
181
+ "type": "function"
182
+ },
183
+ {
184
+ "inputs": [],
185
+ "name": "auctionLengthInSeconds",
186
+ "outputs": [
187
+ {
188
+ "internalType": "uint256",
189
+ "name": "",
190
+ "type": "uint256"
191
+ }
192
+ ],
193
+ "stateMutability": "view",
194
+ "type": "function"
195
+ },
196
+ {
197
+ "inputs": [],
198
+ "name": "basePriceInWei",
199
+ "outputs": [
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "stateMutability": "view",
207
+ "type": "function"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "tokenNumber",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "claimToken",
218
+ "outputs": [],
219
+ "stateMutability": "payable",
220
+ "type": "function"
221
+ },
222
+ {
223
+ "inputs": [
224
+ {
225
+ "internalType": "uint256",
226
+ "name": "",
227
+ "type": "uint256"
228
+ }
229
+ ],
230
+ "name": "claimedBitmaps",
231
+ "outputs": [
232
+ {
233
+ "internalType": "uint256",
234
+ "name": "",
235
+ "type": "uint256"
236
+ }
237
+ ],
238
+ "stateMutability": "view",
239
+ "type": "function"
240
+ },
241
+ {
242
+ "inputs": [
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "basePriceInWei_",
246
+ "type": "uint256"
247
+ },
248
+ {
249
+ "internalType": "uint256",
250
+ "name": "priceIncrementInWei_",
251
+ "type": "uint256"
252
+ }
253
+ ],
254
+ "name": "configurePricePerTokenInWei",
255
+ "outputs": [],
256
+ "stateMutability": "nonpayable",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "inputs": [
261
+ {
262
+ "internalType": "uint256",
263
+ "name": "timestampStart_",
264
+ "type": "uint256"
265
+ }
266
+ ],
267
+ "name": "configureTimestampStart",
268
+ "outputs": [],
269
+ "stateMutability": "nonpayable",
270
+ "type": "function"
271
+ },
272
+ {
273
+ "inputs": [],
274
+ "name": "coreContractAddress",
275
+ "outputs": [
276
+ {
277
+ "internalType": "address",
278
+ "name": "",
279
+ "type": "address"
280
+ }
281
+ ],
282
+ "stateMutability": "view",
283
+ "type": "function"
284
+ },
285
+ {
286
+ "inputs": [],
287
+ "name": "getAllClaimedBitmaps",
288
+ "outputs": [
289
+ {
290
+ "internalType": "string",
291
+ "name": "",
292
+ "type": "string"
293
+ }
294
+ ],
295
+ "stateMutability": "view",
296
+ "type": "function"
297
+ },
298
+ {
299
+ "inputs": [
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "tokenNumber",
303
+ "type": "uint256"
304
+ }
305
+ ],
306
+ "name": "isTokenClaimed",
307
+ "outputs": [
308
+ {
309
+ "internalType": "bool",
310
+ "name": "",
311
+ "type": "bool"
312
+ }
313
+ ],
314
+ "stateMutability": "view",
315
+ "type": "function"
316
+ },
317
+ {
318
+ "inputs": [],
319
+ "name": "lastTokenInvocationPreMinted",
320
+ "outputs": [
321
+ {
322
+ "internalType": "uint256",
323
+ "name": "",
324
+ "type": "uint256"
325
+ }
326
+ ],
327
+ "stateMutability": "view",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [],
332
+ "name": "maxInvocations",
333
+ "outputs": [
334
+ {
335
+ "internalType": "uint256",
336
+ "name": "",
337
+ "type": "uint256"
338
+ }
339
+ ],
340
+ "stateMutability": "view",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "minterFilter",
346
+ "outputs": [
347
+ {
348
+ "internalType": "contract IMinterFilterV1",
349
+ "name": "",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [],
358
+ "name": "minterFilterAddress",
359
+ "outputs": [
360
+ {
361
+ "internalType": "address",
362
+ "name": "",
363
+ "type": "address"
364
+ }
365
+ ],
366
+ "stateMutability": "view",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [],
371
+ "name": "minterType",
372
+ "outputs": [
373
+ {
374
+ "internalType": "string",
375
+ "name": "",
376
+ "type": "string"
377
+ }
378
+ ],
379
+ "stateMutability": "view",
380
+ "type": "function"
381
+ },
382
+ {
383
+ "inputs": [],
384
+ "name": "pmpContract",
385
+ "outputs": [
386
+ {
387
+ "internalType": "contract IPMPV0",
388
+ "name": "",
389
+ "type": "address"
390
+ }
391
+ ],
392
+ "stateMutability": "view",
393
+ "type": "function"
394
+ },
395
+ {
396
+ "inputs": [
397
+ {
398
+ "internalType": "uint256",
399
+ "name": "amount",
400
+ "type": "uint256"
401
+ }
402
+ ],
403
+ "name": "preMint",
404
+ "outputs": [],
405
+ "stateMutability": "nonpayable",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [],
410
+ "name": "priceIncrementInWei",
411
+ "outputs": [
412
+ {
413
+ "internalType": "uint256",
414
+ "name": "",
415
+ "type": "uint256"
416
+ }
417
+ ],
418
+ "stateMutability": "view",
419
+ "type": "function"
420
+ },
421
+ {
422
+ "inputs": [],
423
+ "name": "projectId",
424
+ "outputs": [
425
+ {
426
+ "internalType": "uint256",
427
+ "name": "",
428
+ "type": "uint256"
429
+ }
430
+ ],
431
+ "stateMutability": "view",
432
+ "type": "function"
433
+ },
434
+ {
435
+ "inputs": [],
436
+ "name": "pseudorandomAtomicContract",
437
+ "outputs": [
438
+ {
439
+ "internalType": "contract IPseudorandomAtomic",
440
+ "name": "",
441
+ "type": "address"
442
+ }
443
+ ],
444
+ "stateMutability": "view",
445
+ "type": "function"
446
+ },
447
+ {
448
+ "inputs": [],
449
+ "name": "timestampStart",
450
+ "outputs": [
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "stateMutability": "view",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "internalType": "address",
464
+ "name": "",
465
+ "type": "address"
466
+ }
467
+ ],
468
+ "name": "walletHasClaimed",
469
+ "outputs": [
470
+ {
471
+ "internalType": "bool",
472
+ "name": "",
473
+ "type": "bool"
474
+ }
475
+ ],
476
+ "stateMutability": "view",
477
+ "type": "function"
478
+ },
479
+ {
480
+ "inputs": [
481
+ {
482
+ "internalType": "uint256[]",
483
+ "name": "tokenNumbers",
484
+ "type": "uint256[]"
485
+ },
486
+ {
487
+ "internalType": "address",
488
+ "name": "toAddress",
489
+ "type": "address"
490
+ }
491
+ ],
492
+ "name": "withdrawTokensAfterAuction",
493
+ "outputs": [],
494
+ "stateMutability": "nonpayable",
495
+ "type": "function"
496
+ }
497
+ ],
498
+ "bytecode": "0x61016060405260006006553480156200001757600080fd5b50604051620027d8380380620027d88339810160408190526200003a916200010f565b60016000556102008210620000bb5760405162461bcd60e51b815260206004820152603860248201527f4d617820696e766f636174696f6e73206d757374206265206c6573732074686160448201527f6e2035313220666f72206269746d617020737570706f72740000000000000000606482015260840160405180910390fd5b6001600160a01b0396871660e05294861660c0529285166101005293166101205260809290925260a0919091526101405262000189565b80516001600160a01b03811681146200010a57600080fd5b919050565b600080600080600080600060e0888a0312156200012b57600080fd5b6200013688620000f2565b96506200014660208901620000f2565b95506200015660408901620000f2565b94506200016660608901620000f2565b93506080880151925060a0880151915060c0880151905092959891949750929550565b60805160a05160c05160e051610100516101205161014051612537620002a1600039600081816102310152818161053a0152610d9301526000818161038401526114f50152600081816101830152611001015260008181610132015281816104090152610a0d0152600081816103d8015281816104fd0152818161065201528181610741015281816107b7015281816108a5015281816109df01528181610d5e01528181610eaf0152818161102e015281816110b3015281816110ee015281816111a3015261121d015260008181610265015281816107e70152610c220152600081816101fd015281816105e50152818161087c015281816109b101528181610d3d01528181610e81015261109101526125376000f3fe60806040526004361061011b5760003560e01c806308d94188146101205780630cccf0fe146101715780631ec02108146101a5578063344e7230146101c95780633fafa127146101eb57806354dac4361461021f5780636cbdef61146102535780636cedd32b146102875780637da5a5b6146102b7578063815535a0146102e75780638ad433ac146103075780638b1980f014610327578063a9e7c2e514610349578063b251fda21461035c578063b310c79214610372578063bbd0e0da146103a6578063bd07aabf146103c6578063dd85582f146103fa578063e4010ddb1461042d578063e9d1e8ac1461045a578063ed5f4b9414610491578063eee70476146104a7578063fa51223a146104c2578063fec90b00146104d8575b600080fd5b34801561012c57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017d57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b3480156101b157600080fd5b506101bb60065481565b604051908152602001610168565b3480156101d557600080fd5b506101e96101e4366004611f88565b6104f8565b005b3480156101f757600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022b57600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561025f57600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561029357600080fd5b506102a76102a2366004612057565b610703565b6040519015158152602001610168565b3480156102c357600080fd5b506102a76102d2366004612070565b60026020526000908152604090205460ff1681565b3480156102f357600080fd5b506101e9610302366004612057565b61073c565b34801561031357600080fd5b506101e9610322366004612057565b6107aa565b34801561033357600080fd5b5061033c610ad9565b60405161016891906120e4565b6101e9610357366004612057565b610c18565b34801561036857600080fd5b506101bb60045481565b34801561037e57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b257600080fd5b506101e96103c13660046120f7565b61119e565b3480156103d257600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b34801561040657600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610154565b34801561043957600080fd5b506101bb610448366004612057565b60016020526000908152604090205481565b34801561046657600080fd5b5061033c6040518060400160405280600b81526020016a21b630b4b6a6b4b73a32b960a91b81525081565b34801561049d57600080fd5b506101bb60035481565b3480156104b357600080fd5b506101bb6601c6bf5263400081565b3480156104ce57600080fd5b506101bb60055481565b3480156104e457600080fd5b506101e96104f3366004612057565b611218565b61052b7f00000000000000000000000000000000000000000000000000000000000000003330630344e72360e41b61131b565b600060035411801561056a57507f0000000000000000000000000000000000000000000000000000000000000000600354610566919061212f565b4210155b6105b35760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881a185cc81b9bdd08195b991959605a1b60448201526064015b60405180910390fd5b815160005b818110156106fd5760008482815181106105d4576105d4612142565b60200260200101519050600061060a7f000000000000000000000000000000000000000000000000000000000000000083611370565b905061061582610703565b156106325760405162461bcd60e51b81526004016105aa90612158565b61063b82611393565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e9061068b90309089908690600401612187565b600060405180830381600087803b1580156106a557600080fd5b505af11580156106b9573d6000803e3d6000fd5b50506040516001600160a01b03881692508491507f3aa5a5f66687bc10cc944c238a90f3dbacd8b842dd9b5f8f21bc664283b6e8f390600090a350506001016105b8565b50505050565b6000806000610711846113c3565b60008281526001602081905260409091205492945090925060ff83161b811615155b95945050505050565b61076f7f0000000000000000000000000000000000000000000000000000000000000000333063040aa9ad60e51b61131b565b60038190556040518181527f24101a3771c291971dcb1a7a444d848fbacb960f3b17f4d21aa6ab34503ead009060200160405180910390a150565b6107b26113e7565b6107e57f000000000000000000000000000000000000000000000000000000000000000033306322b50ceb60e21b61131b565b7f000000000000000000000000000000000000000000000000000000000000000060065482610814919061212f565b111561086d5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e742065786365656473206d6178696d756d20696e766f636174696f6044820152616e7360f01b60648201526084016105aa565b604051630ea5613f60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091891906121bb565b5050505050905080600654146109925760405162461bcd60e51b815260206004820152603960248201527f4c617374206d696e74657220746f6b656e20696e766f636174696f6e20697320604482015278657175616c20746f20636f726520696e766f636174696f6e7360381b60648201526084016105aa565b5060005b81811015610a81576040516117cd60e21b81523060048201527f000000000000000000000000000000000000000000000000000000000000000060248201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a78919061221a565b50600101610996565b508060066000828254610a94919061212f565b90915550506040518181527f873083b0010efc956b916eb88fb86cee799b2c3c96953872437dfd502a2842119060200160405180910390a1610ad66001600055565b50565b600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495460009182527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546040805161020080825261022082019092526060949160208201818036833701905050905060005b610100811015610ba9576001811b8416600003610b7257600360fc1b610b78565b603160f81b5b828281518110610b8a57610b8a612142565b60200101906001600160f81b031916908160001a905350600101610b51565b5060005b610100811015610c10576001811b8316600003610bce57600360fc1b610bd4565b603160f81b5b82610be18361010061212f565b81518110610bf157610bf1612142565b60200101906001600160f81b031916908160001a905350600101610bad565b509392505050565b610c206113e7565b7f00000000000000000000000000000000000000000000000000000000000000008110610ca05760405162461bcd60e51b815260206004820152602860248201527f546f6b656e206e756d6265722065786365656473206d6178696d756d20696e766044820152676f636174696f6e7360c01b60648201526084016105aa565b610ca981610703565b15610cc65760405162461bcd60e51b81526004016105aa90612158565b3360009081526002602052604090205460ff1615610d235760405162461bcd60e51b815260206004820152601a60248201527915d85b1b195d081a185cc8185b1c9958591e4818db185a5b595960321b60448201526064016105aa565b6003541580610d33575060035442105b15610d9157610d8c7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000333063a9e7c2e560e01b611411565b610e01565b7f0000000000000000000000000000000000000000000000000000000000000000600354610dbf919061212f565b4210610e015760405162461bcd60e51b8152602060048201526011602482015270105d58dd1a5bdb881a185cc8195b991959607a1b60448201526064016105aa565b6000610e0c82611481565b9050803414610e595760405162461bcd60e51b815260206004820152601960248201527827b7363c9039b2b73210383934b1b2903832b9103a37b5b2b760391b60448201526064016105aa565b610e6282611393565b336000908152600260205260408120805460ff19166001179055610ea67f000000000000000000000000000000000000000000000000000000000000000084611370565b90506000610ed47f0000000000000000000000000000000000000000000000000000000000000000836114ca565b90506000819003610f215760405162461bcd60e51b815260206004820152601760248201527613db9b1e481b9bdb8b5e995c9bc81a185cda081cd95959604a1b60448201526064016105aa565b604080516001808252818301909252600091816020015b610f696040805160a08101909152606081526020810160008152600060208201819052604082015260609081015290565b815260200190600190039081610f38579050506040805160e08101909152600960a08201908152680c6d8c2d2da90c2e6d60bb1b60c0830152815290915060208101600881526000602082018190526040820152606001610fc984611596565b81525081600081518110610fdf57610fdf612142565b602090810291909101015260405163037c31bd60e51b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636f8637a09061105a907f00000000000000000000000000000000000000000000000000000000000000009087908690600401612233565b600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050506110d77f0000000000000000000000000000000000000000000000000000000000000000857f00000000000000000000000000000000000000000000000000000000000000006115ad565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e9061112790309033908890600401612187565b600060405180830381600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b50506040518681523392508591507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a9060200160405180910390a350505050610ad66001600055565b6111d17f00000000000000000000000000000000000000000000000000000000000000003330635de8706d60e11b61131b565b6004829055600581905560408051838152602081018390527fe46599ae40a316e0e77e7f42f492f8da64f65c3c8decf1bc4d2dbde834a50bb9910160405180910390a15050565b61124a7f0000000000000000000000000000000000000000000000000000000000000000333062fec90b60e81b61131b565b606481106112845760405162461bcd60e51b815260206004820152600760248201526639b6b7b63632b960c91b60448201526064016105aa565b60035442106112d35760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481899599bdc99481d1a5b595cdd185b5c081cdd185c9d602a1b60448201526064016105aa565b6040516000805160206124e283398151915290527fc256e5b5d1688812777f553801476c9e4a2db5296947173fccf0285fdec22aa2186000805160206124c283398151915255565b6113278484848461176e565b6106fd5760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b60448201526064016105aa565b600081611380620f424085612310565b61138a919061212f565b90505b92915050565b60008061139f836113c3565b6000918252600160208190526040909220805460ff9092169290921b179055505050565b6000806113d26101008461233d565b91506113e061010084612351565b9050915091565b60026000540361140a57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b61141c8585856117f6565b8061142e575061142e8484848461176e565b61147a5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c00000060448201526064016105aa565b5050505050565b6004546005546000919080830361149c57506601c6bf526340005b6114a461187f565b6114ae908261212f565b6114b89085612310565b6114c2908361212f565b949350505050565b6040516001600160601b0319606084901b166020820152603481018290526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358fb597c90605401604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161155391815260200190565b6020604051808303816000875af1158015611572573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a919061221a565b606061138d826115a5846118d2565b60010161193c565b816000036115ba57505050565b60006115c582611ab3565b9050600080600080600080600080881561166357604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a9190612365565b969e50949c50929a5090985096509450925090506116e3565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa1580156116af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d391906123ed565b949c50929a509096509450925090505b8a82856116f0898c61212f565b6116fa919061212f565b611704919061212f565b146117505760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b60448201526064016105aa565b61176086868a8a88888888611b29565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107339190612456565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561183e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118629190612471565b6001600160a01b0316826001600160a01b03161490509392505050565b6000805160206124c28339815191528054600091906000805160206124e2833981519152908080156118c657604051838152602081016040526020812083189550506118cb565b600094505b5050505090565b600080608083901c156118ea5760809290921c916010015b604083901c156118ff5760409290921c916008015b602083901c156119145760209290921c916004015b601083901c156119295760109290921c916002015b600883901c1561138d5760010192915050565b606082600061194c846002612310565b61195790600261212f565b6001600160401b0381111561196e5761196e611f4d565b6040519080825280601f01601f191660200182016040528015611998576020820181803683370190505b509050600360fc1b816000815181106119b3576119b3612142565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106119e2576119e2612142565b60200101906001600160f81b031916908160001a9053506000611a06856002612310565b611a1190600161212f565b90505b6001811115611a89576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611a4557611a45612142565b1a60f81b828281518110611a5b57611a5b612142565b60200101906001600160f81b031916908160001a90535060049290921c91611a828161248e565b9050611a14565b5081156114c25760405163e22e27eb60e01b815260048101869052602481018590526044016105aa565b6001600160a01b03811660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b39602052604081208054610100900460ff1615611b03575460ff1692915050565b6000611b0e84611dd7565b825481151561ffff1990911617610100179092555092915050565b8715611bd4576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611b7c576040519150601f19603f3d011682016040523d82523d6000602084013e611b81565b606091505b5050905080611bd25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016105aa565b505b8515611c7f576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611c27576040519150601f19603f3d011682016040523d82523d6000602084013e611c2c565b606091505b5050905080611c7d5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016105aa565b505b8315611d22576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b5050905080611d205760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016105aa565b505b8115611dcd576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611d75576040519150601f19603f3d011682016040523d82523d6000602084013e611d7a565b606091505b5050905080611dcb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016105aa565b505b5050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611e399085906124a5565b600060405180830381855afa9150503d8060008114611e74576040519150601f19603f3d011682016040523d82523d6000602084013e611e79565b606091505b509150915081611ed95760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b60648201526084016105aa565b805160c0819003611ef05750600095945050505050565b8061010003611f055750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016105aa565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ad657600080fd5b8035611f8381611f63565b919050565b60008060408385031215611f9b57600080fd5b82356001600160401b0380821115611fb257600080fd5b818501915085601f830112611fc657600080fd5b8135602082821115611fda57611fda611f4d565b8160051b604051601f19603f83011681018181108682111715611fff57611fff611f4d565b60405292835281830193508481018201928984111561201d57600080fd5b948201945b8386101561203b57853585529482019493820193612022565b965061204a9050878201611f78565b9450505050509250929050565b60006020828403121561206957600080fd5b5035919050565b60006020828403121561208257600080fd5b813561208d81611f63565b9392505050565b60005b838110156120af578181015183820152602001612097565b50506000910152565b600081518084526120d0816020860160208601612094565b601f01601f19169290920160200192915050565b60208152600061138a60208301846120b8565b6000806040838503121561210a57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b8082018082111561138d5761138d612119565b634e487b7160e01b600052603260045260246000fd5b602080825260159082015274151bdad95b88185b1c9958591e4818db185a5b5959605a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80518015158114611f8357600080fd5b60008060008060008060c087890312156121d457600080fd5b86519550602087015194506121eb604088016121ab565b93506121f9606088016121ab565b92506080870151915061220e60a088016121ab565b90509295509295509295565b60006020828403121561222c57600080fd5b5051919050565b6001600160a01b03841681526020808201849052606060408084018290528451848301819052600093608092909183870190600581901b8801850189850188805b848110156122fd57607f198c8503018652825160a0815181875261229a828801826120b8565b91505089820151600981106122bd57634e487b7160e01b85526021600452602485fd5b868b015281890151898701528b82015115158c870152908a01518582038b870152906122e981836120b8565b978a01979550505091870191600101612274565b50919d9c50505050505050505050505050565b808202811582820484141761138d5761138d612119565b634e487b7160e01b600052601260045260246000fd5b60008261234c5761234c612327565b500490565b60008261236057612360612327565b500690565b600080600080600080600080610100898b03121561238257600080fd5b88519750602089015161239481611f63565b60408a015160608b015191985096506123ac81611f63565b60808a015160a08b015191965094506123c481611f63565b60c08a015160e08b015191945092506123dc81611f63565b809150509295985092959890939650565b60008060008060008060c0878903121561240657600080fd5b86519550602087015161241881611f63565b60408801516060890151919650945061243081611f63565b608088015160a0890151919450925061244881611f63565b809150509295509295509295565b60006020828403121561246857600080fd5b61138a826121ab565b60006020828403121561248357600080fd5b815161208d81611f63565b60008161249d5761249d612119565b506000190190565b600082516124b7818460208701612094565b919091019291505056fe3a7a4c0f3d7e8a7a9e4c36b8dfc3e3b9b8c0aab0e9b7b6a5c4d3e2f1a0b9c8d79f9ca7f1d2c3b4a5968778695a4b3c2d1e0f0e1d2c3b4a5968778695a4b3c2d1a26469706673582212205fce1a2f67982966c60f9c1a66473002362461321f9bbf8990f05b1d529e869b64736f6c63430008160033",
499
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806308d94188146101205780630cccf0fe146101715780631ec02108146101a5578063344e7230146101c95780633fafa127146101eb57806354dac4361461021f5780636cbdef61146102535780636cedd32b146102875780637da5a5b6146102b7578063815535a0146102e75780638ad433ac146103075780638b1980f014610327578063a9e7c2e514610349578063b251fda21461035c578063b310c79214610372578063bbd0e0da146103a6578063bd07aabf146103c6578063dd85582f146103fa578063e4010ddb1461042d578063e9d1e8ac1461045a578063ed5f4b9414610491578063eee70476146104a7578063fa51223a146104c2578063fec90b00146104d8575b600080fd5b34801561012c57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017d57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b3480156101b157600080fd5b506101bb60065481565b604051908152602001610168565b3480156101d557600080fd5b506101e96101e4366004611f88565b6104f8565b005b3480156101f757600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561022b57600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561025f57600080fd5b506101bb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561029357600080fd5b506102a76102a2366004612057565b610703565b6040519015158152602001610168565b3480156102c357600080fd5b506102a76102d2366004612070565b60026020526000908152604090205460ff1681565b3480156102f357600080fd5b506101e9610302366004612057565b61073c565b34801561031357600080fd5b506101e9610322366004612057565b6107aa565b34801561033357600080fd5b5061033c610ad9565b60405161016891906120e4565b6101e9610357366004612057565b610c18565b34801561036857600080fd5b506101bb60045481565b34801561037e57600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b257600080fd5b506101e96103c13660046120f7565b61119e565b3480156103d257600080fd5b506101547f000000000000000000000000000000000000000000000000000000000000000081565b34801561040657600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610154565b34801561043957600080fd5b506101bb610448366004612057565b60016020526000908152604090205481565b34801561046657600080fd5b5061033c6040518060400160405280600b81526020016a21b630b4b6a6b4b73a32b960a91b81525081565b34801561049d57600080fd5b506101bb60035481565b3480156104b357600080fd5b506101bb6601c6bf5263400081565b3480156104ce57600080fd5b506101bb60055481565b3480156104e457600080fd5b506101e96104f3366004612057565b611218565b61052b7f00000000000000000000000000000000000000000000000000000000000000003330630344e72360e41b61131b565b600060035411801561056a57507f0000000000000000000000000000000000000000000000000000000000000000600354610566919061212f565b4210155b6105b35760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881a185cc81b9bdd08195b991959605a1b60448201526064015b60405180910390fd5b815160005b818110156106fd5760008482815181106105d4576105d4612142565b60200260200101519050600061060a7f000000000000000000000000000000000000000000000000000000000000000083611370565b905061061582610703565b156106325760405162461bcd60e51b81526004016105aa90612158565b61063b82611393565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e9061068b90309089908690600401612187565b600060405180830381600087803b1580156106a557600080fd5b505af11580156106b9573d6000803e3d6000fd5b50506040516001600160a01b03881692508491507f3aa5a5f66687bc10cc944c238a90f3dbacd8b842dd9b5f8f21bc664283b6e8f390600090a350506001016105b8565b50505050565b6000806000610711846113c3565b60008281526001602081905260409091205492945090925060ff83161b811615155b95945050505050565b61076f7f0000000000000000000000000000000000000000000000000000000000000000333063040aa9ad60e51b61131b565b60038190556040518181527f24101a3771c291971dcb1a7a444d848fbacb960f3b17f4d21aa6ab34503ead009060200160405180910390a150565b6107b26113e7565b6107e57f000000000000000000000000000000000000000000000000000000000000000033306322b50ceb60e21b61131b565b7f000000000000000000000000000000000000000000000000000000000000000060065482610814919061212f565b111561086d5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e742065786365656473206d6178696d756d20696e766f636174696f6044820152616e7360f01b60648201526084016105aa565b604051630ea5613f60e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156108f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091891906121bb565b5050505050905080600654146109925760405162461bcd60e51b815260206004820152603960248201527f4c617374206d696e74657220746f6b656e20696e766f636174696f6e20697320604482015278657175616c20746f20636f726520696e766f636174696f6e7360381b60648201526084016105aa565b5060005b81811015610a81576040516117cd60e21b81523060048201527f000000000000000000000000000000000000000000000000000000000000000060248201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a78919061221a565b50600101610996565b508060066000828254610a94919061212f565b90915550506040518181527f873083b0010efc956b916eb88fb86cee799b2c3c96953872437dfd502a2842119060200160405180910390a1610ad66001600055565b50565b600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495460009182527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546040805161020080825261022082019092526060949160208201818036833701905050905060005b610100811015610ba9576001811b8416600003610b7257600360fc1b610b78565b603160f81b5b828281518110610b8a57610b8a612142565b60200101906001600160f81b031916908160001a905350600101610b51565b5060005b610100811015610c10576001811b8316600003610bce57600360fc1b610bd4565b603160f81b5b82610be18361010061212f565b81518110610bf157610bf1612142565b60200101906001600160f81b031916908160001a905350600101610bad565b509392505050565b610c206113e7565b7f00000000000000000000000000000000000000000000000000000000000000008110610ca05760405162461bcd60e51b815260206004820152602860248201527f546f6b656e206e756d6265722065786365656473206d6178696d756d20696e766044820152676f636174696f6e7360c01b60648201526084016105aa565b610ca981610703565b15610cc65760405162461bcd60e51b81526004016105aa90612158565b3360009081526002602052604090205460ff1615610d235760405162461bcd60e51b815260206004820152601a60248201527915d85b1b195d081a185cc8185b1c9958591e4818db185a5b595960321b60448201526064016105aa565b6003541580610d33575060035442105b15610d9157610d8c7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000333063a9e7c2e560e01b611411565b610e01565b7f0000000000000000000000000000000000000000000000000000000000000000600354610dbf919061212f565b4210610e015760405162461bcd60e51b8152602060048201526011602482015270105d58dd1a5bdb881a185cc8195b991959607a1b60448201526064016105aa565b6000610e0c82611481565b9050803414610e595760405162461bcd60e51b815260206004820152601960248201527827b7363c9039b2b73210383934b1b2903832b9103a37b5b2b760391b60448201526064016105aa565b610e6282611393565b336000908152600260205260408120805460ff19166001179055610ea67f000000000000000000000000000000000000000000000000000000000000000084611370565b90506000610ed47f0000000000000000000000000000000000000000000000000000000000000000836114ca565b90506000819003610f215760405162461bcd60e51b815260206004820152601760248201527613db9b1e481b9bdb8b5e995c9bc81a185cda081cd95959604a1b60448201526064016105aa565b604080516001808252818301909252600091816020015b610f696040805160a08101909152606081526020810160008152600060208201819052604082015260609081015290565b815260200190600190039081610f38579050506040805160e08101909152600960a08201908152680c6d8c2d2da90c2e6d60bb1b60c0830152815290915060208101600881526000602082018190526040820152606001610fc984611596565b81525081600081518110610fdf57610fdf612142565b602090810291909101015260405163037c31bd60e51b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636f8637a09061105a907f00000000000000000000000000000000000000000000000000000000000000009087908690600401612233565b600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050506110d77f0000000000000000000000000000000000000000000000000000000000000000857f00000000000000000000000000000000000000000000000000000000000000006115ad565b604051632142170760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342842e0e9061112790309033908890600401612187565b600060405180830381600087803b15801561114157600080fd5b505af1158015611155573d6000803e3d6000fd5b50506040518681523392508591507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a9060200160405180910390a350505050610ad66001600055565b6111d17f00000000000000000000000000000000000000000000000000000000000000003330635de8706d60e11b61131b565b6004829055600581905560408051838152602081018390527fe46599ae40a316e0e77e7f42f492f8da64f65c3c8decf1bc4d2dbde834a50bb9910160405180910390a15050565b61124a7f0000000000000000000000000000000000000000000000000000000000000000333062fec90b60e81b61131b565b606481106112845760405162461bcd60e51b815260206004820152600760248201526639b6b7b63632b960c91b60448201526064016105aa565b60035442106112d35760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481899599bdc99481d1a5b595cdd185b5c081cdd185c9d602a1b60448201526064016105aa565b6040516000805160206124e283398151915290527fc256e5b5d1688812777f553801476c9e4a2db5296947173fccf0285fdec22aa2186000805160206124c283398151915255565b6113278484848461176e565b6106fd5760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b60448201526064016105aa565b600081611380620f424085612310565b61138a919061212f565b90505b92915050565b60008061139f836113c3565b6000918252600160208190526040909220805460ff9092169290921b179055505050565b6000806113d26101008461233d565b91506113e061010084612351565b9050915091565b60026000540361140a57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b61141c8585856117f6565b8061142e575061142e8484848461176e565b61147a5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c7920417274697374206f7220436f72652041646d696e2041434c00000060448201526064016105aa565b5050505050565b6004546005546000919080830361149c57506601c6bf526340005b6114a461187f565b6114ae908261212f565b6114b89085612310565b6114c2908361212f565b949350505050565b6040516001600160601b0319606084901b166020820152603481018290526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906358fb597c90605401604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161155391815260200190565b6020604051808303816000875af1158015611572573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a919061221a565b606061138d826115a5846118d2565b60010161193c565b816000036115ba57505050565b60006115c582611ab3565b9050600080600080600080600080881561166357604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a9190612365565b969e50949c50929a5090985096509450925090506116e3565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa1580156116af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d391906123ed565b949c50929a509096509450925090505b8a82856116f0898c61212f565b6116fa919061212f565b611704919061212f565b146117505760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b60448201526064016105aa565b61176086868a8a88888888611b29565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af11580156117d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107339190612456565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561183e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118629190612471565b6001600160a01b0316826001600160a01b03161490509392505050565b6000805160206124c28339815191528054600091906000805160206124e2833981519152908080156118c657604051838152602081016040526020812083189550506118cb565b600094505b5050505090565b600080608083901c156118ea5760809290921c916010015b604083901c156118ff5760409290921c916008015b602083901c156119145760209290921c916004015b601083901c156119295760109290921c916002015b600883901c1561138d5760010192915050565b606082600061194c846002612310565b61195790600261212f565b6001600160401b0381111561196e5761196e611f4d565b6040519080825280601f01601f191660200182016040528015611998576020820181803683370190505b509050600360fc1b816000815181106119b3576119b3612142565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106119e2576119e2612142565b60200101906001600160f81b031916908160001a9053506000611a06856002612310565b611a1190600161212f565b90505b6001811115611a89576f181899199a1a9b1b9c1cb0b131b232b360811b83600f1660108110611a4557611a45612142565b1a60f81b828281518110611a5b57611a5b612142565b60200101906001600160f81b031916908160001a90535060049290921c91611a828161248e565b9050611a14565b5081156114c25760405163e22e27eb60e01b815260048101869052602481018590526044016105aa565b6001600160a01b03811660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b39602052604081208054610100900460ff1615611b03575460ff1692915050565b6000611b0e84611dd7565b825481151561ffff1990911617610100179092555092915050565b8715611bd4576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611b7c576040519150601f19603f3d011682016040523d82523d6000602084013e611b81565b606091505b5050905080611bd25760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016105aa565b505b8515611c7f576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611c27576040519150601f19603f3d011682016040523d82523d6000602084013e611c2c565b606091505b5050905080611c7d5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016105aa565b505b8315611d22576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b5050905080611d205760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016105aa565b505b8115611dcd576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611d75576040519150601f19603f3d011682016040523d82523d6000602084013e611d7a565b606091505b5050905080611dcb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016105aa565b505b5050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611e399085906124a5565b600060405180830381855afa9150503d8060008114611e74576040519150601f19603f3d011682016040523d82523d6000602084013e611e79565b606091505b509150915081611ed95760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b60648201526084016105aa565b805160c0819003611ef05750600095945050505050565b8061010003611f055750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016105aa565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ad657600080fd5b8035611f8381611f63565b919050565b60008060408385031215611f9b57600080fd5b82356001600160401b0380821115611fb257600080fd5b818501915085601f830112611fc657600080fd5b8135602082821115611fda57611fda611f4d565b8160051b604051601f19603f83011681018181108682111715611fff57611fff611f4d565b60405292835281830193508481018201928984111561201d57600080fd5b948201945b8386101561203b57853585529482019493820193612022565b965061204a9050878201611f78565b9450505050509250929050565b60006020828403121561206957600080fd5b5035919050565b60006020828403121561208257600080fd5b813561208d81611f63565b9392505050565b60005b838110156120af578181015183820152602001612097565b50506000910152565b600081518084526120d0816020860160208601612094565b601f01601f19169290920160200192915050565b60208152600061138a60208301846120b8565b6000806040838503121561210a57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b8082018082111561138d5761138d612119565b634e487b7160e01b600052603260045260246000fd5b602080825260159082015274151bdad95b88185b1c9958591e4818db185a5b5959605a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80518015158114611f8357600080fd5b60008060008060008060c087890312156121d457600080fd5b86519550602087015194506121eb604088016121ab565b93506121f9606088016121ab565b92506080870151915061220e60a088016121ab565b90509295509295509295565b60006020828403121561222c57600080fd5b5051919050565b6001600160a01b03841681526020808201849052606060408084018290528451848301819052600093608092909183870190600581901b8801850189850188805b848110156122fd57607f198c8503018652825160a0815181875261229a828801826120b8565b91505089820151600981106122bd57634e487b7160e01b85526021600452602485fd5b868b015281890151898701528b82015115158c870152908a01518582038b870152906122e981836120b8565b978a01979550505091870191600101612274565b50919d9c50505050505050505050505050565b808202811582820484141761138d5761138d612119565b634e487b7160e01b600052601260045260246000fd5b60008261234c5761234c612327565b500490565b60008261236057612360612327565b500690565b600080600080600080600080610100898b03121561238257600080fd5b88519750602089015161239481611f63565b60408a015160608b015191985096506123ac81611f63565b60808a015160a08b015191965094506123c481611f63565b60c08a015160e08b015191945092506123dc81611f63565b809150509295985092959890939650565b60008060008060008060c0878903121561240657600080fd5b86519550602087015161241881611f63565b60408801516060890151919650945061243081611f63565b608088015160a0890151919450925061244881611f63565b809150509295509295509295565b60006020828403121561246857600080fd5b61138a826121ab565b60006020828403121561248357600080fd5b815161208d81611f63565b60008161249d5761249d612119565b506000190190565b600082516124b7818460208701612094565b919091019291505056fe3a7a4c0f3d7e8a7a9e4c36b8dfc3e3b9b8c0aab0e9b7b6a5c4d3e2f1a0b9c8d79f9ca7f1d2c3b4a5968778695a4b3c2d1e0f0e1d2c3b4a5968778695a4b3c2d1a26469706673582212205fce1a2f67982966c60f9c1a66473002362461321f9bbf8990f05b1d529e869b64736f6c63430008160033",
500
+ "linkReferences": {},
501
+ "deployedLinkReferences": {}
502
+ }