@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,522 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterSetPriceOnChainAllowV0",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.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
+ "inputs": [
19
+ {
20
+ "internalType": "uint256",
21
+ "name": "projectId",
22
+ "type": "uint256"
23
+ },
24
+ {
25
+ "internalType": "address",
26
+ "name": "coreContract",
27
+ "type": "address"
28
+ },
29
+ {
30
+ "internalType": "address[]",
31
+ "name": "addresses",
32
+ "type": "address[]"
33
+ }
34
+ ],
35
+ "name": "addAddressesToAllowlist",
36
+ "outputs": [],
37
+ "stateMutability": "nonpayable",
38
+ "type": "function"
39
+ },
40
+ {
41
+ "inputs": [
42
+ {
43
+ "internalType": "uint256",
44
+ "name": "projectId",
45
+ "type": "uint256"
46
+ },
47
+ {
48
+ "internalType": "address",
49
+ "name": "coreContract",
50
+ "type": "address"
51
+ },
52
+ {
53
+ "internalType": "address[]",
54
+ "name": "addressesToAdd",
55
+ "type": "address[]"
56
+ },
57
+ {
58
+ "internalType": "address[]",
59
+ "name": "addressesToRemove",
60
+ "type": "address[]"
61
+ }
62
+ ],
63
+ "name": "addAndRemoveAddressesFromAllowlist",
64
+ "outputs": [],
65
+ "stateMutability": "nonpayable",
66
+ "type": "function"
67
+ },
68
+ {
69
+ "inputs": [
70
+ {
71
+ "internalType": "uint256",
72
+ "name": "projectId",
73
+ "type": "uint256"
74
+ },
75
+ {
76
+ "internalType": "address",
77
+ "name": "coreContract",
78
+ "type": "address"
79
+ }
80
+ ],
81
+ "name": "getPriceInfo",
82
+ "outputs": [
83
+ {
84
+ "internalType": "bool",
85
+ "name": "isConfigured",
86
+ "type": "bool"
87
+ },
88
+ {
89
+ "internalType": "uint256",
90
+ "name": "tokenPriceInWei",
91
+ "type": "uint256"
92
+ },
93
+ {
94
+ "internalType": "string",
95
+ "name": "currencySymbol",
96
+ "type": "string"
97
+ },
98
+ {
99
+ "internalType": "address",
100
+ "name": "currencyAddress",
101
+ "type": "address"
102
+ }
103
+ ],
104
+ "stateMutability": "view",
105
+ "type": "function"
106
+ },
107
+ {
108
+ "inputs": [
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "projectId",
112
+ "type": "uint256"
113
+ },
114
+ {
115
+ "internalType": "address",
116
+ "name": "coreContract",
117
+ "type": "address"
118
+ },
119
+ {
120
+ "internalType": "address",
121
+ "name": "wallet",
122
+ "type": "address"
123
+ }
124
+ ],
125
+ "name": "isAllowlisted",
126
+ "outputs": [
127
+ {
128
+ "internalType": "bool",
129
+ "name": "",
130
+ "type": "bool"
131
+ }
132
+ ],
133
+ "stateMutability": "view",
134
+ "type": "function"
135
+ },
136
+ {
137
+ "inputs": [
138
+ {
139
+ "internalType": "address",
140
+ "name": "coreContract",
141
+ "type": "address"
142
+ }
143
+ ],
144
+ "name": "isEngineView",
145
+ "outputs": [
146
+ {
147
+ "internalType": "bool",
148
+ "name": "",
149
+ "type": "bool"
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": "uint24",
169
+ "name": "maxInvocations",
170
+ "type": "uint24"
171
+ }
172
+ ],
173
+ "name": "manuallyLimitProjectMaxInvocations",
174
+ "outputs": [],
175
+ "stateMutability": "nonpayable",
176
+ "type": "function"
177
+ },
178
+ {
179
+ "inputs": [
180
+ {
181
+ "internalType": "uint256",
182
+ "name": "projectId",
183
+ "type": "uint256"
184
+ },
185
+ {
186
+ "internalType": "address",
187
+ "name": "coreContract",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "name": "maxInvocationsProjectConfig",
192
+ "outputs": [
193
+ {
194
+ "components": [
195
+ {
196
+ "internalType": "bool",
197
+ "name": "maxHasBeenInvoked",
198
+ "type": "bool"
199
+ },
200
+ {
201
+ "internalType": "uint24",
202
+ "name": "maxInvocations",
203
+ "type": "uint24"
204
+ }
205
+ ],
206
+ "internalType": "struct MaxInvocationsLib.MaxInvocationsProjectConfig",
207
+ "name": "",
208
+ "type": "tuple"
209
+ }
210
+ ],
211
+ "stateMutability": "view",
212
+ "type": "function"
213
+ },
214
+ {
215
+ "inputs": [],
216
+ "name": "minterFilterAddress",
217
+ "outputs": [
218
+ {
219
+ "internalType": "address",
220
+ "name": "",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "stateMutability": "view",
225
+ "type": "function"
226
+ },
227
+ {
228
+ "inputs": [],
229
+ "name": "minterType",
230
+ "outputs": [
231
+ {
232
+ "internalType": "string",
233
+ "name": "",
234
+ "type": "string"
235
+ }
236
+ ],
237
+ "stateMutability": "view",
238
+ "type": "function"
239
+ },
240
+ {
241
+ "inputs": [],
242
+ "name": "minterVersion",
243
+ "outputs": [
244
+ {
245
+ "internalType": "string",
246
+ "name": "",
247
+ "type": "string"
248
+ }
249
+ ],
250
+ "stateMutability": "view",
251
+ "type": "function"
252
+ },
253
+ {
254
+ "inputs": [
255
+ {
256
+ "internalType": "uint256",
257
+ "name": "projectId",
258
+ "type": "uint256"
259
+ },
260
+ {
261
+ "internalType": "address",
262
+ "name": "coreContract",
263
+ "type": "address"
264
+ }
265
+ ],
266
+ "name": "projectMaxHasBeenInvoked",
267
+ "outputs": [
268
+ {
269
+ "internalType": "bool",
270
+ "name": "",
271
+ "type": "bool"
272
+ }
273
+ ],
274
+ "stateMutability": "view",
275
+ "type": "function"
276
+ },
277
+ {
278
+ "inputs": [
279
+ {
280
+ "internalType": "uint256",
281
+ "name": "projectId",
282
+ "type": "uint256"
283
+ },
284
+ {
285
+ "internalType": "address",
286
+ "name": "coreContract",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "name": "projectMaxInvocations",
291
+ "outputs": [
292
+ {
293
+ "internalType": "uint256",
294
+ "name": "",
295
+ "type": "uint256"
296
+ }
297
+ ],
298
+ "stateMutability": "view",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "uint256",
305
+ "name": "projectId",
306
+ "type": "uint256"
307
+ },
308
+ {
309
+ "internalType": "address",
310
+ "name": "coreContract",
311
+ "type": "address"
312
+ }
313
+ ],
314
+ "name": "purchase",
315
+ "outputs": [
316
+ {
317
+ "internalType": "uint256",
318
+ "name": "tokenId",
319
+ "type": "uint256"
320
+ }
321
+ ],
322
+ "stateMutability": "payable",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "address",
329
+ "name": "to",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "projectId",
335
+ "type": "uint256"
336
+ },
337
+ {
338
+ "internalType": "address",
339
+ "name": "coreContract",
340
+ "type": "address"
341
+ }
342
+ ],
343
+ "name": "purchaseTo",
344
+ "outputs": [
345
+ {
346
+ "internalType": "uint256",
347
+ "name": "tokenId",
348
+ "type": "uint256"
349
+ }
350
+ ],
351
+ "stateMutability": "payable",
352
+ "type": "function"
353
+ },
354
+ {
355
+ "inputs": [
356
+ {
357
+ "internalType": "address",
358
+ "name": "to",
359
+ "type": "address"
360
+ },
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "projectId",
364
+ "type": "uint256"
365
+ },
366
+ {
367
+ "internalType": "address",
368
+ "name": "coreContract",
369
+ "type": "address"
370
+ },
371
+ {
372
+ "internalType": "bytes12",
373
+ "name": "hashSeed",
374
+ "type": "bytes12"
375
+ }
376
+ ],
377
+ "name": "purchaseToWithHashSeed",
378
+ "outputs": [
379
+ {
380
+ "internalType": "uint256",
381
+ "name": "tokenId",
382
+ "type": "uint256"
383
+ }
384
+ ],
385
+ "stateMutability": "payable",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [
390
+ {
391
+ "internalType": "uint256",
392
+ "name": "projectId",
393
+ "type": "uint256"
394
+ },
395
+ {
396
+ "internalType": "address",
397
+ "name": "coreContract",
398
+ "type": "address"
399
+ },
400
+ {
401
+ "internalType": "bytes12",
402
+ "name": "hashSeed",
403
+ "type": "bytes12"
404
+ }
405
+ ],
406
+ "name": "purchaseWithHashSeed",
407
+ "outputs": [
408
+ {
409
+ "internalType": "uint256",
410
+ "name": "tokenId",
411
+ "type": "uint256"
412
+ }
413
+ ],
414
+ "stateMutability": "payable",
415
+ "type": "function"
416
+ },
417
+ {
418
+ "inputs": [
419
+ {
420
+ "internalType": "uint256",
421
+ "name": "projectId",
422
+ "type": "uint256"
423
+ },
424
+ {
425
+ "internalType": "address",
426
+ "name": "coreContract",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "internalType": "address[]",
431
+ "name": "addresses",
432
+ "type": "address[]"
433
+ }
434
+ ],
435
+ "name": "removeAddressesFromAllowlist",
436
+ "outputs": [],
437
+ "stateMutability": "nonpayable",
438
+ "type": "function"
439
+ },
440
+ {
441
+ "inputs": [
442
+ {
443
+ "internalType": "uint256",
444
+ "name": "projectId",
445
+ "type": "uint256"
446
+ },
447
+ {
448
+ "internalType": "address",
449
+ "name": "coreContract",
450
+ "type": "address"
451
+ }
452
+ ],
453
+ "name": "setPriceProjectConfig",
454
+ "outputs": [
455
+ {
456
+ "components": [
457
+ {
458
+ "internalType": "uint248",
459
+ "name": "pricePerToken",
460
+ "type": "uint248"
461
+ },
462
+ {
463
+ "internalType": "bool",
464
+ "name": "priceIsConfigured",
465
+ "type": "bool"
466
+ }
467
+ ],
468
+ "internalType": "struct SetPriceLib.SetPriceProjectConfig",
469
+ "name": "",
470
+ "type": "tuple"
471
+ }
472
+ ],
473
+ "stateMutability": "view",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
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": "syncProjectMaxInvocationsToCore",
490
+ "outputs": [],
491
+ "stateMutability": "nonpayable",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [
496
+ {
497
+ "internalType": "uint256",
498
+ "name": "projectId",
499
+ "type": "uint256"
500
+ },
501
+ {
502
+ "internalType": "address",
503
+ "name": "coreContract",
504
+ "type": "address"
505
+ },
506
+ {
507
+ "internalType": "uint248",
508
+ "name": "pricePerTokenInWei",
509
+ "type": "uint248"
510
+ }
511
+ ],
512
+ "name": "updatePricePerTokenInWei",
513
+ "outputs": [],
514
+ "stateMutability": "nonpayable",
515
+ "type": "function"
516
+ }
517
+ ],
518
+ "bytecode": "0x60c060405234801561001057600080fd5b50604051620021c8380380620021c88339810160408190526100319161004c565b60016000556001600160a01b0316608081905260a05261007c565b60006020828403121561005e57600080fd5b81516001600160a01b038116811461007557600080fd5b9392505050565b60805160a051612126620000a26000396000610cae0152600061039b01526121266000f3fe6080604052600436106100ef5760003560e01c806301000da7146100f4578063200732c814610129578063319788f01461014b57806345e274991461016b5780634869f3df1461018b57806349da7eb8146101b95780634e8d8787146101d95780637e947f24146101ec5780639a94488a1461020c5780639b24c3c01461024e5780639ef367ee14610294578063ae77c237146102a7578063b000e334146102ba578063cce7c909146102da578063d3ddabe6146102fa578063d9bffbce14610339578063d9eb16db14610359578063dd85582f14610389578063e9d1e8ac146103d5578063fa5d8bb81461041d575b600080fd5b34801561010057600080fd5b5061011461010f366004611a2b565b610430565b60405190151581526020015b60405180910390f35b34801561013557600080fd5b50610149610144366004611a93565b610468565b005b34801561015757600080fd5b50610149610166366004611b1e565b610493565b34801561017757600080fd5b50610149610186366004611b1e565b6104b0565b34801561019757600080fd5b506101ab6101a6366004611b79565b6104c7565b604051908152602001610120565b3480156101c557600080fd5b506101146101d4366004611ba9565b6104dc565b6101ab6101e7366004611beb565b6104f1565b3480156101f857600080fd5b50610149610207366004611c22565b610543565b34801561021857600080fd5b5061022c610227366004611b79565b610580565b6040805182511515815260209283015162ffffff169281019290925201610120565b34801561025a57600080fd5b5061026e610269366004611b79565b6105c8565b6040805182516001600160f81b0316815260209283015115159281019290925201610120565b6101ab6102a2366004611c7b565b610616565b6101ab6102b5366004611b79565b610624565b3480156102c657600080fd5b506101496102d5366004611cb2565b610631565b3480156102e657600080fd5b506101146102f5366004611b79565b610647565b34801561030657600080fd5b5061032c60405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101209190611d41565b34801561034557600080fd5b50610149610354366004611b79565b610653565b34801561036557600080fd5b50610379610374366004611b79565b61066c565b6040516101209493929190611d54565b34801561039557600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610120565b3480156103e157600080fd5b5061032c6040518060400160405280601c81526020017b04d696e74657253657450726963654f6e436861696e416c6c6f7756360241b81525081565b6101ab61042b366004611d8e565b6106be565b60008061043c83610753565b8054909150610100900460ff1615610458575460ff1692915050565b6104618361078c565b9392505050565b610473868633610902565b61047f86868686610947565b61048b86868484610a37565b505050505050565b61049e848433610902565b6104aa84848484610a37565b50505050565b6104bb848433610902565b6104aa84848484610947565b60006104d38383610b1d565b90505b92915050565b60006104e9848484610b3d565b949350505050565b600060026000540361051e5760405162461bcd60e51b815260040161051590611de1565b60405180910390fd5b6002600081905550610536848484600060a01b610b6f565b6001600055949350505050565b61054e838333610902565b6105628383836001600160f81b0316610d54565b61056c8383610db3565b1561057b5761057b8383610de3565b505050565b604080518082019091526000808252602082015261059e8383610e7e565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526105e68383610ec9565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b60006104e9338585856106be565b60006104d33384846104f1565b61063c838333610902565b61057b838383610ef0565b60006104d38383610fc6565b61065e828233610902565b6106688282610de3565b5050565b600080606060008061067e8787610ec9565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b60006002600054036106e25760405162461bcd60e51b815260040161051590611de1565b60026000556001600160a01b031982166107395760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b6044820152606401610515565b61074585858585610b6f565b600160005595945050505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906107ee908590611e18565b600060405180830381855afa9150503d8060008114610829576040519150601f19603f3d011682016040523d82523d6000602084013e61082e565b606091505b50915091508161088e5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610515565b805160c08190036108a55750600095945050505050565b80610100036108ba5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610515565b61090d838383610fdf565b61057b5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610515565b60006109538585611068565b90508160005b81811015610a2e57600183600087878581811061097857610978611e34565b905060200201602081019061098d9190611a2b565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877fe8c6a480cf8078bbde7a2a170b9529befe114a8195321d6bf92f6b68fb89a7c968185b1b1bdddb1a5cdd60ba1b8888868181106109fb576109fb611e34565b9050602002016020810190610a109190611a2b565b604051610a1e929190611e4a565b60405180910390a3600101610959565b50505050505050565b6000610a438585611068565b90508160005b81811015610a2e5760008381878785818110610a6757610a67611e34565b9050602002016020810190610a7c9190611a2b565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877f4ed5eb89eec6de84efff2cf9c8e6cbe647fd33c5a50a11b5adfce0416660e74368185b1b1bdddb1a5cdd60ba1b888886818110610aea57610aea611e34565b9050602002016020810190610aff9190611a2b565b604051610b0d929190611e4a565b60405180910390a3600101610a49565b600080610b2a8484610e7e565b54610100900462ffffff16949350505050565b6000610b498484611068565b6001600160a01b0383166000908152602091909152604090205460ff1690509392505050565b6000610b7b8484611090565b6000610b8785856110c1565b905080341015610bd25760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610515565b610bdd858533611131565b6001600160a01b0319831615610c7c57604051630ea5613f60e01b8152600481018690526000906001600160a01b03861690630ea5613f9060240160c060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c599190611e76565b505050505090506000610c6c8783611185565b9050610c7986828761119f565b50505b6040516117cd60e21b81526001600160a01b0387811660048301526024820187905285811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190611ed5565b91506001600160a01b0319831615610d3657610d36848385611273565b610d4082856112da565b610d4b858286611346565b50949350505050565b6000610d608484610ec9565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610dc08484610e7e565b8054909150610100900462ffffff161580156104e957505460ff16159392505050565b600080610df084846113f5565b915091506000610e008585610e7e565b9050610e0b82611473565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610e6f9086815260200190565b60405180910390a35050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d7610ea2565b600080610efd85856113f5565b91509150808362ffffff161115610f265760405162461bcd60e51b815260040161051590611eee565b818362ffffff161015610f4b5760405162461bcd60e51b815260040161051590611eee565b6000610f578686610e7e565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b600080610fd38484610e7e565b5460ff16949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b9190611f1f565b6001600160a01b0316826001600160a01b03161490509392505050565b60007f5f5f7d55ae7db291f1eca23b4acd02eae7c41821923fc6251628a8d8de97d490610ea2565b600061109c8383610e7e565b805490915060ff161561057b5760405162461bcd60e51b815260040161051590611f3c565b6000806110ce8484610ec9565b8054909150600160f81b900460ff166111205760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610515565b546001600160f81b03169392505050565b61113c838383610b3d565b61057b5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920616c6c6f776c69737465642061646472657373657360301b6044820152606401610515565b600081611195620f424085611f83565b6104d39190611f9a565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156111df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112039190611f1f565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561125f57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b600061127f84846114db565b90506001600160a01b0319808216908316146104aa5760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610515565b60006112e583611547565b905060006112f38284610e7e565b8054909150620f4240850660010190610100900462ffffff168082111561132c5760405162461bcd60e51b815260040161051590611f3c565b80820361048b57825460ff19166001178355505050505050565b341561057b5760006113588334611fad565b905080156113ea57604051600090339083908381818185875af1925050503d80600081146113a2576040519150601f19603f3d011682016040523d82523d6000602084013e6113a7565b606091505b50509050806113e85760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610515565b505b6104aa848484611556565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114639190611e76565b5093989297509195505050505050565b600062ffffff8211156114d75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b6064820152608401610515565b5090565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611fc0565b60006104d6620f424083611fdd565b8160000361156357505050565b600061156e82611717565b9050600080600080600080600080881561160c57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190611fff565b969e50949c50929a50909850965094509250905061168c565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167c9190612087565b949c50929a509096509450925090505b8a8285611699898c611f9a565b6116a39190611f9a565b6116ad9190611f9a565b146116f95760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610515565b61170986868a8a88888888611765565b505050505050505050505050565b60008061172383610753565b8054909150610100900460ff161561173f575460ff1692915050565b600061174a8461078c565b825481151561ffff1990911617610100179092555092915050565b8715611810576000876001600160a01b03168960405160006040518083038185875af1925050503d80600081146117b8576040519150601f19603f3d011682016040523d82523d6000602084013e6117bd565b606091505b505090508061180e5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610515565b505b85156118bb576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611863576040519150601f19603f3d011682016040523d82523d6000602084013e611868565b606091505b50509050806118b95760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610515565b505b831561195e576000836001600160a01b03168560405160006040518083038185875af1925050503d806000811461190e576040519150601f19603f3d011682016040523d82523d6000602084013e611913565b606091505b505090508061195c5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610515565b505b8115611a09576000816001600160a01b03168360405160006040518083038185875af1925050503d80600081146119b1576040519150601f19603f3d011682016040523d82523d6000602084013e6119b6565b606091505b5050905080611a075760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610515565b505b5050505050505050565b6001600160a01b0381168114611a2857600080fd5b50565b600060208284031215611a3d57600080fd5b813561046181611a13565b60008083601f840112611a5a57600080fd5b5081356001600160401b03811115611a7157600080fd5b6020830191508360208260051b8501011115611a8c57600080fd5b9250929050565b60008060008060008060808789031215611aac57600080fd5b863595506020870135611abe81611a13565b945060408701356001600160401b0380821115611ada57600080fd5b611ae68a838b01611a48565b90965094506060890135915080821115611aff57600080fd5b50611b0c89828a01611a48565b979a9699509497509295939492505050565b60008060008060608587031215611b3457600080fd5b843593506020850135611b4681611a13565b925060408501356001600160401b03811115611b6157600080fd5b611b6d87828801611a48565b95989497509550505050565b60008060408385031215611b8c57600080fd5b823591506020830135611b9e81611a13565b809150509250929050565b600080600060608486031215611bbe57600080fd5b833592506020840135611bd081611a13565b91506040840135611be081611a13565b809150509250925092565b600080600060608486031215611c0057600080fd5b8335611c0b81611a13565b9250602084013591506040840135611be081611a13565b600080600060608486031215611c3757600080fd5b833592506020840135611c4981611a13565b915060408401356001600160f81b0381168114611be057600080fd5b6001600160a01b031981168114611a2857600080fd5b600080600060608486031215611c9057600080fd5b833592506020840135611ca281611a13565b91506040840135611be081611c65565b600080600060608486031215611cc757600080fd5b833592506020840135611cd981611a13565b9150604084013562ffffff81168114611be057600080fd5b60005b83811015611d0c578181015183820152602001611cf4565b50506000910152565b60008151808452611d2d816020860160208601611cf1565b601f01601f19169290920160200192915050565b6020815260006104d36020830184611d15565b8415158152836020820152608060408201526000611d756080830185611d15565b905060018060a01b038316606083015295945050505050565b60008060008060808587031215611da457600080fd5b8435611daf81611a13565b9350602085013592506040850135611dc681611a13565b91506060850135611dd681611c65565b939692955090935050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008251611e2a818460208701611cf1565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b9182526001600160a01b0316602082015260400190565b80518015158114611e7157600080fd5b919050565b60008060008060008060c08789031215611e8f57600080fd5b8651955060208701519450611ea660408801611e61565b9350611eb460608801611e61565b925060808701519150611ec960a08801611e61565b90509295509295509295565b600060208284031215611ee757600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600060208284031215611f3157600080fd5b815161046181611a13565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104d6576104d6611f6d565b808201808211156104d6576104d6611f6d565b818103818111156104d6576104d6611f6d565b600060208284031215611fd257600080fd5b815161046181611c65565b600082611ffa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561201c57600080fd5b88519750602089015161202e81611a13565b60408a015160608b0151919850965061204681611a13565b60808a015160a08b0151919650945061205e81611a13565b60c08a015160e08b0151919450925061207681611a13565b809150509295985092959890939650565b60008060008060008060c087890312156120a057600080fd5b8651955060208701516120b281611a13565b6040880151606089015191965094506120ca81611a13565b608088015160a089015191945092506120e281611a13565b80915050929550929550929556fea2646970667358221220846712dd81c19853bb1cb9c8a447d86e26f9f3ef061f7f3d886705e5de1b774164736f6c63430008130033",
519
+ "deployedBytecode": "0x6080604052600436106100ef5760003560e01c806301000da7146100f4578063200732c814610129578063319788f01461014b57806345e274991461016b5780634869f3df1461018b57806349da7eb8146101b95780634e8d8787146101d95780637e947f24146101ec5780639a94488a1461020c5780639b24c3c01461024e5780639ef367ee14610294578063ae77c237146102a7578063b000e334146102ba578063cce7c909146102da578063d3ddabe6146102fa578063d9bffbce14610339578063d9eb16db14610359578063dd85582f14610389578063e9d1e8ac146103d5578063fa5d8bb81461041d575b600080fd5b34801561010057600080fd5b5061011461010f366004611a2b565b610430565b60405190151581526020015b60405180910390f35b34801561013557600080fd5b50610149610144366004611a93565b610468565b005b34801561015757600080fd5b50610149610166366004611b1e565b610493565b34801561017757600080fd5b50610149610186366004611b1e565b6104b0565b34801561019757600080fd5b506101ab6101a6366004611b79565b6104c7565b604051908152602001610120565b3480156101c557600080fd5b506101146101d4366004611ba9565b6104dc565b6101ab6101e7366004611beb565b6104f1565b3480156101f857600080fd5b50610149610207366004611c22565b610543565b34801561021857600080fd5b5061022c610227366004611b79565b610580565b6040805182511515815260209283015162ffffff169281019290925201610120565b34801561025a57600080fd5b5061026e610269366004611b79565b6105c8565b6040805182516001600160f81b0316815260209283015115159281019290925201610120565b6101ab6102a2366004611c7b565b610616565b6101ab6102b5366004611b79565b610624565b3480156102c657600080fd5b506101496102d5366004611cb2565b610631565b3480156102e657600080fd5b506101146102f5366004611b79565b610647565b34801561030657600080fd5b5061032c60405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101209190611d41565b34801561034557600080fd5b50610149610354366004611b79565b610653565b34801561036557600080fd5b50610379610374366004611b79565b61066c565b6040516101209493929190611d54565b34801561039557600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610120565b3480156103e157600080fd5b5061032c6040518060400160405280601c81526020017b04d696e74657253657450726963654f6e436861696e416c6c6f7756360241b81525081565b6101ab61042b366004611d8e565b6106be565b60008061043c83610753565b8054909150610100900460ff1615610458575460ff1692915050565b6104618361078c565b9392505050565b610473868633610902565b61047f86868686610947565b61048b86868484610a37565b505050505050565b61049e848433610902565b6104aa84848484610a37565b50505050565b6104bb848433610902565b6104aa84848484610947565b60006104d38383610b1d565b90505b92915050565b60006104e9848484610b3d565b949350505050565b600060026000540361051e5760405162461bcd60e51b815260040161051590611de1565b60405180910390fd5b6002600081905550610536848484600060a01b610b6f565b6001600055949350505050565b61054e838333610902565b6105628383836001600160f81b0316610d54565b61056c8383610db3565b1561057b5761057b8383610de3565b505050565b604080518082019091526000808252602082015261059e8383610e7e565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526105e68383610ec9565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b60006104e9338585856106be565b60006104d33384846104f1565b61063c838333610902565b61057b838383610ef0565b60006104d38383610fc6565b61065e828233610902565b6106688282610de3565b5050565b600080606060008061067e8787610ec9565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b60006002600054036106e25760405162461bcd60e51b815260040161051590611de1565b60026000556001600160a01b031982166107395760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b6044820152606401610515565b61074585858585610b6f565b600160005595945050505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906107ee908590611e18565b600060405180830381855afa9150503d8060008114610829576040519150601f19603f3d011682016040523d82523d6000602084013e61082e565b606091505b50915091508161088e5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610515565b805160c08190036108a55750600095945050505050565b80610100036108ba5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610515565b61090d838383610fdf565b61057b5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610515565b60006109538585611068565b90508160005b81811015610a2e57600183600087878581811061097857610978611e34565b905060200201602081019061098d9190611a2b565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877fe8c6a480cf8078bbde7a2a170b9529befe114a8195321d6bf92f6b68fb89a7c968185b1b1bdddb1a5cdd60ba1b8888868181106109fb576109fb611e34565b9050602002016020810190610a109190611a2b565b604051610a1e929190611e4a565b60405180910390a3600101610959565b50505050505050565b6000610a438585611068565b90508160005b81811015610a2e5760008381878785818110610a6757610a67611e34565b9050602002016020810190610a7c9190611a2b565b6001600160a01b0390811682526020820192909252604001600020805460ff1916921515929092179091558616877f4ed5eb89eec6de84efff2cf9c8e6cbe647fd33c5a50a11b5adfce0416660e74368185b1b1bdddb1a5cdd60ba1b888886818110610aea57610aea611e34565b9050602002016020810190610aff9190611a2b565b604051610b0d929190611e4a565b60405180910390a3600101610a49565b600080610b2a8484610e7e565b54610100900462ffffff16949350505050565b6000610b498484611068565b6001600160a01b0383166000908152602091909152604090205460ff1690509392505050565b6000610b7b8484611090565b6000610b8785856110c1565b905080341015610bd25760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610515565b610bdd858533611131565b6001600160a01b0319831615610c7c57604051630ea5613f60e01b8152600481018690526000906001600160a01b03861690630ea5613f9060240160c060405180830381865afa158015610c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c599190611e76565b505050505090506000610c6c8783611185565b9050610c7986828761119f565b50505b6040516117cd60e21b81526001600160a01b0387811660048301526024820187905285811660448301523360648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190611ed5565b91506001600160a01b0319831615610d3657610d36848385611273565b610d4082856112da565b610d4b858286611346565b50949350505050565b6000610d608484610ec9565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610dc08484610e7e565b8054909150610100900462ffffff161580156104e957505460ff16159392505050565b600080610df084846113f5565b915091506000610e008585610e7e565b9050610e0b82611473565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790610e6f9086815260200190565b60405180910390a35050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d7610ea2565b600080610efd85856113f5565b91509150808362ffffff161115610f265760405162461bcd60e51b815260040161051590611eee565b818362ffffff161015610f4b5760405162461bcd60e51b815260040161051590611eee565b6000610f578686610e7e565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b600080610fd38484610e7e565b5460ff16949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b9190611f1f565b6001600160a01b0316826001600160a01b03161490509392505050565b60007f5f5f7d55ae7db291f1eca23b4acd02eae7c41821923fc6251628a8d8de97d490610ea2565b600061109c8383610e7e565b805490915060ff161561057b5760405162461bcd60e51b815260040161051590611f3c565b6000806110ce8484610ec9565b8054909150600160f81b900460ff166111205760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610515565b546001600160f81b03169392505050565b61113c838383610b3d565b61057b5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920616c6c6f776c69737465642061646472657373657360301b6044820152606401610515565b600081611195620f424085611f83565b6104d39190611f9a565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156111df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112039190611f1f565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561125f57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b600061127f84846114db565b90506001600160a01b0319808216908316146104aa5760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610515565b60006112e583611547565b905060006112f38284610e7e565b8054909150620f4240850660010190610100900462ffffff168082111561132c5760405162461bcd60e51b815260040161051590611f3c565b80820361048b57825460ff19166001178355505050505050565b341561057b5760006113588334611fad565b905080156113ea57604051600090339083908381818185875af1925050503d80600081146113a2576040519150601f19603f3d011682016040523d82523d6000602084013e6113a7565b606091505b50509050806113e85760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610515565b505b6104aa848484611556565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114639190611e76565b5093989297509195505050505050565b600062ffffff8211156114d75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b6064820152608401610515565b5090565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190611fc0565b60006104d6620f424083611fdd565b8160000361156357505050565b600061156e82611717565b9050600080600080600080600080881561160c57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190611fff565b969e50949c50929a50909850965094509250905061168c565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167c9190612087565b949c50929a509096509450925090505b8a8285611699898c611f9a565b6116a39190611f9a565b6116ad9190611f9a565b146116f95760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610515565b61170986868a8a88888888611765565b505050505050505050505050565b60008061172383610753565b8054909150610100900460ff161561173f575460ff1692915050565b600061174a8461078c565b825481151561ffff1990911617610100179092555092915050565b8715611810576000876001600160a01b03168960405160006040518083038185875af1925050503d80600081146117b8576040519150601f19603f3d011682016040523d82523d6000602084013e6117bd565b606091505b505090508061180e5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610515565b505b85156118bb576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611863576040519150601f19603f3d011682016040523d82523d6000602084013e611868565b606091505b50509050806118b95760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610515565b505b831561195e576000836001600160a01b03168560405160006040518083038185875af1925050503d806000811461190e576040519150601f19603f3d011682016040523d82523d6000602084013e611913565b606091505b505090508061195c5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610515565b505b8115611a09576000816001600160a01b03168360405160006040518083038185875af1925050503d80600081146119b1576040519150601f19603f3d011682016040523d82523d6000602084013e6119b6565b606091505b5050905080611a075760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610515565b505b5050505050505050565b6001600160a01b0381168114611a2857600080fd5b50565b600060208284031215611a3d57600080fd5b813561046181611a13565b60008083601f840112611a5a57600080fd5b5081356001600160401b03811115611a7157600080fd5b6020830191508360208260051b8501011115611a8c57600080fd5b9250929050565b60008060008060008060808789031215611aac57600080fd5b863595506020870135611abe81611a13565b945060408701356001600160401b0380821115611ada57600080fd5b611ae68a838b01611a48565b90965094506060890135915080821115611aff57600080fd5b50611b0c89828a01611a48565b979a9699509497509295939492505050565b60008060008060608587031215611b3457600080fd5b843593506020850135611b4681611a13565b925060408501356001600160401b03811115611b6157600080fd5b611b6d87828801611a48565b95989497509550505050565b60008060408385031215611b8c57600080fd5b823591506020830135611b9e81611a13565b809150509250929050565b600080600060608486031215611bbe57600080fd5b833592506020840135611bd081611a13565b91506040840135611be081611a13565b809150509250925092565b600080600060608486031215611c0057600080fd5b8335611c0b81611a13565b9250602084013591506040840135611be081611a13565b600080600060608486031215611c3757600080fd5b833592506020840135611c4981611a13565b915060408401356001600160f81b0381168114611be057600080fd5b6001600160a01b031981168114611a2857600080fd5b600080600060608486031215611c9057600080fd5b833592506020840135611ca281611a13565b91506040840135611be081611c65565b600080600060608486031215611cc757600080fd5b833592506020840135611cd981611a13565b9150604084013562ffffff81168114611be057600080fd5b60005b83811015611d0c578181015183820152602001611cf4565b50506000910152565b60008151808452611d2d816020860160208601611cf1565b601f01601f19169290920160200192915050565b6020815260006104d36020830184611d15565b8415158152836020820152608060408201526000611d756080830185611d15565b905060018060a01b038316606083015295945050505050565b60008060008060808587031215611da457600080fd5b8435611daf81611a13565b9350602085013592506040850135611dc681611a13565b91506060850135611dd681611c65565b939692955090935050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008251611e2a818460208701611cf1565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b9182526001600160a01b0316602082015260400190565b80518015158114611e7157600080fd5b919050565b60008060008060008060c08789031215611e8f57600080fd5b8651955060208701519450611ea660408801611e61565b9350611eb460608801611e61565b925060808701519150611ec960a08801611e61565b90509295509295509295565b600060208284031215611ee757600080fd5b5051919050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600060208284031215611f3157600080fd5b815161046181611a13565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104d6576104d6611f6d565b808201808211156104d6576104d6611f6d565b818103818111156104d6576104d6611f6d565b600060208284031215611fd257600080fd5b815161046181611c65565b600082611ffa57634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b03121561201c57600080fd5b88519750602089015161202e81611a13565b60408a015160608b0151919850965061204681611a13565b60808a015160a08b0151919650945061205e81611a13565b60c08a015160e08b0151919450925061207681611a13565b809150509295985092959890939650565b60008060008060008060c087890312156120a057600080fd5b8651955060208701516120b281611a13565b6040880151606089015191965094506120ca81611a13565b608088015160a089015191945092506120e281611a13565b80915050929550929550929556fea2646970667358221220846712dd81c19853bb1cb9c8a447d86e26f9f3ef061f7f3d886705e5de1b774164736f6c63430008130033",
520
+ "linkReferences": {},
521
+ "deployedLinkReferences": {}
522
+ }