@artblocks/contracts 1.3.2 → 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 (229) 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/ISRHooks.sol/ISRHooks.json +432 -0
  63. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
  65. package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
  66. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  67. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
  68. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
  69. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
  70. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
  71. package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
  72. package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
  73. package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
  74. package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
  75. package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
  76. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
  77. package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
  78. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  79. package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
  80. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  81. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
  82. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  84. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  85. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  86. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  87. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  88. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  89. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  90. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  91. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  92. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
  93. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
  94. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
  95. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
  96. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  97. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  98. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  99. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
  100. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  101. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  102. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
  103. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  104. package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
  105. package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
  106. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
  107. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
  108. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
  109. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
  110. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  111. package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
  112. package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
  113. package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
  114. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
  115. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  116. package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
  117. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  118. package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
  119. package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
  120. package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
  121. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
  122. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
  123. package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
  124. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  125. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
  126. package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
  127. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
  128. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
  129. package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
  130. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  131. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  132. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  133. package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
  134. package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
  135. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
  136. package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
  137. package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
  138. package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +2 -2
  139. package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
  140. package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
  141. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
  142. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
  143. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
  144. package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
  145. package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
  146. package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
  147. package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
  148. package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
  149. package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
  150. package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
  151. package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
  152. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
  153. package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
  154. package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
  155. package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
  156. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
  157. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
  158. package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
  159. package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
  160. package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
  161. package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
  162. package/contracts/DependencyRegistryV0.sol +143 -13
  163. package/contracts/GenArt721CoreV3_Curated.sol +1 -1
  164. package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
  165. package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
  166. package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
  167. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
  168. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
  169. package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
  170. package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
  171. package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
  172. package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
  173. package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
  174. package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
  175. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
  176. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
  177. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
  178. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
  179. package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
  180. package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
  181. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
  182. package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
  183. package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
  184. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
  185. package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
  186. package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
  187. package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
  188. package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
  189. package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
  190. package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
  191. package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
  192. package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
  193. package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
  194. package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
  195. package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
  196. package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
  197. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
  198. package/contracts/mock/ENSLibMock.sol +25 -0
  199. package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
  200. package/contracts/mock/FeistelWalkLibMock.sol +81 -0
  201. package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
  202. package/contracts/mock/MockGenArt721V3Core.sol +416 -0
  203. package/contracts/mock/MockPMP.sol +287 -0
  204. package/contracts/mock/MockTransferHook.sol +160 -0
  205. package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
  206. package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
  207. package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
  208. package/contracts/relay/RelayExecutor.sol +61 -0
  209. package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
  210. package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
  211. package/contracts/utils/MintMulticallUtil.sol +103 -0
  212. package/contracts/web3call/PMPV1.sol +1204 -0
  213. package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
  214. package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
  215. package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
  216. package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
  217. package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
  218. package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
  219. package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
  220. package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
  221. package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
  222. package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
  223. package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
  224. package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
  225. package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
  226. package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
  227. package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
  228. package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
  229. package/package.json +39 -24
