@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,715 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterSetPriceTieredAllowV1",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "minterFilter",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "allowlistAddress_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "usdcAddress_",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "address",
33
+ "name": "allowlistAddress",
34
+ "type": "address"
35
+ }
36
+ ],
37
+ "name": "AllowlistAddressUpdated",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "inputs": [],
42
+ "name": "allowlistAddress",
43
+ "outputs": [
44
+ {
45
+ "internalType": "address",
46
+ "name": "",
47
+ "type": "address"
48
+ }
49
+ ],
50
+ "stateMutability": "view",
51
+ "type": "function"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "projectId",
58
+ "type": "uint256"
59
+ },
60
+ {
61
+ "internalType": "address",
62
+ "name": "coreContract",
63
+ "type": "address"
64
+ }
65
+ ],
66
+ "name": "checkYourAllowanceOfProjectERC20",
67
+ "outputs": [
68
+ {
69
+ "internalType": "uint256",
70
+ "name": "remaining",
71
+ "type": "uint256"
72
+ }
73
+ ],
74
+ "stateMutability": "view",
75
+ "type": "function"
76
+ },
77
+ {
78
+ "inputs": [
79
+ {
80
+ "internalType": "uint256",
81
+ "name": "projectId",
82
+ "type": "uint256"
83
+ },
84
+ {
85
+ "internalType": "address",
86
+ "name": "coreContract",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "getAllowlistPriceInfo",
91
+ "outputs": [
92
+ {
93
+ "internalType": "bool",
94
+ "name": "isConfigured",
95
+ "type": "bool"
96
+ },
97
+ {
98
+ "internalType": "uint256",
99
+ "name": "tokenPriceInWei",
100
+ "type": "uint256"
101
+ },
102
+ {
103
+ "internalType": "string",
104
+ "name": "currencySymbol",
105
+ "type": "string"
106
+ },
107
+ {
108
+ "internalType": "address",
109
+ "name": "currencyAddress",
110
+ "type": "address"
111
+ }
112
+ ],
113
+ "stateMutability": "view",
114
+ "type": "function"
115
+ },
116
+ {
117
+ "inputs": [
118
+ {
119
+ "internalType": "uint256",
120
+ "name": "projectId",
121
+ "type": "uint256"
122
+ },
123
+ {
124
+ "internalType": "address",
125
+ "name": "coreContract",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "name": "getPriceInfo",
130
+ "outputs": [
131
+ {
132
+ "internalType": "bool",
133
+ "name": "isConfigured",
134
+ "type": "bool"
135
+ },
136
+ {
137
+ "internalType": "uint256",
138
+ "name": "tokenPriceInWei",
139
+ "type": "uint256"
140
+ },
141
+ {
142
+ "internalType": "string",
143
+ "name": "currencySymbol",
144
+ "type": "string"
145
+ },
146
+ {
147
+ "internalType": "address",
148
+ "name": "currencyAddress",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "stateMutability": "view",
153
+ "type": "function"
154
+ },
155
+ {
156
+ "inputs": [
157
+ {
158
+ "internalType": "uint256",
159
+ "name": "projectId",
160
+ "type": "uint256"
161
+ },
162
+ {
163
+ "internalType": "address",
164
+ "name": "coreContract",
165
+ "type": "address"
166
+ },
167
+ {
168
+ "internalType": "address",
169
+ "name": "wallet",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "getPriceInfoForAddress",
174
+ "outputs": [
175
+ {
176
+ "internalType": "bool",
177
+ "name": "isConfigured",
178
+ "type": "bool"
179
+ },
180
+ {
181
+ "internalType": "uint256",
182
+ "name": "tokenPriceInWei",
183
+ "type": "uint256"
184
+ },
185
+ {
186
+ "internalType": "string",
187
+ "name": "currencySymbol",
188
+ "type": "string"
189
+ },
190
+ {
191
+ "internalType": "address",
192
+ "name": "currencyAddress",
193
+ "type": "address"
194
+ }
195
+ ],
196
+ "stateMutability": "view",
197
+ "type": "function"
198
+ },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "projectId",
204
+ "type": "uint256"
205
+ },
206
+ {
207
+ "internalType": "address",
208
+ "name": "coreContract",
209
+ "type": "address"
210
+ }
211
+ ],
212
+ "name": "getYourBalanceOfProjectERC20",
213
+ "outputs": [
214
+ {
215
+ "internalType": "uint256",
216
+ "name": "balance",
217
+ "type": "uint256"
218
+ }
219
+ ],
220
+ "stateMutability": "view",
221
+ "type": "function"
222
+ },
223
+ {
224
+ "inputs": [
225
+ {
226
+ "internalType": "uint256",
227
+ "name": "projectId",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "internalType": "address",
232
+ "name": "coreContract",
233
+ "type": "address"
234
+ },
235
+ {
236
+ "internalType": "address",
237
+ "name": "wallet",
238
+ "type": "address"
239
+ }
240
+ ],
241
+ "name": "isAllowlisted",
242
+ "outputs": [
243
+ {
244
+ "internalType": "bool",
245
+ "name": "",
246
+ "type": "bool"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [
254
+ {
255
+ "internalType": "address",
256
+ "name": "coreContract",
257
+ "type": "address"
258
+ }
259
+ ],
260
+ "name": "isEngineView",
261
+ "outputs": [
262
+ {
263
+ "internalType": "bool",
264
+ "name": "",
265
+ "type": "bool"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "uint256",
275
+ "name": "projectId",
276
+ "type": "uint256"
277
+ },
278
+ {
279
+ "internalType": "address",
280
+ "name": "coreContract",
281
+ "type": "address"
282
+ },
283
+ {
284
+ "internalType": "uint24",
285
+ "name": "maxInvocations",
286
+ "type": "uint24"
287
+ }
288
+ ],
289
+ "name": "manuallyLimitProjectMaxInvocations",
290
+ "outputs": [],
291
+ "stateMutability": "nonpayable",
292
+ "type": "function"
293
+ },
294
+ {
295
+ "inputs": [
296
+ {
297
+ "internalType": "uint256",
298
+ "name": "projectId",
299
+ "type": "uint256"
300
+ },
301
+ {
302
+ "internalType": "address",
303
+ "name": "coreContract",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "name": "maxInvocationsProjectConfig",
308
+ "outputs": [
309
+ {
310
+ "components": [
311
+ {
312
+ "internalType": "bool",
313
+ "name": "maxHasBeenInvoked",
314
+ "type": "bool"
315
+ },
316
+ {
317
+ "internalType": "uint24",
318
+ "name": "maxInvocations",
319
+ "type": "uint24"
320
+ }
321
+ ],
322
+ "internalType": "struct MaxInvocationsLib.MaxInvocationsProjectConfig",
323
+ "name": "",
324
+ "type": "tuple"
325
+ }
326
+ ],
327
+ "stateMutability": "view",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [],
332
+ "name": "minterFilterAddress",
333
+ "outputs": [
334
+ {
335
+ "internalType": "address",
336
+ "name": "",
337
+ "type": "address"
338
+ }
339
+ ],
340
+ "stateMutability": "view",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "minterType",
346
+ "outputs": [
347
+ {
348
+ "internalType": "string",
349
+ "name": "",
350
+ "type": "string"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [],
358
+ "name": "minterVersion",
359
+ "outputs": [
360
+ {
361
+ "internalType": "string",
362
+ "name": "",
363
+ "type": "string"
364
+ }
365
+ ],
366
+ "stateMutability": "view",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "projectId",
374
+ "type": "uint256"
375
+ },
376
+ {
377
+ "internalType": "address",
378
+ "name": "coreContract",
379
+ "type": "address"
380
+ },
381
+ {
382
+ "internalType": "bytes12",
383
+ "name": "hashSeed",
384
+ "type": "bytes12"
385
+ }
386
+ ],
387
+ "name": "projectHashSeedIsUsed",
388
+ "outputs": [
389
+ {
390
+ "internalType": "bool",
391
+ "name": "used",
392
+ "type": "bool"
393
+ }
394
+ ],
395
+ "stateMutability": "view",
396
+ "type": "function"
397
+ },
398
+ {
399
+ "inputs": [
400
+ {
401
+ "internalType": "uint256",
402
+ "name": "projectId",
403
+ "type": "uint256"
404
+ },
405
+ {
406
+ "internalType": "address",
407
+ "name": "coreContract",
408
+ "type": "address"
409
+ }
410
+ ],
411
+ "name": "projectMaxHasBeenInvoked",
412
+ "outputs": [
413
+ {
414
+ "internalType": "bool",
415
+ "name": "",
416
+ "type": "bool"
417
+ }
418
+ ],
419
+ "stateMutability": "view",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "uint256",
426
+ "name": "projectId",
427
+ "type": "uint256"
428
+ },
429
+ {
430
+ "internalType": "address",
431
+ "name": "coreContract",
432
+ "type": "address"
433
+ }
434
+ ],
435
+ "name": "projectMaxInvocations",
436
+ "outputs": [
437
+ {
438
+ "internalType": "uint256",
439
+ "name": "",
440
+ "type": "uint256"
441
+ }
442
+ ],
443
+ "stateMutability": "view",
444
+ "type": "function"
445
+ },
446
+ {
447
+ "inputs": [
448
+ {
449
+ "internalType": "uint256",
450
+ "name": "projectId",
451
+ "type": "uint256"
452
+ },
453
+ {
454
+ "internalType": "address",
455
+ "name": "coreContract",
456
+ "type": "address"
457
+ },
458
+ {
459
+ "internalType": "uint256",
460
+ "name": "maxPricePerToken",
461
+ "type": "uint256"
462
+ },
463
+ {
464
+ "internalType": "address",
465
+ "name": "currencyAddress",
466
+ "type": "address"
467
+ }
468
+ ],
469
+ "name": "purchase",
470
+ "outputs": [
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "tokenId",
474
+ "type": "uint256"
475
+ }
476
+ ],
477
+ "stateMutability": "nonpayable",
478
+ "type": "function"
479
+ },
480
+ {
481
+ "inputs": [
482
+ {
483
+ "internalType": "address",
484
+ "name": "to",
485
+ "type": "address"
486
+ },
487
+ {
488
+ "internalType": "uint256",
489
+ "name": "projectId",
490
+ "type": "uint256"
491
+ },
492
+ {
493
+ "internalType": "address",
494
+ "name": "coreContract",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "uint256",
499
+ "name": "maxPricePerToken",
500
+ "type": "uint256"
501
+ },
502
+ {
503
+ "internalType": "address",
504
+ "name": "currencyAddress",
505
+ "type": "address"
506
+ }
507
+ ],
508
+ "name": "purchaseTo",
509
+ "outputs": [
510
+ {
511
+ "internalType": "uint256",
512
+ "name": "tokenId",
513
+ "type": "uint256"
514
+ }
515
+ ],
516
+ "stateMutability": "nonpayable",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "address",
523
+ "name": "to",
524
+ "type": "address"
525
+ },
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "projectId",
529
+ "type": "uint256"
530
+ },
531
+ {
532
+ "internalType": "address",
533
+ "name": "coreContract",
534
+ "type": "address"
535
+ },
536
+ {
537
+ "internalType": "uint256",
538
+ "name": "maxPricePerToken",
539
+ "type": "uint256"
540
+ },
541
+ {
542
+ "internalType": "address",
543
+ "name": "currencyAddress",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "bytes12",
548
+ "name": "hashSeed",
549
+ "type": "bytes12"
550
+ }
551
+ ],
552
+ "name": "purchaseToWithHashSeed",
553
+ "outputs": [
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "tokenId",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "stateMutability": "nonpayable",
561
+ "type": "function"
562
+ },
563
+ {
564
+ "inputs": [
565
+ {
566
+ "internalType": "uint256",
567
+ "name": "projectId",
568
+ "type": "uint256"
569
+ },
570
+ {
571
+ "internalType": "address",
572
+ "name": "coreContract",
573
+ "type": "address"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "maxPricePerToken",
578
+ "type": "uint256"
579
+ },
580
+ {
581
+ "internalType": "address",
582
+ "name": "currencyAddress",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "internalType": "bytes12",
587
+ "name": "hashSeed",
588
+ "type": "bytes12"
589
+ }
590
+ ],
591
+ "name": "purchaseWithHashSeed",
592
+ "outputs": [
593
+ {
594
+ "internalType": "uint256",
595
+ "name": "tokenId",
596
+ "type": "uint256"
597
+ }
598
+ ],
599
+ "stateMutability": "nonpayable",
600
+ "type": "function"
601
+ },
602
+ {
603
+ "inputs": [
604
+ {
605
+ "internalType": "uint256",
606
+ "name": "projectId",
607
+ "type": "uint256"
608
+ },
609
+ {
610
+ "internalType": "address",
611
+ "name": "coreContract",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "name": "setPriceProjectConfig",
616
+ "outputs": [
617
+ {
618
+ "components": [
619
+ {
620
+ "internalType": "uint248",
621
+ "name": "pricePerToken",
622
+ "type": "uint248"
623
+ },
624
+ {
625
+ "internalType": "bool",
626
+ "name": "priceIsConfigured",
627
+ "type": "bool"
628
+ }
629
+ ],
630
+ "internalType": "struct SetPriceLib.SetPriceProjectConfig",
631
+ "name": "",
632
+ "type": "tuple"
633
+ }
634
+ ],
635
+ "stateMutability": "view",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [
640
+ {
641
+ "internalType": "uint256",
642
+ "name": "projectId",
643
+ "type": "uint256"
644
+ },
645
+ {
646
+ "internalType": "address",
647
+ "name": "coreContract",
648
+ "type": "address"
649
+ }
650
+ ],
651
+ "name": "syncProjectMaxInvocationsToCore",
652
+ "outputs": [],
653
+ "stateMutability": "nonpayable",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [
658
+ {
659
+ "internalType": "address",
660
+ "name": "allowlistAddress_",
661
+ "type": "address"
662
+ }
663
+ ],
664
+ "name": "updateAllowlistAddress",
665
+ "outputs": [],
666
+ "stateMutability": "nonpayable",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [
671
+ {
672
+ "internalType": "uint256",
673
+ "name": "projectId",
674
+ "type": "uint256"
675
+ },
676
+ {
677
+ "internalType": "address",
678
+ "name": "coreContract",
679
+ "type": "address"
680
+ },
681
+ {
682
+ "internalType": "uint248",
683
+ "name": "publicPricePerTokenInWei",
684
+ "type": "uint248"
685
+ },
686
+ {
687
+ "internalType": "uint248",
688
+ "name": "allowlistPricePerTokenInWei",
689
+ "type": "uint248"
690
+ }
691
+ ],
692
+ "name": "updatePricesPerTokenInWei",
693
+ "outputs": [],
694
+ "stateMutability": "nonpayable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [],
699
+ "name": "usdcAddress",
700
+ "outputs": [
701
+ {
702
+ "internalType": "address",
703
+ "name": "",
704
+ "type": "address"
705
+ }
706
+ ],
707
+ "stateMutability": "view",
708
+ "type": "function"
709
+ }
710
+ ],
711
+ "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002c4c38038062002c4c833981016040819052620000349162000180565b60016000556001600160a01b038116620000955760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206e6f6e2d7a65726f2061646472657373657300000000000000000060448201526064015b60405180910390fd5b6001600160a01b03808416608081905260a052811660c052620000b882620000c1565b505050620001ca565b6001600160a01b038116620001195760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206e6f6e2d7a65726f2061646472657373657300000000000000000060448201526064016200008c565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5657f72b4543ae649b012a59a09f2b0aa64140e5da343d35d54ae5e2faa76ad690600090a250565b80516001600160a01b03811681146200017b57600080fd5b919050565b6000806000606084860312156200019657600080fd5b620001a18462000163565b9250620001b16020850162000163565b9150620001c16040850162000163565b90509250925092565b60805160a05160c051612a136200023960003960008181610165015281816104b20152818161050d0152818161064f01528181610740015281816108920152818161097401528181610a240152610fd2015260006111e80152600081816103fc01526106ea0152612a136000f3fe608060405234801561001057600080fd5b50600436106101335760003560e01c806301000da71461013857806302d45457146101605780631be7ad3b14610194578063261b9fbc146101a957806328c5c4e5146101cc5780632f68ebad146101ed578063380feaab146102005780633cf16df6146102135780634869f3df1461026157806349da7eb8146102745780635e62aa78146102995780636504eff6146102ac5780636de56497146102bf57806379631a1a146102d25780639a94488a146102e55780639b24c3c01461031a5780639e49c90e14610353578063ae4bec8214610366578063b000e33414610379578063cce7c9091461038c578063d3ddabe61461039f578063d9bffbce146103d1578063d9eb16db146103e4578063dd85582f146103f7578063e9d1e8ac1461041e575b600080fd5b61014b6101463660046121d7565b610458565b60405190151581526020015b60405180910390f35b6101877f000000000000000000000000000000000000000000000000000000000000000081565b60405161015791906121f4565b6101a76101a2366004612224565b610496565b005b6101bc6101b7366004612273565b6105e8565b60405161015794939291906122f3565b6101df6101da36600461232d565b610677565b604051908152602001610157565b6101df6101fb36600461238c565b6106cd565b6101a761020e3660046121d7565b6106e5565b61014b6102213660046123ec565b6001600160a01b038216600090815260036020908152604080832086845282528083206001600160a01b03198516845290915290205460ff169392505050565b6101df61026f366004612273565b610724565b61014b61028236600461242e565b6001546001600160a01b0390811691161492915050565b6101df6102a7366004612273565b610739565b600154610187906001600160a01b031681565b6101df6102cd366004612465565b610765565b6101bc6102e036600461242e565b6107fe565b6102f86102f3366004612273565b6108bd565b6040805182511515815260209283015162ffffff169281019290925201610157565b61032d610328366004612273565b610905565b6040805182516001600160f81b0316815260209283015115159281019290925201610157565b6101df6103613660046124d5565b610953565b6101df610374366004612273565b61096d565b6101a7610387366004612526565b61099a565b61014b61039a366004612273565b6109b5565b6103c460405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612565565b6101a76103df366004612273565b6109c1565b6101bc6103f2366004612273565b6109da565b6101877f000000000000000000000000000000000000000000000000000000000000000081565b6103c46040518060400160405280601b81526020017a4d696e7465725365745072696365546965726564416c6c6f77563160281b81525081565b60008061046483610a4c565b8054909150610100900460ff1615610480575460ff1692915050565b61048983610a77565b9392505050565b50919050565b6104a1848433610bed565b60006104ad8585610c32565b5090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610533576105318585604051806040016040528060048152602001635553444360e01b8152507f0000000000000000000000000000000000000000000000000000000000000000610d15565b505b6105478585856001600160f81b0316610e3f565b6001600160a01b03841660008181526002602090815260408083208984528252918290206001600160f81b0386169081905582517530b63637bbb634b9ba283934b1b2a832b92a37b5b2b760511b81529182015287917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d6910160405180910390a36105d28585610e9e565b156105e1576105e18585610ed1565b5050505050565b60008060606000806105fa8787610f6c565b546001600160a01b0396909616600090815260026020908152604080832099835298815290889020548851808a0190995260048952635553444360e01b91890191909152600160f81b90960460ff16979596957f000000000000000000000000000000000000000000000000000000000000000095509350505050565b60006002600054036106a45760405162461bcd60e51b815260040161069b90612578565b60405180910390fd5b60026000819055506106be8686868686600060a01b610fb6565b60016000559695505050505050565b60006106dc3386868686610677565b95945050505050565b6107187f0000000000000000000000000000000000000000000000000000000000000000333063380feaab60e01b611291565b610721816112ec565b50565b60006107308383611386565b90505b92915050565b60006107307f0000000000000000000000000000000000000000000000000000000000000000336113a6565b60006002600054036107895760405162461bcd60e51b815260040161069b90612578565b60026000556001600160a01b031982166107e05760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b604482015260640161069b565b6107ee878787878787610fb6565b6001600055979650505050505050565b60008060606000806108108888610f6c565b8054600154600160f81b90910460ff1696509091506001600160a01b0390811690871603610863576001600160a01b03871660009081526002602090815260408083208b84529091529020549350610871565b80546001600160f81b031693505b604051806040016040528060048152602001635553444360e01b81525092507f000000000000000000000000000000000000000000000000000000000000000091505093509350935093565b60408051808201909152600080825260208201526108db8383611416565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526109238383610f6c565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610963338787878787610765565b9695505050505050565b60006107307f0000000000000000000000000000000000000000000000000000000000000000333061143e565b6109a5838333610bed565b6109b08383836114b0565b505050565b60006107308383611586565b6109cc828233610bed565b6109d68282610ed1565b5050565b60008060606000806109ec8787610f6c565b546040805180820190915260048152635553444360e01b602082015260ff600160f81b830416996001600160f81b03909216985096507f000000000000000000000000000000000000000000000000000000000000000095509350505050565b6000610a5661159f565b6001600160a01b039092166000908152600192909201602052506040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610ad99085906125af565b600060405180830381855afa9150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b509150915081610b795760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161069b565b805160c0819003610b905750600095945050505050565b8061010003610ba55750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161069b565b610bf88383836115c3565b6109b05760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161069b565b600060606000610c42858561164c565b80546001600160a01b0316935090508215610ce957806001018054610c66906125cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c92906125cb565b8015610cdf5780601f10610cb457610100808354040283529160200191610cdf565b820191906000526020600020905b815481529060010190602001808311610cc257829003601f168201915b5050505050610d0b565b60405180604001604052806008815260200167554e434f4e46494760c01b8152505b9150509250929050565b60006001600160a01b038216610d685760405162461bcd60e51b815260206004820152601860248201527706e756c6c20616464726573732c206f6e6c792045524332360441b604482015260640161069b565b6000835111610db05760405162461bcd60e51b81526020600482015260146024820152731bdb9b1e481b9bdb8b5b9d5b1b081cde5b589bdb60621b604482015260640161069b565b6000610dbc868661164c565b80546001600160a01b031615159250905060018101610ddb858261265b565b5080546001600160a01b0319166001600160a01b0384811691821783556040519087169088907f9009be442961d697adbe398af85c4743d0539b16e89324b6448ebac47eced55e90610e2e908990612565565b60405180910390a450949350505050565b6000610e4b8484610f6c565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610eab8484611416565b8054909150610100900462ffffff16158015610ec95750805460ff16155b949350505050565b600080610ede8484611656565b915091506000610eee8585611416565b9050610ef9826116d4565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610f5d9086815260200190565b60405180910390a35050505050565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d75b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b6000610fc2868661173c565b6000610fce878761176d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146110515760405162461bcd60e51b815260206004820152601d60248201527f43757272656e637920616464726573736573206d757374206d61746368000000604482015260640161069b565b6001546000906001600160a01b0316330361109057506001600160a01b03861660009081526002602090815260408083208a8452909152902054611093565b50805b808610156110e35760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206d61782070726963652067746520746f6b656e2070726963650000604482015260640161069b565b6001600160a01b03198416156111b6576001600160a01b03871660008181526003602090815260408083208c845282528083206001600160a01b031989168452909152808220805460ff1916600117905551630ea5613f60e01b8152600481018b9052909190630ea5613f9060240160c060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611193919061272b565b5050505050905060006111a68a836117dd565b90506111b38982886117f7565b50505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a905288811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af115801561122f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611253919061278a565b92506001600160a01b0319841615611270576112708784866118d4565b61127a838861193b565b6112858882896119a8565b50509695505050505050565b61129d84848484611be2565b6112e65760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161069b565b50505050565b6001600160a01b03811661133c5760405162461bcd60e51b81526020600482015260176024820152764f6e6c79206e6f6e2d7a65726f2061646472657373657360481b604482015260640161069b565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5657f72b4543ae649b012a59a09f2b0aa64140e5da343d35d54ae5e2faa76ad690600090a250565b6000806113938484611416565b54610100900462ffffff16949350505050565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906113d59085906004016121f4565b602060405180830381865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610730919061278a565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee610f8f565b604051636eb1769f60e11b81526000906001600160a01b0385169063dd62ed3e9061146f90869086906004016127a3565b602060405180830381865afa15801561148c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec9919061278a565b6000806114bd8585611656565b91509150808362ffffff1611156114e65760405162461bcd60e51b815260040161069b906127bd565b818362ffffff16101561150b5760405162461bcd60e51b815260040161069b906127bd565b60006115178686611416565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806115938484611416565b5460ff16949350505050565b7f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b3890565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561160b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162f91906127ee565b6001600160a01b0316826001600160a01b03161490509392505050565b6000610f8f61159f565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156116a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c4919061272b565b5093989297509195505050505050565b600062ffffff8211156117385760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161069b565b5090565b60006117488383611416565b805490915060ff16156109b05760405162461bcd60e51b815260040161069b9061280b565b60008061177a8484610f6c565b8054909150600160f81b900460ff166117cc5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161069b565b546001600160f81b03169392505050565b6000816117ed620f424085612852565b6107309190612869565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b91906127ee565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b1580156118b757600080fd5b505af11580156118cb573d6000803e3d6000fd5b50505050505050565b60006118e08484611c6a565b90506001600160a01b0319808216908316146112e65760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b604482015260640161069b565b600061194683611cd6565b905060006119548284611416565b8054909150620f4240850660010190610100900462ffffff168082111561198d5760405162461bcd60e51b815260040161069b9061280b565b8082036119a057825460ff191660011783555b505050505050565b816000036119b557505050565b6000806119c2858461164c565b80549091506001600160a01b031680611a1d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a207061796d656e74206e6f7420636f6e66696775726564000000604482015260640161069b565b611a28338287611ce5565b915060009050611a3783611e5d565b90506000806000806000806000808815611ad557604051638639415b60e01b8152600481018e9052602481018d90526001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc919061287c565b969e50949c50929a509098509650945092509050611b55565b604051638639415b60e01b8152600481018e9052602481018d90526001600160a01b038c1690638639415b9060440160c060405180830381865afa158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190612904565b949c50929a509096509450925090505b8b8285611b62898c612869565b611b6c9190612869565b611b769190612869565b14611bc25760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161069b565b611bd38a87878b8b89898989611eab565b50505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dc919061295f565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610730919061297a565b6000610733620f424083612997565b604051636eb1769f60e11b815281906001600160a01b0384169063dd62ed3e90611d1590879030906004016127a3565b602060405180830381865afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d56919061278a565b1015611da35760405162461bcd60e51b815260206004820152601c60248201527b496e73756666696369656e7420455243323020616c6c6f77616e636560201b604482015260640161069b565b6040516370a0823160e01b815281906001600160a01b038416906370a0823190611dd19087906004016121f4565b602060405180830381865afa158015611dee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e12919061278a565b10156109b05760405162461bcd60e51b815260206004820152601a602482015279496e73756666696369656e742045524332302062616c616e636560301b604482015260640161069b565b600080611e6983610a4c565b8054909150610100900460ff1615611e85575460ff1692915050565b6000611e9084610a77565b825481151561ffff1990911617610100179092555092915050565b8715611f70576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90611ee19033908b908d906004016129b9565b6020604051808303816000875af1158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f24919061295f565b611f705760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161069b565b8515612035576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90611fa690339089908b906004016129b9565b6020604051808303816000875af1158015611fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe9919061295f565b6120355760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161069b565b83156120f2576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061206b903390879089906004016129b9565b6020604051808303816000875af115801561208a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ae919061295f565b6120f25760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161069b565b81156121b7576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90612128903390859087906004016129b9565b6020604051808303816000875af1158015612147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216b919061295f565b6121b75760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161069b565b505050505050505050565b6001600160a01b038116811461072157600080fd5b6000602082840312156121e957600080fd5b8135610489816121c2565b6001600160a01b0391909116815260200190565b80356001600160f81b038116811461221f57600080fd5b919050565b6000806000806080858703121561223a57600080fd5b84359350602085013561224c816121c2565b925061225a60408601612208565b915061226860608601612208565b905092959194509250565b6000806040838503121561228657600080fd5b823591506020830135612298816121c2565b809150509250929050565b60005b838110156122be5781810151838201526020016122a6565b50506000910152565b600081518084526122df8160208601602086016122a3565b601f01601f19169290920160200192915050565b841515815283602082015260806040820152600061231460808301856122c7565b905060018060a01b038316606083015295945050505050565b600080600080600060a0868803121561234557600080fd5b8535612350816121c2565b9450602086013593506040860135612367816121c2565b925060608601359150608086013561237e816121c2565b809150509295509295909350565b600080600080608085870312156123a257600080fd5b8435935060208501356123b4816121c2565b92506040850135915060608501356123cb816121c2565b939692955090935050565b6001600160a01b03198116811461072157600080fd5b60008060006060848603121561240157600080fd5b833592506020840135612413816121c2565b91506040840135612423816123d6565b809150509250925092565b60008060006060848603121561244357600080fd5b833592506020840135612455816121c2565b91506040840135612423816121c2565b60008060008060008060c0878903121561247e57600080fd5b8635612489816121c2565b95506020870135945060408701356124a0816121c2565b93506060870135925060808701356124b7816121c2565b915060a08701356124c7816123d6565b809150509295509295509295565b600080600080600060a086880312156124ed57600080fd5b8535945060208601356124ff816121c2565b9350604086013592506060860135612516816121c2565b9150608086013561237e816123d6565b60008060006060848603121561253b57600080fd5b83359250602084013561254d816121c2565b9150604084013562ffffff8116811461242357600080fd5b60208152600061073060208301846122c7565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082516125c18184602087016122a3565b9190910192915050565b600181811c908216806125df57607f821691505b60208210810361049057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156109b057600081815260208120601f850160051c8101602086101561263c5750805b601f850160051c820191505b818110156119a057828155600101612648565b815167ffffffffffffffff811115612675576126756125ff565b6126898161268384546125cb565b84612615565b602080601f8311600181146126be57600084156126a65750858301515b600019600386901b1c1916600185901b1785556119a0565b600085815260208120601f198616915b828110156126ed578886015182559484019460019091019084016126ce565b508582101561270b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051801515811461221f57600080fd5b60008060008060008060c0878903121561274457600080fd5b865195506020870151945061275b6040880161271b565b93506127696060880161271b565b92506080870151915061277e60a0880161271b565b90509295509295509295565b60006020828403121561279c57600080fd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60006020828403121561280057600080fd5b8151610489816121c2565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107335761073361283c565b808201808211156107335761073361283c565b600080600080600080600080610100898b03121561289957600080fd5b8851975060208901516128ab816121c2565b60408a015160608b015191985096506128c3816121c2565b60808a015160a08b015191965094506128db816121c2565b60c08a015160e08b015191945092506128f3816121c2565b809150509295985092959890939650565b60008060008060008060c0878903121561291d57600080fd5b86519550602087015161292f816121c2565b604088015160608901519196509450612947816121c2565b608088015160a089015191945092506124c7816121c2565b60006020828403121561297157600080fd5b6107308261271b565b60006020828403121561298c57600080fd5b8151610489816123d6565b6000826129b457634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03938416815291909216602082015260408101919091526060019056fea2646970667358221220d17543c74165d0a7e4c5d84c940b22464a73e263231cca78c9ae312319d3a3c064736f6c63430008130033",
712
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101335760003560e01c806301000da71461013857806302d45457146101605780631be7ad3b14610194578063261b9fbc146101a957806328c5c4e5146101cc5780632f68ebad146101ed578063380feaab146102005780633cf16df6146102135780634869f3df1461026157806349da7eb8146102745780635e62aa78146102995780636504eff6146102ac5780636de56497146102bf57806379631a1a146102d25780639a94488a146102e55780639b24c3c01461031a5780639e49c90e14610353578063ae4bec8214610366578063b000e33414610379578063cce7c9091461038c578063d3ddabe61461039f578063d9bffbce146103d1578063d9eb16db146103e4578063dd85582f146103f7578063e9d1e8ac1461041e575b600080fd5b61014b6101463660046121d7565b610458565b60405190151581526020015b60405180910390f35b6101877f000000000000000000000000000000000000000000000000000000000000000081565b60405161015791906121f4565b6101a76101a2366004612224565b610496565b005b6101bc6101b7366004612273565b6105e8565b60405161015794939291906122f3565b6101df6101da36600461232d565b610677565b604051908152602001610157565b6101df6101fb36600461238c565b6106cd565b6101a761020e3660046121d7565b6106e5565b61014b6102213660046123ec565b6001600160a01b038216600090815260036020908152604080832086845282528083206001600160a01b03198516845290915290205460ff169392505050565b6101df61026f366004612273565b610724565b61014b61028236600461242e565b6001546001600160a01b0390811691161492915050565b6101df6102a7366004612273565b610739565b600154610187906001600160a01b031681565b6101df6102cd366004612465565b610765565b6101bc6102e036600461242e565b6107fe565b6102f86102f3366004612273565b6108bd565b6040805182511515815260209283015162ffffff169281019290925201610157565b61032d610328366004612273565b610905565b6040805182516001600160f81b0316815260209283015115159281019290925201610157565b6101df6103613660046124d5565b610953565b6101df610374366004612273565b61096d565b6101a7610387366004612526565b61099a565b61014b61039a366004612273565b6109b5565b6103c460405180604001604052806006815260200165076312e302e360d41b81525081565b6040516101579190612565565b6101a76103df366004612273565b6109c1565b6101bc6103f2366004612273565b6109da565b6101877f000000000000000000000000000000000000000000000000000000000000000081565b6103c46040518060400160405280601b81526020017a4d696e7465725365745072696365546965726564416c6c6f77563160281b81525081565b60008061046483610a4c565b8054909150610100900460ff1615610480575460ff1692915050565b61048983610a77565b9392505050565b50919050565b6104a1848433610bed565b60006104ad8585610c32565b5090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614610533576105318585604051806040016040528060048152602001635553444360e01b8152507f0000000000000000000000000000000000000000000000000000000000000000610d15565b505b6105478585856001600160f81b0316610e3f565b6001600160a01b03841660008181526002602090815260408083208984528252918290206001600160f81b0386169081905582517530b63637bbb634b9ba283934b1b2a832b92a37b5b2b760511b81529182015287917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d6910160405180910390a36105d28585610e9e565b156105e1576105e18585610ed1565b5050505050565b60008060606000806105fa8787610f6c565b546001600160a01b0396909616600090815260026020908152604080832099835298815290889020548851808a0190995260048952635553444360e01b91890191909152600160f81b90960460ff16979596957f000000000000000000000000000000000000000000000000000000000000000095509350505050565b60006002600054036106a45760405162461bcd60e51b815260040161069b90612578565b60405180910390fd5b60026000819055506106be8686868686600060a01b610fb6565b60016000559695505050505050565b60006106dc3386868686610677565b95945050505050565b6107187f0000000000000000000000000000000000000000000000000000000000000000333063380feaab60e01b611291565b610721816112ec565b50565b60006107308383611386565b90505b92915050565b60006107307f0000000000000000000000000000000000000000000000000000000000000000336113a6565b60006002600054036107895760405162461bcd60e51b815260040161069b90612578565b60026000556001600160a01b031982166107e05760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b604482015260640161069b565b6107ee878787878787610fb6565b6001600055979650505050505050565b60008060606000806108108888610f6c565b8054600154600160f81b90910460ff1696509091506001600160a01b0390811690871603610863576001600160a01b03871660009081526002602090815260408083208b84529091529020549350610871565b80546001600160f81b031693505b604051806040016040528060048152602001635553444360e01b81525092507f000000000000000000000000000000000000000000000000000000000000000091505093509350935093565b60408051808201909152600080825260208201526108db8383611416565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526109238383610f6c565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610963338787878787610765565b9695505050505050565b60006107307f0000000000000000000000000000000000000000000000000000000000000000333061143e565b6109a5838333610bed565b6109b08383836114b0565b505050565b60006107308383611586565b6109cc828233610bed565b6109d68282610ed1565b5050565b60008060606000806109ec8787610f6c565b546040805180820190915260048152635553444360e01b602082015260ff600160f81b830416996001600160f81b03909216985096507f000000000000000000000000000000000000000000000000000000000000000095509350505050565b6000610a5661159f565b6001600160a01b039092166000908152600192909201602052506040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610ad99085906125af565b600060405180830381855afa9150503d8060008114610b14576040519150601f19603f3d011682016040523d82523d6000602084013e610b19565b606091505b509150915081610b795760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161069b565b805160c0819003610b905750600095945050505050565b8061010003610ba55750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161069b565b610bf88383836115c3565b6109b05760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161069b565b600060606000610c42858561164c565b80546001600160a01b0316935090508215610ce957806001018054610c66906125cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c92906125cb565b8015610cdf5780601f10610cb457610100808354040283529160200191610cdf565b820191906000526020600020905b815481529060010190602001808311610cc257829003601f168201915b5050505050610d0b565b60405180604001604052806008815260200167554e434f4e46494760c01b8152505b9150509250929050565b60006001600160a01b038216610d685760405162461bcd60e51b815260206004820152601860248201527706e756c6c20616464726573732c206f6e6c792045524332360441b604482015260640161069b565b6000835111610db05760405162461bcd60e51b81526020600482015260146024820152731bdb9b1e481b9bdb8b5b9d5b1b081cde5b589bdb60621b604482015260640161069b565b6000610dbc868661164c565b80546001600160a01b031615159250905060018101610ddb858261265b565b5080546001600160a01b0319166001600160a01b0384811691821783556040519087169088907f9009be442961d697adbe398af85c4743d0539b16e89324b6448ebac47eced55e90610e2e908990612565565b60405180910390a450949350505050565b6000610e4b8484610f6c565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610eab8484611416565b8054909150610100900462ffffff16158015610ec95750805460ff16155b949350505050565b600080610ede8484611656565b915091506000610eee8585611416565b9050610ef9826116d4565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610f5d9086815260200190565b60405180910390a35050505050565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d75b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b6000610fc2868661173c565b6000610fce878761176d565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146110515760405162461bcd60e51b815260206004820152601d60248201527f43757272656e637920616464726573736573206d757374206d61746368000000604482015260640161069b565b6001546000906001600160a01b0316330361109057506001600160a01b03861660009081526002602090815260408083208a8452909152902054611093565b50805b808610156110e35760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206d61782070726963652067746520746f6b656e2070726963650000604482015260640161069b565b6001600160a01b03198416156111b6576001600160a01b03871660008181526003602090815260408083208c845282528083206001600160a01b031989168452909152808220805460ff1916600117905551630ea5613f60e01b8152600481018b9052909190630ea5613f9060240160c060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611193919061272b565b5050505050905060006111a68a836117dd565b90506111b38982886117f7565b50505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a905288811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af115801561122f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611253919061278a565b92506001600160a01b0319841615611270576112708784866118d4565b61127a838861193b565b6112858882896119a8565b50509695505050505050565b61129d84848484611be2565b6112e65760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161069b565b50505050565b6001600160a01b03811661133c5760405162461bcd60e51b81526020600482015260176024820152764f6e6c79206e6f6e2d7a65726f2061646472657373657360481b604482015260640161069b565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5657f72b4543ae649b012a59a09f2b0aa64140e5da343d35d54ae5e2faa76ad690600090a250565b6000806113938484611416565b54610100900462ffffff16949350505050565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906113d59085906004016121f4565b602060405180830381865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610730919061278a565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee610f8f565b604051636eb1769f60e11b81526000906001600160a01b0385169063dd62ed3e9061146f90869086906004016127a3565b602060405180830381865afa15801561148c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec9919061278a565b6000806114bd8585611656565b91509150808362ffffff1611156114e65760405162461bcd60e51b815260040161069b906127bd565b818362ffffff16101561150b5760405162461bcd60e51b815260040161069b906127bd565b60006115178686611416565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806115938484611416565b5460ff16949350505050565b7f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b3890565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561160b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162f91906127ee565b6001600160a01b0316826001600160a01b03161490509392505050565b6000610f8f61159f565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156116a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c4919061272b565b5093989297509195505050505050565b600062ffffff8211156117385760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161069b565b5090565b60006117488383611416565b805490915060ff16156109b05760405162461bcd60e51b815260040161069b9061280b565b60008061177a8484610f6c565b8054909150600160f81b900460ff166117cc5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161069b565b546001600160f81b03169392505050565b6000816117ed620f424085612852565b6107309190612869565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b91906127ee565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b1580156118b757600080fd5b505af11580156118cb573d6000803e3d6000fd5b50505050505050565b60006118e08484611c6a565b90506001600160a01b0319808216908316146112e65760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b604482015260640161069b565b600061194683611cd6565b905060006119548284611416565b8054909150620f4240850660010190610100900462ffffff168082111561198d5760405162461bcd60e51b815260040161069b9061280b565b8082036119a057825460ff191660011783555b505050505050565b816000036119b557505050565b6000806119c2858461164c565b80549091506001600160a01b031680611a1d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a207061796d656e74206e6f7420636f6e66696775726564000000604482015260640161069b565b611a28338287611ce5565b915060009050611a3783611e5d565b90506000806000806000806000808815611ad557604051638639415b60e01b8152600481018e9052602481018d90526001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abc919061287c565b969e50949c50929a509098509650945092509050611b55565b604051638639415b60e01b8152600481018e9052602481018d90526001600160a01b038c1690638639415b9060440160c060405180830381865afa158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190612904565b949c50929a509096509450925090505b8b8285611b62898c612869565b611b6c9190612869565b611b769190612869565b14611bc25760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161069b565b611bd38a87878b8b89898989611eab565b50505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c46573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dc919061295f565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610730919061297a565b6000610733620f424083612997565b604051636eb1769f60e11b815281906001600160a01b0384169063dd62ed3e90611d1590879030906004016127a3565b602060405180830381865afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d56919061278a565b1015611da35760405162461bcd60e51b815260206004820152601c60248201527b496e73756666696369656e7420455243323020616c6c6f77616e636560201b604482015260640161069b565b6040516370a0823160e01b815281906001600160a01b038416906370a0823190611dd19087906004016121f4565b602060405180830381865afa158015611dee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e12919061278a565b10156109b05760405162461bcd60e51b815260206004820152601a602482015279496e73756666696369656e742045524332302062616c616e636560301b604482015260640161069b565b600080611e6983610a4c565b8054909150610100900460ff1615611e85575460ff1692915050565b6000611e9084610a77565b825481151561ffff1990911617610100179092555092915050565b8715611f70576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90611ee19033908b908d906004016129b9565b6020604051808303816000875af1158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f24919061295f565b611f705760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161069b565b8515612035576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90611fa690339089908b906004016129b9565b6020604051808303816000875af1158015611fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe9919061295f565b6120355760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161069b565b83156120f2576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061206b903390879089906004016129b9565b6020604051808303816000875af115801561208a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ae919061295f565b6120f25760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161069b565b81156121b7576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90612128903390859087906004016129b9565b6020604051808303816000875af1158015612147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216b919061295f565b6121b75760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161069b565b505050505050505050565b6001600160a01b038116811461072157600080fd5b6000602082840312156121e957600080fd5b8135610489816121c2565b6001600160a01b0391909116815260200190565b80356001600160f81b038116811461221f57600080fd5b919050565b6000806000806080858703121561223a57600080fd5b84359350602085013561224c816121c2565b925061225a60408601612208565b915061226860608601612208565b905092959194509250565b6000806040838503121561228657600080fd5b823591506020830135612298816121c2565b809150509250929050565b60005b838110156122be5781810151838201526020016122a6565b50506000910152565b600081518084526122df8160208601602086016122a3565b601f01601f19169290920160200192915050565b841515815283602082015260806040820152600061231460808301856122c7565b905060018060a01b038316606083015295945050505050565b600080600080600060a0868803121561234557600080fd5b8535612350816121c2565b9450602086013593506040860135612367816121c2565b925060608601359150608086013561237e816121c2565b809150509295509295909350565b600080600080608085870312156123a257600080fd5b8435935060208501356123b4816121c2565b92506040850135915060608501356123cb816121c2565b939692955090935050565b6001600160a01b03198116811461072157600080fd5b60008060006060848603121561240157600080fd5b833592506020840135612413816121c2565b91506040840135612423816123d6565b809150509250925092565b60008060006060848603121561244357600080fd5b833592506020840135612455816121c2565b91506040840135612423816121c2565b60008060008060008060c0878903121561247e57600080fd5b8635612489816121c2565b95506020870135945060408701356124a0816121c2565b93506060870135925060808701356124b7816121c2565b915060a08701356124c7816123d6565b809150509295509295509295565b600080600080600060a086880312156124ed57600080fd5b8535945060208601356124ff816121c2565b9350604086013592506060860135612516816121c2565b9150608086013561237e816123d6565b60008060006060848603121561253b57600080fd5b83359250602084013561254d816121c2565b9150604084013562ffffff8116811461242357600080fd5b60208152600061073060208301846122c7565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082516125c18184602087016122a3565b9190910192915050565b600181811c908216806125df57607f821691505b60208210810361049057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156109b057600081815260208120601f850160051c8101602086101561263c5750805b601f850160051c820191505b818110156119a057828155600101612648565b815167ffffffffffffffff811115612675576126756125ff565b6126898161268384546125cb565b84612615565b602080601f8311600181146126be57600084156126a65750858301515b600019600386901b1c1916600185901b1785556119a0565b600085815260208120601f198616915b828110156126ed578886015182559484019460019091019084016126ce565b508582101561270b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051801515811461221f57600080fd5b60008060008060008060c0878903121561274457600080fd5b865195506020870151945061275b6040880161271b565b93506127696060880161271b565b92506080870151915061277e60a0880161271b565b90509295509295509295565b60006020828403121561279c57600080fd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60006020828403121561280057600080fd5b8151610489816121c2565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107335761073361283c565b808201808211156107335761073361283c565b600080600080600080600080610100898b03121561289957600080fd5b8851975060208901516128ab816121c2565b60408a015160608b015191985096506128c3816121c2565b60808a015160a08b015191965094506128db816121c2565b60c08a015160e08b015191945092506128f3816121c2565b809150509295985092959890939650565b60008060008060008060c0878903121561291d57600080fd5b86519550602087015161292f816121c2565b604088015160608901519196509450612947816121c2565b608088015160a089015191945092506124c7816121c2565b60006020828403121561297157600080fd5b6107308261271b565b60006020828403121561298c57600080fd5b8151610489816123d6565b6000826129b457634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03938416815291909216602082015260408101919091526060019056fea2646970667358221220d17543c74165d0a7e4c5d84c940b22464a73e263231cca78c9ae312319d3a3c064736f6c63430008130033",
713
+ "linkReferences": {},
714
+ "deployedLinkReferences": {}
715
+ }