@@ -0,0 +1,673 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterSetPriceTieredOnChainAllowV0",
4
+ "sourceName": "contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "minterFilter",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": true,
22
+ "internalType": "uint256",
23
+ "name": "projectId",
24
+ "type": "uint256"
25
+ },
26
+ {
27
+ "indexed": true,
28
+ "internalType": "address",
29
+ "name": "coreContract",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "indexed": true,
34
+ "internalType": "uint256",
35
+ "name": "allowlistPricePerToken",
36
+ "type": "uint256"
37
+ }
38
+ ],
39
+ "name": "AllowlistPricePerTokenUpdated",
40
+ "type": "event"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "projectId",
47
+ "type": "uint256"
48
+ },
49
+ {
50
+ "internalType": "address",
51
+ "name": "coreContract",
52
+ "type": "address"
53
+ },
54
+ {
55
+ "internalType": "address[]",
56
+ "name": "addresses",
57
+ "type": "address[]"
58
+ }
59
+ ],
60
+ "name": "addAddressesToAllowlist",
61
+ "outputs": [],
62
+ "stateMutability": "nonpayable",
63
+ "type": "function"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "projectId",
70
+ "type": "uint256"
71
+ },
72
+ {
73
+ "internalType": "address",
74
+ "name": "coreContract",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "internalType": "address[]",
79
+ "name": "addressesToAdd",
80
+ "type": "address[]"
81
+ },
82
+ {
83
+ "internalType": "address[]",
84
+ "name": "addressesToRemove",
85
+ "type": "address[]"
86
+ }
87
+ ],
88
+ "name": "addAndRemoveAddressesFromAllowlist",
89
+ "outputs": [],
90
+ "stateMutability": "nonpayable",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "uint256",
97
+ "name": "projectId",
98
+ "type": "uint256"
99
+ },
100
+ {
101
+ "internalType": "address",
102
+ "name": "coreContract",
103
+ "type": "address"
104
+ }
105
+ ],
106
+ "name": "getAllowlistPriceInfo",
107
+ "outputs": [
108
+ {
109
+ "internalType": "uint256",
110
+ "name": "allowlistPricePerTokenInWei",
111
+ "type": "uint256"
112
+ }
113
+ ],
114
+ "stateMutability": "view",
115
+ "type": "function"
116
+ },
117
+ {
118
+ "inputs": [
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "projectId",
122
+ "type": "uint256"
123
+ },
124
+ {
125
+ "internalType": "address",
126
+ "name": "coreContract",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "name": "getPriceInfo",
131
+ "outputs": [
132
+ {
133
+ "internalType": "bool",
134
+ "name": "isConfigured",
135
+ "type": "bool"
136
+ },
137
+ {
138
+ "internalType": "uint256",
139
+ "name": "tokenPriceInWei",
140
+ "type": "uint256"
141
+ },
142
+ {
143
+ "internalType": "string",
144
+ "name": "currencySymbol",
145
+ "type": "string"
146
+ },
147
+ {
148
+ "internalType": "address",
149
+ "name": "currencyAddress",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "stateMutability": "view",
154
+ "type": "function"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "projectId",
161
+ "type": "uint256"
162
+ },
163
+ {
164
+ "internalType": "address",
165
+ "name": "coreContract",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "internalType": "address",
170
+ "name": "wallet",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "getPriceInfoForAddress",
175
+ "outputs": [
176
+ {
177
+ "internalType": "bool",
178
+ "name": "isConfigured",
179
+ "type": "bool"
180
+ },
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "tokenPriceInWei",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "stateMutability": "view",
188
+ "type": "function"
189
+ },
190
+ {
191
+ "inputs": [
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "projectId",
195
+ "type": "uint256"
196
+ },
197
+ {
198
+ "internalType": "address",
199
+ "name": "coreContract",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "internalType": "address",
204
+ "name": "wallet",
205
+ "type": "address"
206
+ }
207
+ ],
208
+ "name": "isAllowlisted",
209
+ "outputs": [
210
+ {
211
+ "internalType": "bool",
212
+ "name": "",
213
+ "type": "bool"
214
+ }
215
+ ],
216
+ "stateMutability": "view",
217
+ "type": "function"
218
+ },
219
+ {
220
+ "inputs": [
221
+ {
222
+ "internalType": "address",
223
+ "name": "coreContract",
224
+ "type": "address"
225
+ }
226
+ ],
227
+ "name": "isEngineView",
228
+ "outputs": [
229
+ {
230
+ "internalType": "bool",
231
+ "name": "",
232
+ "type": "bool"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
238
+ {
239
+ "inputs": [
240
+ {
241
+ "internalType": "uint256",
242
+ "name": "projectId",
243
+ "type": "uint256"
244
+ },
245
+ {
246
+ "internalType": "address",
247
+ "name": "coreContract",
248
+ "type": "address"
249
+ },
250
+ {
251
+ "internalType": "uint24",
252
+ "name": "maxInvocations",
253
+ "type": "uint24"
254
+ }
255
+ ],
256
+ "name": "manuallyLimitProjectMaxInvocations",
257
+ "outputs": [],
258
+ "stateMutability": "nonpayable",
259
+ "type": "function"
260
+ },
261
+ {
262
+ "inputs": [
263
+ {
264
+ "internalType": "uint256",
265
+ "name": "projectId",
266
+ "type": "uint256"
267
+ },
268
+ {
269
+ "internalType": "address",
270
+ "name": "coreContract",
271
+ "type": "address"
272
+ }
273
+ ],
274
+ "name": "maxInvocationsProjectConfig",
275
+ "outputs": [
276
+ {
277
+ "components": [
278
+ {
279
+ "internalType": "bool",
280
+ "name": "maxHasBeenInvoked",
281
+ "type": "bool"
282
+ },
283
+ {
284
+ "internalType": "uint24",
285
+ "name": "maxInvocations",
286
+ "type": "uint24"
287
+ }
288
+ ],
289
+ "internalType": "struct MaxInvocationsLib.MaxInvocationsProjectConfig",
290
+ "name": "",
291
+ "type": "tuple"
292
+ }
293
+ ],
294
+ "stateMutability": "view",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [],
299
+ "name": "minterFilterAddress",
300
+ "outputs": [
301
+ {
302
+ "internalType": "address",
303
+ "name": "",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "stateMutability": "view",
308
+ "type": "function"
309
+ },
310
+ {
311
+ "inputs": [],
312
+ "name": "minterType",
313
+ "outputs": [
314
+ {
315
+ "internalType": "string",
316
+ "name": "",
317
+ "type": "string"
318
+ }
319
+ ],
320
+ "stateMutability": "view",
321
+ "type": "function"
322
+ },
323
+ {
324
+ "inputs": [],
325
+ "name": "minterVersion",
326
+ "outputs": [
327
+ {
328
+ "internalType": "string",
329
+ "name": "",
330
+ "type": "string"
331
+ }
332
+ ],
333
+ "stateMutability": "view",
334
+ "type": "function"
335
+ },
336
+ {
337
+ "inputs": [
338
+ {
339
+ "internalType": "uint256",
340
+ "name": "projectId",
341
+ "type": "uint256"
342
+ },
343
+ {
344
+ "internalType": "address",
345
+ "name": "coreContract",
346
+ "type": "address"
347
+ }
348
+ ],
349
+ "name": "projectMaxHasBeenInvoked",
350
+ "outputs": [
351
+ {
352
+ "internalType": "bool",
353
+ "name": "",
354
+ "type": "bool"
355
+ }
356
+ ],
357
+ "stateMutability": "view",
358
+ "type": "function"
359
+ },
360
+ {
361
+ "inputs": [
362
+ {
363
+ "internalType": "uint256",
364
+ "name": "projectId",
365
+ "type": "uint256"
366
+ },
367
+ {
368
+ "internalType": "address",
369
+ "name": "coreContract",
370
+ "type": "address"
371
+ }
372
+ ],
373
+ "name": "projectMaxInvocations",
374
+ "outputs": [
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "",
378
+ "type": "uint256"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "uint256",
388
+ "name": "projectId",
389
+ "type": "uint256"
390
+ },
391
+ {
392
+ "internalType": "address",
393
+ "name": "coreContract",
394
+ "type": "address"
395
+ }
396
+ ],
397
+ "name": "purchase",
398
+ "outputs": [
399
+ {
400
+ "internalType": "uint256",
401
+ "name": "tokenId",
402
+ "type": "uint256"
403
+ }
404
+ ],
405
+ "stateMutability": "payable",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "projectId",
413
+ "type": "uint256"
414
+ },
415
+ {
416
+ "internalType": "address",
417
+ "name": "coreContract",
418
+ "type": "address"
419
+ },
420
+ {
421
+ "internalType": "uint24",
422
+ "name": "quantity",
423
+ "type": "uint24"
424
+ }
425
+ ],
426
+ "name": "purchaseMultiple",
427
+ "outputs": [
428
+ {
429
+ "internalType": "uint256[]",
430
+ "name": "tokenIds",
431
+ "type": "uint256[]"
432
+ }
433
+ ],
434
+ "stateMutability": "payable",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [
439
+ {
440
+ "internalType": "address",
441
+ "name": "to",
442
+ "type": "address"
443
+ },
444
+ {
445
+ "internalType": "uint256",
446
+ "name": "projectId",
447
+ "type": "uint256"
448
+ },
449
+ {
450
+ "internalType": "address",
451
+ "name": "coreContract",
452
+ "type": "address"
453
+ },
454
+ {
455
+ "internalType": "uint24",
456
+ "name": "quantity",
457
+ "type": "uint24"
458
+ }
459
+ ],
460
+ "name": "purchaseMultipleTo",
461
+ "outputs": [
462
+ {
463
+ "internalType": "uint256[]",
464
+ "name": "tokenIds",
465
+ "type": "uint256[]"
466
+ }
467
+ ],
468
+ "stateMutability": "payable",
469
+ "type": "function"
470
+ },
471
+ {
472
+ "inputs": [
473
+ {
474
+ "internalType": "address",
475
+ "name": "to",
476
+ "type": "address"
477
+ },
478
+ {
479
+ "internalType": "uint256",
480
+ "name": "projectId",
481
+ "type": "uint256"
482
+ },
483
+ {
484
+ "internalType": "address",
485
+ "name": "coreContract",
486
+ "type": "address"
487
+ }
488
+ ],
489
+ "name": "purchaseTo",
490
+ "outputs": [
491
+ {
492
+ "internalType": "uint256",
493
+ "name": "tokenId",
494
+ "type": "uint256"
495
+ }
496
+ ],
497
+ "stateMutability": "payable",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "address",
504
+ "name": "to",
505
+ "type": "address"
506
+ },
507
+ {
508
+ "internalType": "uint256",
509
+ "name": "projectId",
510
+ "type": "uint256"
511
+ },
512
+ {
513
+ "internalType": "address",
514
+ "name": "coreContract",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "internalType": "bytes12",
519
+ "name": "hashSeed",
520
+ "type": "bytes12"
521
+ }
522
+ ],
523
+ "name": "purchaseToWithHashSeed",
524
+ "outputs": [
525
+ {
526
+ "internalType": "uint256",
527
+ "name": "tokenId",
528
+ "type": "uint256"
529
+ }
530
+ ],
531
+ "stateMutability": "payable",
532
+ "type": "function"
533
+ },
534
+ {
535
+ "inputs": [
536
+ {
537
+ "internalType": "uint256",
538
+ "name": "projectId",
539
+ "type": "uint256"
540
+ },
541
+ {
542
+ "internalType": "address",
543
+ "name": "coreContract",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "bytes12",
548
+ "name": "hashSeed",
549
+ "type": "bytes12"
550
+ }
551
+ ],
552
+ "name": "purchaseWithHashSeed",
553
+ "outputs": [
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "tokenId",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "stateMutability": "payable",
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": "address[]",
577
+ "name": "addresses",
578
+ "type": "address[]"
579
+ }
580
+ ],
581
+ "name": "removeAddressesFromAllowlist",
582
+ "outputs": [],
583
+ "stateMutability": "nonpayable",
584
+ "type": "function"
585
+ },
586
+ {
587
+ "inputs": [
588
+ {
589
+ "internalType": "uint256",
590
+ "name": "projectId",
591
+ "type": "uint256"
592
+ },
593
+ {
594
+ "internalType": "address",
595
+ "name": "coreContract",
596
+ "type": "address"
597
+ }
598
+ ],
599
+ "name": "setPriceProjectConfig",
600
+ "outputs": [
601
+ {
602
+ "components": [
603
+ {
604
+ "internalType": "uint248",
605
+ "name": "pricePerToken",
606
+ "type": "uint248"
607
+ },
608
+ {
609
+ "internalType": "bool",
610
+ "name": "priceIsConfigured",
611
+ "type": "bool"
612
+ }
613
+ ],
614
+ "internalType": "struct SetPriceLib.SetPriceProjectConfig",
615
+ "name": "",
616
+ "type": "tuple"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [
624
+ {
625
+ "internalType": "uint256",
626
+ "name": "projectId",
627
+ "type": "uint256"
628
+ },
629
+ {
630
+ "internalType": "address",
631
+ "name": "coreContract",
632
+ "type": "address"
633
+ }
634
+ ],
635
+ "name": "syncProjectMaxInvocationsToCore",
636
+ "outputs": [],
637
+ "stateMutability": "nonpayable",
638
+ "type": "function"
639
+ },
640
+ {
641
+ "inputs": [
642
+ {
643
+ "internalType": "uint256",
644
+ "name": "projectId",
645
+ "type": "uint256"
646
+ },
647
+ {
648
+ "internalType": "address",
649
+ "name": "coreContract",
650
+ "type": "address"
651
+ },
652
+ {
653
+ "internalType": "uint248",
654
+ "name": "publicPricePerTokenInWei",
655
+ "type": "uint248"
656
+ },
657
+ {
658
+ "internalType": "uint248",
659
+ "name": "allowlistPricePerTokenInWei",
660
+ "type": "uint248"
661
+ }
662
+ ],
663
+ "name": "updatePricesPerTokenInWei",
664
+ "outputs": [],
665
+ "stateMutability": "nonpayable",
666
+ "type": "function"
667
+ }
668
+ ],
669
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051620027bc380380620027bc833981016040819052620000349162000050565b60016000556001600160a01b0316608081905260a05262000082565b6000602082840312156200006357600080fd5b81516001600160a01b03811681146200007b57600080fd5b9392505050565b60805160a05161270d620000af60003960008181610fe401526113380152600061043e015261270d6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780631be7ad3b14610155578063200732c814610177578063261b9fbc14610197578063319788f0146101c557806345e27499146101e55780634869f3df1461020557806349da7eb8146102255780634e8d87871461024557806379631a1a146102585780639a94488a1461028f5780639b24c3c0146102d15780639ef367ee14610317578063ae77c2371461032a578063b000e3341461033d578063c13dfee41461035d578063cce7c9091461037d578063d3ddabe61461039d578063d9bffbce146103dc578063d9eb16db146103fc578063dd85582f1461042c578063de7599ed14610478578063e9d1e8ac1461048b578063fa5d8bb8146104a0575b600080fd5b34801561012c57600080fd5b5061014061013b366004611e99565b6104b3565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004611ed2565b6104eb565b005b34801561018357600080fd5b50610175610192366004611f6c565b610594565b3480156101a357600080fd5b506101b76101b2366004611ff7565b6105bf565b60405190815260200161014c565b3480156101d157600080fd5b506101756101e0366004612027565b6105f0565b3480156101f157600080fd5b50610175610200366004612027565b610607565b34801561021157600080fd5b506101b7610220366004611ff7565b61061e565b34801561023157600080fd5b50610140610240366004612082565b610633565b6101b76102533660046120c4565b610648565b34801561026457600080fd5b50610278610273366004612082565b61069a565b60408051921515835260208301919091520161014c565b34801561029b57600080fd5b506102af6102aa366004611ff7565b610710565b6040805182511515815260209283015162ffffff16928101929092520161014c565b3480156102dd57600080fd5b506102f16102ec366004611ff7565b610758565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b6101b7610325366004612111565b6107a6565b6101b7610338366004611ff7565b6107b4565b34801561034957600080fd5b5061017561035836600461215b565b6107c1565b61037061036b366004612199565b6107dc565b60405161014c91906121df565b34801561038957600080fd5b50610140610398366004611ff7565b61081f565b3480156103a957600080fd5b506103cf60405180604001604052806006815260200165076302e312e360d41b81525081565b60405161014c9190612273565b3480156103e857600080fd5b506101756103f7366004611ff7565b61082b565b34801561040857600080fd5b5061041c610417366004611ff7565b610844565b60405161014c9493929190612286565b34801561043857600080fd5b506104607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b61037061048636600461215b565b610896565b34801561049757600080fd5b506103cf6108a4565b6101b76104ae3660046122c0565b6108c0565b6000806104bf83610947565b8054909150610100900460ff16156104db575460ff1692915050565b6104e483610980565b9392505050565b6104f6848433610af6565b61050a8484846001600160f81b0316610b3b565b806001600160f81b031661051c610b9a565b6001600160a01b0385166000818152602092835260408082208983529093528281209390935590516001600160f81b0384169287917f3b36159eb13262378a133b50763e8a75688d586b7e75d5cd7e886e37702cdf0c9190a461057f8484610bbe565b1561058e5761058e8484610bee565b50505050565b61059f868633610af6565b6105ab86868686610c89565b6105b786868484610d79565b505050505050565b60006105c9610b9a565b6001600160a01b039092166000908152602092835260408082209482529390925250205490565b6105fb848433610af6565b61058e84848484610d79565b610612848433610af6565b61058e84848484610c89565b600061062a8383610e5f565b90505b92915050565b6000610640848484610e7f565b949350505050565b60006002600054036106755760405162461bcd60e51b815260040161066c90612313565b60405180910390fd5b600260008190555061068d848484600060a01b610eb1565b6001600055949350505050565b60008060006106a9868661109c565b8054600160f81b900460ff16935090506106c4868686610e7f565b156106f9576106d1610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549150610707565b80546001600160f81b031691505b50935093915050565b604080518082019091526000808252602082015261072e83836110e6565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b6040805180820190915260008082526020820152610776838361109c565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610640338585856108c0565b600061062a338484610648565b6107cc838333610af6565b6107d783838361110e565b505050565b60606002600054036108005760405162461bcd60e51b815260040161066c90612313565b6002600055610811858585856111e4565b600160005595945050505050565b600061062a83836114ac565b610836828233610af6565b6108408282610bee565b5050565b6000806060600080610856878761109c565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b6060610640338585856107dc565b6040518060600160405280602281526020016126b66022913981565b60006002600054036108e45760405162461bcd60e51b815260040161066c90612313565b60026000556001600160a01b0319821661093b5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b604482015260640161066c565b61081185858585610eb1565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906109e290859061234a565b600060405180830381855afa9150503d8060008114610a1d576040519150601f19603f3d011682016040523d82523d6000602084013e610a22565b606091505b509150915081610a825760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161066c565b805160c0819003610a995750600095945050505050565b8061010003610aae5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161066c565b610b018383836114c5565b6107d75760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161066c565b6000610b47848461109c565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b7f034e84a338d493678543d80a16a3cd804f6b6ec7d5a72ecf5c579fdd9655ef3690565b600080610bcb84846110e6565b8054909150610100900462ffffff1615801561064057505460ff16159392505050565b600080610bfb848461154e565b915091506000610c0b85856110e6565b9050610c16826115cc565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610c7a9086815260200190565b60405180910390a35050505050565b6000610c958585611634565b90508160005b81811015610d70576001836000878785818110610cba57610cba612366565b9050602002016020810190610ccf9190611e99565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877fe8c6a480cf8078bbde7a2a170b9529befe114a8195321d6bf92f6b68fb89a7c968185b1b1bdddb1a5cdd60ba1b888886818110610d3d57610d3d612366565b9050602002016020810190610d529190611e99565b604051610d6092919061237c565b60405180910390a3600101610c9b565b50505050505050565b6000610d858585611634565b90508160005b81811015610d705760008381878785818110610da957610da9612366565b9050602002016020810190610dbe9190611e99565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877f4ed5eb89eec6de84efff2cf9c8e6cbe647fd33c5a50a11b5adfce0416660e74368185b1b1bdddb1a5cdd60ba1b888886818110610e2c57610e2c612366565b9050602002016020810190610e419190611e99565b604051610e4f92919061237c565b60405180910390a3600101610d8b565b600080610e6c84846110e6565b54610100900462ffffff16949350505050565b6000610e8b8484611634565b6001600160a01b0383166000908152602091909152604090205460ff1690509392505050565b6000610ebd848461165c565b6000610ec9858561168d565b90506000610ed8868633610e7f565b15610f0d57610ee5610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549050610f10565b50805b80341015610f305760405162461bcd60e51b815260040161066c90612393565b6001600160a01b0319841615610fcf57604051630ea5613f60e01b8152600481018790526000906001600160a01b03871690630ea5613f9060240160c060405180830381865afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac91906123d3565b505050505090506000610fbf88836116fd565b9050610fcc878288611717565b50505b6040516117cd60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690615f349061101d908a908a908a903390600401612432565b6020604051808303816000875af115801561103c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611060919061245d565b92506001600160a01b031984161561107d5761107d8584866117eb565b6110878386611852565b6110928682876118be565b5050949350505050565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d75b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee6110bf565b60008061111b858561154e565b91509150808362ffffff1611156111445760405162461bcd60e51b815260040161066c90612476565b818362ffffff1610156111695760405162461bcd60e51b815260040161066c90612476565b600061117586866110e6565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b606060008262ffffff161161123a5760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba1036b4b73a1030ba103632b0b9ba1037b732903a37b5b2b760211b604482015260640161066c565b611244848461165c565b6000611250858561168d565b9050600061125f868633610e7f565b156112945761126c610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549050611297565b50805b60006112a862ffffff8616836124bd565b9050803410156112ca5760405162461bcd60e51b815260040161066c90612393565b8462ffffff166001600160401b038111156112e7576112e76124d4565b604051908082528060200260200182016040528015611310578160200160208202803683370190505b50935060005b8562ffffff168110156113fd576040516117cd60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690615f3490611371908c908c908c903390600401612432565b6020604051808303816000875af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b4919061245d565b8582815181106113c6576113c6612366565b6020026020010181815250506113f58582815181106113e7576113e7612366565b602002602001015188611852565b600101611316565b5060005b8562ffffff1681101561142157611419888489611949565b600101611401565b50600061142e82346124ea565b905080156114a057604051600090339083908381818185875af1925050503d8060008114611478576040519150601f19603f3d011682016040523d82523d6000602084013e61147d565b606091505b505090508061149e5760405162461bcd60e51b815260040161066c906124fd565b505b50505050949350505050565b6000806114b984846110e6565b5460ff16949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190612524565b6001600160a01b0316826001600160a01b03161490509392505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc91906123d3565b5093989297509195505050505050565b600062ffffff8211156116305760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161066c565b5090565b60007f5f5f7d55ae7db291f1eca23b4acd02eae7c41821923fc6251628a8d8de97d4906110bf565b600061166883836110e6565b805490915060ff16156107d75760405162461bcd60e51b815260040161066c90612541565b60008061169a848461109c565b8054909150600160f81b900460ff166116ec5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161066c565b546001600160f81b03169392505050565b60008161170d620f4240856124bd565b61062a9190612572565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190612524565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b1580156117d757600080fd5b505af1158015610d70573d6000803e3d6000fd5b60006117f78484611b0a565b90506001600160a01b03198082169083161461058e5760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b604482015260640161066c565b600061185d83611b76565b9050600061186b82846110e6565b8054909150620f4240850660010190610100900462ffffff16808211156118a45760405162461bcd60e51b815260040161066c90612541565b8082036105b757825460ff19166001178355505050505050565b34156107d75760006118d083346124ea565b9050801561194257604051600090339083908381818185875af1925050503d806000811461191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50509050806119405760405162461bcd60e51b815260040161066c906124fd565b505b61058e8484845b8160000361195657505050565b600061196182611b85565b905060008060008060008060008088156119ff57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156119c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e69190612585565b969e50949c50929a509098509650945092509050611a7f565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6f919061260d565b949c50929a509096509450925090505b8a8285611a8c898c612572565b611a969190612572565b611aa09190612572565b14611aec5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161066c565b611afc86868a8a88888888611bd3565b505050505050505050505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190612676565b600061062d620f424083612693565b600080611b9183610947565b8054909150610100900460ff1615611bad575460ff1692915050565b6000611bb884610980565b825481151561ffff1990911617610100179092555092915050565b8715611c7e576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611c26576040519150601f19603f3d011682016040523d82523d6000602084013e611c2b565b606091505b5050905080611c7c5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161066c565b505b8515611d29576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611cd1576040519150601f19603f3d011682016040523d82523d6000602084013e611cd6565b606091505b5050905080611d275760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161066c565b505b8315611dcc576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611d7c576040519150601f19603f3d011682016040523d82523d6000602084013e611d81565b606091505b5050905080611dca5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161066c565b505b8115611e77576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611e1f576040519150601f19603f3d011682016040523d82523d6000602084013e611e24565b606091505b5050905080611e755760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161066c565b505b5050505050505050565b6001600160a01b0381168114611e9657600080fd5b50565b600060208284031215611eab57600080fd5b81356104e481611e81565b80356001600160f81b0381168114611ecd57600080fd5b919050565b60008060008060808587031215611ee857600080fd5b843593506020850135611efa81611e81565b9250611f0860408601611eb6565b9150611f1660608601611eb6565b905092959194509250565b60008083601f840112611f3357600080fd5b5081356001600160401b03811115611f4a57600080fd5b6020830191508360208260051b8501011115611f6557600080fd5b9250929050565b60008060008060008060808789031215611f8557600080fd5b863595506020870135611f9781611e81565b945060408701356001600160401b0380821115611fb357600080fd5b611fbf8a838b01611f21565b90965094506060890135915080821115611fd857600080fd5b50611fe589828a01611f21565b979a9699509497509295939492505050565b6000806040838503121561200a57600080fd5b82359150602083013561201c81611e81565b809150509250929050565b6000806000806060858703121561203d57600080fd5b84359350602085013561204f81611e81565b925060408501356001600160401b0381111561206a57600080fd5b61207687828801611f21565b95989497509550505050565b60008060006060848603121561209757600080fd5b8335925060208401356120a981611e81565b915060408401356120b981611e81565b809150509250925092565b6000806000606084860312156120d957600080fd5b83356120e481611e81565b92506020840135915060408401356120b981611e81565b6001600160a01b031981168114611e9657600080fd5b60008060006060848603121561212657600080fd5b83359250602084013561213881611e81565b915060408401356120b9816120fb565b803562ffffff81168114611ecd57600080fd5b60008060006060848603121561217057600080fd5b83359250602084013561218281611e81565b915061219060408501612148565b90509250925092565b600080600080608085870312156121af57600080fd5b84356121ba81611e81565b93506020850135925060408501356121d181611e81565b9150611f1660608601612148565b6020808252825182820181905260009190848201906040850190845b81811015612217578351835292840192918401916001016121fb565b50909695505050505050565b60005b8381101561223e578181015183820152602001612226565b50506000910152565b6000815180845261225f816020860160208601612223565b601f01601f19169290920160200192915050565b60208152600061062a6020830184612247565b84151581528360208201526080604082015260006122a76080830185612247565b905060018060a01b038316606083015295945050505050565b600080600080608085870312156122d657600080fd5b84356122e181611e81565b93506020850135925060408501356122f881611e81565b91506060850135612308816120fb565b939692955090935050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000825161235c818460208701612223565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b9182526001600160a01b0316602082015260400190565b60208082526016908201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604082015260600190565b80518015158114611ecd57600080fd5b60008060008060008060c087890312156123ec57600080fd5b8651955060208701519450612403604088016123c3565b9350612411606088016123c3565b92506080870151915061242660a088016123c3565b90509295509295509295565b6001600160a01b03948516815260208101939093529083166040830152909116606082015260800190565b60006020828403121561246f57600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761062d5761062d6124a7565b634e487b7160e01b600052604160045260246000fd5b8181038181111561062d5761062d6124a7565b6020808252600d908201526c1499599d5b990819985a5b1959609a1b604082015260600190565b60006020828403121561253657600080fd5b81516104e481611e81565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8082018082111561062d5761062d6124a7565b600080600080600080600080610100898b0312156125a257600080fd5b8851975060208901516125b481611e81565b60408a015160608b015191985096506125cc81611e81565b60808a015160a08b015191965094506125e481611e81565b60c08a015160e08b015191945092506125fc81611e81565b809150509295985092959890939650565b60008060008060008060c0878903121561262657600080fd5b86519550602087015161263881611e81565b60408801516060890151919650945061265081611e81565b608088015160a0890151919450925061266881611e81565b809150509295509295509295565b60006020828403121561268857600080fd5b81516104e4816120fb565b6000826126b057634e487b7160e01b600052601260045260246000fd5b50049056fe4d696e74657253657450726963655469657265644f6e436861696e416c6c6f775630a26469706673582212208e38be08c649c402094ca974c42d8f125c335ae62e01a8e48fc0324b9145757464736f6c63430008130033",
670
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780631be7ad3b14610155578063200732c814610177578063261b9fbc14610197578063319788f0146101c557806345e27499146101e55780634869f3df1461020557806349da7eb8146102255780634e8d87871461024557806379631a1a146102585780639a94488a1461028f5780639b24c3c0146102d15780639ef367ee14610317578063ae77c2371461032a578063b000e3341461033d578063c13dfee41461035d578063cce7c9091461037d578063d3ddabe61461039d578063d9bffbce146103dc578063d9eb16db146103fc578063dd85582f1461042c578063de7599ed14610478578063e9d1e8ac1461048b578063fa5d8bb8146104a0575b600080fd5b34801561012c57600080fd5b5061014061013b366004611e99565b6104b3565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004611ed2565b6104eb565b005b34801561018357600080fd5b50610175610192366004611f6c565b610594565b3480156101a357600080fd5b506101b76101b2366004611ff7565b6105bf565b60405190815260200161014c565b3480156101d157600080fd5b506101756101e0366004612027565b6105f0565b3480156101f157600080fd5b50610175610200366004612027565b610607565b34801561021157600080fd5b506101b7610220366004611ff7565b61061e565b34801561023157600080fd5b50610140610240366004612082565b610633565b6101b76102533660046120c4565b610648565b34801561026457600080fd5b50610278610273366004612082565b61069a565b60408051921515835260208301919091520161014c565b34801561029b57600080fd5b506102af6102aa366004611ff7565b610710565b6040805182511515815260209283015162ffffff16928101929092520161014c565b3480156102dd57600080fd5b506102f16102ec366004611ff7565b610758565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b6101b7610325366004612111565b6107a6565b6101b7610338366004611ff7565b6107b4565b34801561034957600080fd5b5061017561035836600461215b565b6107c1565b61037061036b366004612199565b6107dc565b60405161014c91906121df565b34801561038957600080fd5b50610140610398366004611ff7565b61081f565b3480156103a957600080fd5b506103cf60405180604001604052806006815260200165076302e312e360d41b81525081565b60405161014c9190612273565b3480156103e857600080fd5b506101756103f7366004611ff7565b61082b565b34801561040857600080fd5b5061041c610417366004611ff7565b610844565b60405161014c9493929190612286565b34801561043857600080fd5b506104607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b61037061048636600461215b565b610896565b34801561049757600080fd5b506103cf6108a4565b6101b76104ae3660046122c0565b6108c0565b6000806104bf83610947565b8054909150610100900460ff16156104db575460ff1692915050565b6104e483610980565b9392505050565b6104f6848433610af6565b61050a8484846001600160f81b0316610b3b565b806001600160f81b031661051c610b9a565b6001600160a01b0385166000818152602092835260408082208983529093528281209390935590516001600160f81b0384169287917f3b36159eb13262378a133b50763e8a75688d586b7e75d5cd7e886e37702cdf0c9190a461057f8484610bbe565b1561058e5761058e8484610bee565b50505050565b61059f868633610af6565b6105ab86868686610c89565b6105b786868484610d79565b505050505050565b60006105c9610b9a565b6001600160a01b039092166000908152602092835260408082209482529390925250205490565b6105fb848433610af6565b61058e84848484610d79565b610612848433610af6565b61058e84848484610c89565b600061062a8383610e5f565b90505b92915050565b6000610640848484610e7f565b949350505050565b60006002600054036106755760405162461bcd60e51b815260040161066c90612313565b60405180910390fd5b600260008190555061068d848484600060a01b610eb1565b6001600055949350505050565b60008060006106a9868661109c565b8054600160f81b900460ff16935090506106c4868686610e7f565b156106f9576106d1610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549150610707565b80546001600160f81b031691505b50935093915050565b604080518082019091526000808252602082015261072e83836110e6565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b6040805180820190915260008082526020820152610776838361109c565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610640338585856108c0565b600061062a338484610648565b6107cc838333610af6565b6107d783838361110e565b505050565b60606002600054036108005760405162461bcd60e51b815260040161066c90612313565b6002600055610811858585856111e4565b600160005595945050505050565b600061062a83836114ac565b610836828233610af6565b6108408282610bee565b5050565b6000806060600080610856878761109c565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b6060610640338585856107dc565b6040518060600160405280602281526020016126b66022913981565b60006002600054036108e45760405162461bcd60e51b815260040161066c90612313565b60026000556001600160a01b0319821661093b5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b604482015260640161066c565b61081185858585610eb1565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906109e290859061234a565b600060405180830381855afa9150503d8060008114610a1d576040519150601f19603f3d011682016040523d82523d6000602084013e610a22565b606091505b509150915081610a825760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161066c565b805160c0819003610a995750600095945050505050565b8061010003610aae5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161066c565b610b018383836114c5565b6107d75760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161066c565b6000610b47848461109c565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b7f034e84a338d493678543d80a16a3cd804f6b6ec7d5a72ecf5c579fdd9655ef3690565b600080610bcb84846110e6565b8054909150610100900462ffffff1615801561064057505460ff16159392505050565b600080610bfb848461154e565b915091506000610c0b85856110e6565b9050610c16826115cc565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610c7a9086815260200190565b60405180910390a35050505050565b6000610c958585611634565b90508160005b81811015610d70576001836000878785818110610cba57610cba612366565b9050602002016020810190610ccf9190611e99565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877fe8c6a480cf8078bbde7a2a170b9529befe114a8195321d6bf92f6b68fb89a7c968185b1b1bdddb1a5cdd60ba1b888886818110610d3d57610d3d612366565b9050602002016020810190610d529190611e99565b604051610d6092919061237c565b60405180910390a3600101610c9b565b50505050505050565b6000610d858585611634565b90508160005b81811015610d705760008381878785818110610da957610da9612366565b9050602002016020810190610dbe9190611e99565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877f4ed5eb89eec6de84efff2cf9c8e6cbe647fd33c5a50a11b5adfce0416660e74368185b1b1bdddb1a5cdd60ba1b888886818110610e2c57610e2c612366565b9050602002016020810190610e419190611e99565b604051610e4f92919061237c565b60405180910390a3600101610d8b565b600080610e6c84846110e6565b54610100900462ffffff16949350505050565b6000610e8b8484611634565b6001600160a01b0383166000908152602091909152604090205460ff1690509392505050565b6000610ebd848461165c565b6000610ec9858561168d565b90506000610ed8868633610e7f565b15610f0d57610ee5610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549050610f10565b50805b80341015610f305760405162461bcd60e51b815260040161066c90612393565b6001600160a01b0319841615610fcf57604051630ea5613f60e01b8152600481018790526000906001600160a01b03871690630ea5613f9060240160c060405180830381865afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac91906123d3565b505050505090506000610fbf88836116fd565b9050610fcc878288611717565b50505b6040516117cd60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690615f349061101d908a908a908a903390600401612432565b6020604051808303816000875af115801561103c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611060919061245d565b92506001600160a01b031984161561107d5761107d8584866117eb565b6110878386611852565b6110928682876118be565b5050949350505050565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d75b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee6110bf565b60008061111b858561154e565b91509150808362ffffff1611156111445760405162461bcd60e51b815260040161066c90612476565b818362ffffff1610156111695760405162461bcd60e51b815260040161066c90612476565b600061117586866110e6565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b606060008262ffffff161161123a5760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba1036b4b73a1030ba103632b0b9ba1037b732903a37b5b2b760211b604482015260640161066c565b611244848461165c565b6000611250858561168d565b9050600061125f868633610e7f565b156112945761126c610b9a565b6001600160a01b03861660009081526020918252604080822089835290925220549050611297565b50805b60006112a862ffffff8616836124bd565b9050803410156112ca5760405162461bcd60e51b815260040161066c90612393565b8462ffffff166001600160401b038111156112e7576112e76124d4565b604051908082528060200260200182016040528015611310578160200160208202803683370190505b50935060005b8562ffffff168110156113fd576040516117cd60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690615f3490611371908c908c908c903390600401612432565b6020604051808303816000875af1158015611390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b4919061245d565b8582815181106113c6576113c6612366565b6020026020010181815250506113f58582815181106113e7576113e7612366565b602002602001015188611852565b600101611316565b5060005b8562ffffff1681101561142157611419888489611949565b600101611401565b50600061142e82346124ea565b905080156114a057604051600090339083908381818185875af1925050503d8060008114611478576040519150601f19603f3d011682016040523d82523d6000602084013e61147d565b606091505b505090508061149e5760405162461bcd60e51b815260040161066c906124fd565b505b50505050949350505050565b6000806114b984846110e6565b5460ff16949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190612524565b6001600160a01b0316826001600160a01b03161490509392505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc91906123d3565b5093989297509195505050505050565b600062ffffff8211156116305760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161066c565b5090565b60007f5f5f7d55ae7db291f1eca23b4acd02eae7c41821923fc6251628a8d8de97d4906110bf565b600061166883836110e6565b805490915060ff16156107d75760405162461bcd60e51b815260040161066c90612541565b60008061169a848461109c565b8054909150600160f81b900460ff166116ec5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161066c565b546001600160f81b03169392505050565b60008161170d620f4240856124bd565b61062a9190612572565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190612524565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b1580156117d757600080fd5b505af1158015610d70573d6000803e3d6000fd5b60006117f78484611b0a565b90506001600160a01b03198082169083161461058e5760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b604482015260640161066c565b600061185d83611b76565b9050600061186b82846110e6565b8054909150620f4240850660010190610100900462ffffff16808211156118a45760405162461bcd60e51b815260040161066c90612541565b8082036105b757825460ff19166001178355505050505050565b34156107d75760006118d083346124ea565b9050801561194257604051600090339083908381818185875af1925050503d806000811461191a576040519150601f19603f3d011682016040523d82523d6000602084013e61191f565b606091505b50509050806119405760405162461bcd60e51b815260040161066c906124fd565b505b61058e8484845b8160000361195657505050565b600061196182611b85565b905060008060008060008060008088156119ff57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156119c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e69190612585565b969e50949c50929a509098509650945092509050611a7f565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6f919061260d565b949c50929a509096509450925090505b8a8285611a8c898c612572565b611a969190612572565b611aa09190612572565b14611aec5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161066c565b611afc86868a8a88888888611bd3565b505050505050505050505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062a9190612676565b600061062d620f424083612693565b600080611b9183610947565b8054909150610100900460ff1615611bad575460ff1692915050565b6000611bb884610980565b825481151561ffff1990911617610100179092555092915050565b8715611c7e576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611c26576040519150601f19603f3d011682016040523d82523d6000602084013e611c2b565b606091505b5050905080611c7c5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161066c565b505b8515611d29576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611cd1576040519150601f19603f3d011682016040523d82523d6000602084013e611cd6565b606091505b5050905080611d275760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161066c565b505b8315611dcc576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611d7c576040519150601f19603f3d011682016040523d82523d6000602084013e611d81565b606091505b5050905080611dca5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161066c565b505b8115611e77576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611e1f576040519150601f19603f3d011682016040523d82523d6000602084013e611e24565b606091505b5050905080611e755760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161066c565b505b5050505050505050565b6001600160a01b0381168114611e9657600080fd5b50565b600060208284031215611eab57600080fd5b81356104e481611e81565b80356001600160f81b0381168114611ecd57600080fd5b919050565b60008060008060808587031215611ee857600080fd5b843593506020850135611efa81611e81565b9250611f0860408601611eb6565b9150611f1660608601611eb6565b905092959194509250565b60008083601f840112611f3357600080fd5b5081356001600160401b03811115611f4a57600080fd5b6020830191508360208260051b8501011115611f6557600080fd5b9250929050565b60008060008060008060808789031215611f8557600080fd5b863595506020870135611f9781611e81565b945060408701356001600160401b0380821115611fb357600080fd5b611fbf8a838b01611f21565b90965094506060890135915080821115611fd857600080fd5b50611fe589828a01611f21565b979a9699509497509295939492505050565b6000806040838503121561200a57600080fd5b82359150602083013561201c81611e81565b809150509250929050565b6000806000806060858703121561203d57600080fd5b84359350602085013561204f81611e81565b925060408501356001600160401b0381111561206a57600080fd5b61207687828801611f21565b95989497509550505050565b60008060006060848603121561209757600080fd5b8335925060208401356120a981611e81565b915060408401356120b981611e81565b809150509250925092565b6000806000606084860312156120d957600080fd5b83356120e481611e81565b92506020840135915060408401356120b981611e81565b6001600160a01b031981168114611e9657600080fd5b60008060006060848603121561212657600080fd5b83359250602084013561213881611e81565b915060408401356120b9816120fb565b803562ffffff81168114611ecd57600080fd5b60008060006060848603121561217057600080fd5b83359250602084013561218281611e81565b915061219060408501612148565b90509250925092565b600080600080608085870312156121af57600080fd5b84356121ba81611e81565b93506020850135925060408501356121d181611e81565b9150611f1660608601612148565b6020808252825182820181905260009190848201906040850190845b81811015612217578351835292840192918401916001016121fb565b50909695505050505050565b60005b8381101561223e578181015183820152602001612226565b50506000910152565b6000815180845261225f816020860160208601612223565b601f01601f19169290920160200192915050565b60208152600061062a6020830184612247565b84151581528360208201526080604082015260006122a76080830185612247565b905060018060a01b038316606083015295945050505050565b600080600080608085870312156122d657600080fd5b84356122e181611e81565b93506020850135925060408501356122f881611e81565b91506060850135612308816120fb565b939692955090935050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000825161235c818460208701612223565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b9182526001600160a01b0316602082015260400190565b60208082526016908201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604082015260600190565b80518015158114611ecd57600080fd5b60008060008060008060c087890312156123ec57600080fd5b8651955060208701519450612403604088016123c3565b9350612411606088016123c3565b92506080870151915061242660a088016123c3565b90509295509295509295565b6001600160a01b03948516815260208101939093529083166040830152909116606082015260800190565b60006020828403121561246f57600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761062d5761062d6124a7565b634e487b7160e01b600052604160045260246000fd5b8181038181111561062d5761062d6124a7565b6020808252600d908201526c1499599d5b990819985a5b1959609a1b604082015260600190565b60006020828403121561253657600080fd5b81516104e481611e81565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8082018082111561062d5761062d6124a7565b600080600080600080600080610100898b0312156125a257600080fd5b8851975060208901516125b481611e81565b60408a015160608b015191985096506125cc81611e81565b60808a015160a08b015191965094506125e481611e81565b60c08a015160e08b015191945092506125fc81611e81565b809150509295985092959890939650565b60008060008060008060c0878903121561262657600080fd5b86519550602087015161263881611e81565b60408801516060890151919650945061265081611e81565b608088015160a0890151919450925061266881611e81565b809150509295509295509295565b60006020828403121561268857600080fd5b81516104e4816120fb565b6000826126b057634e487b7160e01b600052601260045260246000fd5b50049056fe4d696e74657253657450726963655469657265644f6e436861696e416c6c6f775630a26469706673582212208e38be08c649c402094ca974c42d8f125c335ae62e01a8e48fc0324b9145757464736f6c63430008130033",
671
+ "linkReferences": {},
672
+ "deployedLinkReferences": {}
673
+ }