@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
@@ -136,6 +136,19 @@
136
136
  "name": "Abandoned",
137
137
  "type": "event"
138
138
  },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": false,
144
+ "internalType": "string",
145
+ "name": "defaultBaseURIHost",
146
+ "type": "string"
147
+ }
148
+ ],
149
+ "name": "DefaultBaseURIHostUpdated",
150
+ "type": "event"
151
+ },
139
152
  {
140
153
  "anonymous": false,
141
154
  "inputs": [
@@ -612,13 +625,26 @@
612
625
  "stateMutability": "nonpayable",
613
626
  "type": "function"
614
627
  },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "string",
632
+ "name": "_defaultBaseURIHost",
633
+ "type": "string"
634
+ }
635
+ ],
636
+ "name": "updateDefaultBaseURIHost",
637
+ "outputs": [],
638
+ "stateMutability": "nonpayable",
639
+ "type": "function"
640
+ },
615
641
  {
616
642
  "stateMutability": "payable",
617
643
  "type": "receive"
618
644
  }
619
645
  ],
620
- "bytecode": "0x6101006040523480156200001257600080fd5b5060405162002fe538038062002fe583398101604081905262000035916200049f565b826001600160a01b0381166200006657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000071816200030f565b506200007d866200035f565b62000088856200035f565b62000093846200035f565b6200009e836200035f565b6001620000ac8382620005cd565b506001600160a01b03808716608081905286821660a05290851660c052604080516315c8b5b360e31b8152905163ae45ad98916004808201926000929091908290030181865afa15801562000105573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200012f919081019062000699565b6002906200013e9082620005cd565b506080516001600160a01b0316634e1d64af6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000180573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001aa919081019062000699565b600390620001b99082620005cd565b5060a0516001600160a01b031663ae45ad986040518163ffffffff1660e01b8152600401600060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000225919081019062000699565b600490620002349082620005cd565b5060a0516001600160a01b0316634e1d64af6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000276573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002a0919081019062000699565b600590620002af9082620005cd565b506001600160a01b0380821660e0526040516e0456e67696e65466163746f7279563608c1b9187811691908916907f8a667a762c6b11836243ef58bb98850c7a4210d0226eb030bb2e03e3b7cc01e390600090a4505050505050620006d9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620003b75760405162461bcd60e51b815260206004820152601b60248201527f4d75737420696e707574206e6f6e2d7a65726f2061646472657373000000000060448201526064016200005d565b50565b80516001600160a01b0381168114620003d257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003ff57600080fd5b81516001600160401b03808211156200041c576200041c620003d7565b604051601f8301601f19908116603f01168101908282118183101715620004475762000447620003d7565b81604052838152602092508660208588010111156200046557600080fd5b600091505b838210156200048957858201830151818301840152908201906200046a565b6000602085830101528094505050505092915050565b60008060008060008060c08789031215620004b957600080fd5b620004c487620003ba565b9550620004d460208801620003ba565b9450620004e460408801620003ba565b9350620004f460608801620003ba565b60808801519093506001600160401b038111156200051157600080fd5b6200051f89828a01620003ed565b9250506200053060a08801620003ba565b90509295509295509295565b600181811c908216806200055157607f821691505b6020821081036200057257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005c8576000816000526020600020601f850160051c81016020861015620005a35750805b601f850160051c820191505b81811015620005c457828155600101620005af565b5050505b505050565b81516001600160401b03811115620005e957620005e9620003d7565b6200060181620005fa84546200053c565b8462000578565b602080601f831160018114620006395760008415620006205750858301515b600019600386901b1c1916600185901b178555620005c4565b600085815260208120601f198616915b828110156200066a5788860151825594840194600190910190840162000649565b5085821015620006895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006ac57600080fd5b81516001600160401b03811115620006c357600080fd5b620006d184828501620003ed565b949350505050565b60805160a05160c05160e05161289362000752600039600081816103b70152610a1501526000818161024d015281816105720152818161061901528181610bcb0152611006015260008181610412015281816109910152610f490152600081816101aa015281816109b80152610f7001526128936000f3fe6080604052600436106200012c5760003560e01c806310a2e110146200013957806324377e9f146200016957806328d6edbf14620001965780634e93d7e514620001db57806366a2d9b014620002025780636bf3d05a1462000239578063715018a6146200026f5780637390bb5014620002875780637e56402f14620002ac5780638831883414620002d15780638da5cb5b14620002e95780638e6cee5214620003015780639f1dc8f814620003265780639fc08739146200033e578063af8181ff1462000373578063b8967f25146200038b578063d6f5560214620003a3578063e02878fd14620003d9578063f21e018c14620003fe578063f2fde38b1462000434578063f470c9911462000459578063f4ebf9e4146200047e578063fd24b937146200049657600080fd5b366200013457005b600080fd5b3480156200014657600080fd5b5062000151620004bb565b60405162000160919062001626565b60405180910390f35b3480156200017657600080fd5b50600654620001859060ff1681565b604051901515815260200162000160565b348015620001a357600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b60405162000160919062001648565b348015620001e857600080fd5b5062000200620001fa36600462001684565b62000551565b005b3480156200020f57600080fd5b506200022a6e0456e67696e65466163746f7279563608c1b81565b60405190815260200162000160565b3480156200024657600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156200027c57600080fd5b5062000200620005e0565b3480156200029457600080fd5b5062000200620002a6366004620016f2565b620005f8565b348015620002b957600080fd5b5062000200620002cb36600462001737565b6200068a565b348015620002de57600080fd5b506200020062000727565b348015620002f657600080fd5b50620001cc62000798565b3480156200030e57600080fd5b50620001cc6200032036600462001785565b620007a7565b3480156200033357600080fd5b506200015162000cb6565b3480156200034b57600080fd5b50620003636200035d366004620016f2565b62000cc5565b60405162000160929190620017f9565b3480156200038057600080fd5b506200015162000eb7565b3480156200039857600080fd5b506200015162000ec6565b348015620003b057600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b348015620003e657600080fd5b50620001cc620003f836600462001869565b62000ed5565b3480156200040b57600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156200044157600080fd5b50620002006200045336600462001684565b62000fa0565b3480156200046657600080fd5b50620002006200047836600462001896565b62000fe5565b3480156200048b57600080fd5b506200015162001083565b348015620004a357600080fd5b5062000200620004b536600462001684565b62001092565b60048054620004ca9062001939565b80601f0160208091040260200160405190810160405280929190818152602001828054620004f89062001939565b8015620005495780601f106200051d5761010080835404028352916020019162000549565b820191906000526020600020905b8154815290600101906020018083116200052b57829003601f168201915b505050505081565b6200055b62001142565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90620005a990849060040162001648565b600060405180830381600087803b158015620005c457600080fd5b505af1158015620005d9573d6000803e3d6000fd5b5050505050565b620005ea62001142565b620005f6600062001179565b565b6200060262001142565b604051631cdd23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906373748ec490620006529085908590600401620019c2565b600060405180830381600087803b1580156200066d57600080fd5b505af115801562000682573d6000803e3d6000fd5b505050505050565b6200069462001142565b6040516370a0823160e01b815282906000906001600160a01b038316906370a0823190620006c790309060040162001648565b602060405180830381865afa158015620006e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070b9190620019e0565b90508015620007215762000721828483620011c9565b50505050565b6200073162001142565b60065460ff1615620007605760405162461bcd60e51b81526004016200075790620019fa565b60405180910390fd5b6006805460ff191660011790556040517ffb03bbbb81551103a80dda8d3bda55d93637ca4a96390de3719644774bdf1e9890600090a1565b6000546001600160a01b031690565b6000620007b362001142565b60065460ff1615620007d95760405162461bcd60e51b81526004016200075790620019fa565b620007f5620007ef606086016040870162001684565b6200121d565b6200080b620007ef60c0860160a0870162001684565b816200081e576200081b62001273565b91505b6001600160a01b0383166200090b5762000843620007ef60a086016080870162001684565b6200087d60006200085362001273565b6040516200086460208201620015c4565b601f1982820381018352601f90910116604052620012d8565b6040805160008152602081019091529093506001600160a01b03841663377a7d1a620008b060a088016080890162001684565b836040518363ffffffff1660e01b8152600401620008d092919062001a3e565b600060405180830381600087803b158015620008eb57600080fd5b505af115801562000900573d6000803e3d6000fd5b505050505062000971565b60006200091f60a086016080870162001684565b6001600160a01b031614620009715760405162461bcd60e51b815260206004820152601760248201527641646d696e41434c20616c72656164792065786973747360481b604482015260640162000757565b60008086600181111562000989576200098962001a9c565b14620009b6577f0000000000000000000000000000000000000000000000000000000000000000620009d8565b7f00000000000000000000000000000000000000000000000000000000000000005b9050620009e6818462001363565b604051639549179560e01b81529092506001600160a01b0383169063954917959062000a3e90889088906001907f00000000000000000000000000000000000000000000000000000000000000009060040162001c03565b600060405180830381600087803b15801562000a5957600080fd5b505af115801562000a6e573d6000803e3d6000fd5b506000925082915081905088600181111562000a8e5762000a8e62001a9c565b1462000a9e576004600562000aa3565b600260035b805462000ab09062001939565b80601f016020809104026020016040519081016040528092919081815260200182805462000ade9062001939565b801562000b2f5780601f1062000b035761010080835404028352916020019162000b2f565b820191906000526020600020905b81548152906001019060200180831162000b1157829003601f168201915b50505050509150805462000b439062001939565b80601f016020809104026020016040519081016040528092919081815260200182805462000b719062001939565b801562000bc25780601f1062000b965761010080835404028352916020019162000bc2565b820191906000526020600020905b81548152906001019060200180831162000ba457829003601f168201915b505050505091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f889b3ed8562000c0484620013d2565b62000c0f86620013d2565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562000c5e57600080fd5b505af115801562000c73573d6000803e3d6000fd5b50506040516001600160a01b03871692507f72dba3aac69e7eadf1383243bbb649ff575d0d530bfecf3d33ef4a0cc0a77b8d9150600090a2505050949350505050565b60038054620004ca9062001939565b6000606062000cd362001142565b43915082806001600160401b0381111562000cf25762000cf262001a28565b60405190808252806020026020018201604052801562000d2757816020015b606081526020019060019003908162000d115790505b50915060005b8181101562000eae573686868381811062000d4c5762000d4c62001dd0565b905060200281019062000d60919062001de6565b905062000d71602082018262001684565b6001600160a01b03163b60000362000dd75762000d92602082018262001e07565b15905062000dd75760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642063616c6c206461746160781b604482015260640162000757565b60008062000de9602084018462001684565b6001600160a01b031662000e01602085018562001e07565b60405162000e1192919062001e50565b6000604051808303816000865af19150503d806000811462000e50576040519150601f19603f3d011682016040523d82523d6000602084013e62000e55565b606091505b509150915081819062000e7d5760405162461bcd60e51b815260040162000757919062001626565b508086858151811062000e945762000e9462001dd0565b602002602001018190525050505080600101905062000d2d565b50509250929050565b60018054620004ca9062001939565b60058054620004ca9062001939565b60008162000f265760405162461bcd60e51b815260206004820152601d60248201527f6e756c6c2073616c74203d2070736575646f72616e646f6d2061646472000000604482015260640162000757565b62000f97600084600181111562000f415762000f4162001a9c565b1462000f6e577f000000000000000000000000000000000000000000000000000000000000000062000f90565b7f00000000000000000000000000000000000000000000000000000000000000005b83620013f2565b90505b92915050565b62000faa62001142565b6001600160a01b03811662000fd7576000604051631e4fbdf760e01b815260040162000757919062001648565b62000fe28162001179565b50565b62000fef62001142565b60405163b3cdf53760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3cdf53790620010479089908990899089908990899060040162001e93565b600060405180830381600087803b1580156200106257600080fd5b505af115801562001077573d6000803e3d6000fd5b50505050505050505050565b60028054620004ca9062001939565b6200109c62001142565b4780156200113e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114620010f3576040519150601f19603f3d011682016040523d82523d6000602084013e620010f8565b606091505b50509050806200113c5760405162461bcd60e51b815260206004820152600e60248201526d14185e5b595b9d0819985a5b195960921b604482015260640162000757565b505b5050565b336200114d62000798565b6001600160a01b031614620005f6573360405163118cdaa760e01b815260040162000757919062001648565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526200113c90849062001453565b6001600160a01b03811662000fe25760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640162000757565b6007805460009182919082620012898362001ee2565b909155506040805160208082019390935242818301524360608083019190915230901b6001600160601b0319166080820152815180820360740181526094909101909152805191012092915050565b600083471015620013065760405163392efb2b60e21b81524760048201526024810185905260440162000757565b81516000036200132957604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166200135c57604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811662000f9a576040516330be1a3d60e21b815260040160405180910390fd5b805160009082908203620013e95750600092915050565b50506020015190565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c8201206078820152605560439091012060009062000f97565b60006200146a6001600160a01b03841683620014b5565b905080516000141580156200149257508080602001905181019062001490919062001f0a565b155b156200113c5782604051635274afe760e01b815260040162000757919062001648565b606062000f978383600084600080856001600160a01b03168486604051620014de919062001f2a565b60006040518083038185875af1925050503d80600081146200151d576040519150601f19603f3d011682016040523d82523d6000602084013e62001522565b606091505b5091509150620015348683836200153e565b9695505050505050565b606082620015575762001551826200159a565b6200135c565b81511580156200156f57506001600160a01b0384163b155b15620015925783604051639996b31560e01b815260040162000757919062001648565b50806200135c565b805115620015ab5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61091f8062001f3f83390190565b60005b83811015620015ef578181015183820152602001620015d5565b50506000910152565b6000815180845262001612816020860160208601620015d2565b601f01601f19169290920160200192915050565b60208152600062000f976020830184620015f8565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6001600160a01b038116811462000fe257600080fd5b80356200167f816200165c565b919050565b6000602082840312156200169757600080fd5b81356200135c816200165c565b60008083601f840112620016b757600080fd5b5081356001600160401b03811115620016cf57600080fd5b6020830191508360208260051b8501011115620016eb57600080fd5b9250929050565b600080602083850312156200170657600080fd5b82356001600160401b038111156200171d57600080fd5b6200172b85828601620016a4565b90969095509350505050565b600080604083850312156200174b57600080fd5b823562001758816200165c565b915060208301356200176a816200165c565b809150509250929050565b8035600281106200167f57600080fd5b600080600080608085870312156200179c57600080fd5b620017a78562001775565b935060208501356001600160401b03811115620017c357600080fd5b85016101808188031215620017d757600080fd5b92506040850135620017e9816200165c565b9396929550929360600135925050565b60006040820184835260206040602085015281855180845260608601915060608160051b87010193506020870160005b828110156200185b57605f1988870301845262001848868351620015f8565b9550928401929084019060010162001829565b509398975050505050505050565b600080604083850312156200187d57600080fd5b620018888362001775565b946020939093013593505050565b60008060008060008060608789031215620018b057600080fd5b86356001600160401b0380821115620018c857600080fd5b620018d68a838b01620016a4565b90985096506020890135915080821115620018f057600080fd5b620018fe8a838b01620016a4565b909650945060408901359150808211156200191857600080fd5b506200192789828a01620016a4565b979a9699509497509295939492505050565b600181811c908216806200194e57607f821691505b6020821081036200196f57634e487b7160e01b600052602260045260246000fd5b50919050565b8183526000602080850194508260005b85811015620019b75781356200199b816200165c565b6001600160a01b03168752958201959082019060010162001985565b509495945050505050565b602081526000620019d860208301848662001975565b949350505050565b600060208284031215620019f357600080fd5b5051919050565b602080825260149082015273199858dd1bdc9e481a5cc81858985b991bdb995960621b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b8181101562001a8e57855185168352948301949183019160010162001a6e565b509098975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e1984360301811262001aca57600080fd5b83016020810192503590506001600160401b0381111562001aea57600080fd5b803603821315620016eb57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356001600160f81b03811681146200167f57600080fd5b801515811462000fe257600080fd5b80356200167f8162001b3b565b8054600090600181811c908083168062001b7257607f831692505b6020808410820362001b9457634e487b7160e01b600052602260045260246000fd5b8388526020880182801562001bb2576001811462001bc95762001bf6565b60ff198716825285151560051b8201975062001bf6565b60008981526020902060005b8781101562001bf05781548482015290860190840162001bd5565b83019850505b5050505050505092915050565b60808152600062001c15868762001ab2565b61018080608086015262001c2f6102008601838562001afa565b925062001c4060208a018a62001ab2565b868503607f190160a0880152925062001c5b84848362001afa565b93505062001c6c60408a0162001672565b915062001c7d60c08601836200163b565b62001c8b60608a0162001672565b915062001c9c60e08601836200163b565b62001caa60808a0162001672565b915061010062001cbd818701846200163b565b62001ccb60a08b0162001672565b925061012062001cde818801856200163b565b62001cec60c08c0162001672565b935061014062001cff818901866200163b565b62001d0d60e08d0162001672565b945061016062001d20818a01876200163b565b62001d2d848e0162001b23565b6001600160f81b0381168a870152955062001d4a838e0162001b4a565b8015156101a08b0152955062001d62828e0162001b4a565b8015156101c08b0152955062001d7a818e0162001b4a565b9550505050505062001d916101e085018215159052565b5062001da160208401876200163b565b828103604084015262001db5818662001b57565b91505062001dc760608301846200163b565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811262001dfd57600080fd5b9190910192915050565b6000808335601e1984360301811262001e1f57600080fd5b8301803591506001600160401b0382111562001e3a57600080fd5b602001915036819003821315620016eb57600080fd5b8183823760009101908152919050565b81835260006001600160fb1b0383111562001e7a57600080fd5b8260051b80836020870137939093016020019392505050565b60608152600062001ea960608301888a62001975565b828103602084015262001ebe81878962001e60565b9050828103604084015262001ed581858762001e60565b9998505050505050505050565b60006001820162001f0357634e487b7160e01b600052601160045260246000fd5b5060010190565b60006020828403121562001f1d57600080fd5b81516200135c8162001b3b565b6000825162001dfd818460208701620015d256fe60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ef565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ae565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100ea576000816000526020600020601f850160051c810160208610156100c75750805b601f850160051c820191505b818110156100e6578281556001016100d3565b5050505b505050565b81516001600160401b038111156101085761010861004e565b61011c816101168454610064565b8461009e565b602080601f83116001811461015157600084156101395750858301515b600019600386901b1c1916600185901b1785556100e6565b600085815260208120601f198616915b8281101561018057888601518255948401946001909101908401610161565b508582101561019e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610762806101bd6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b6100856100803660046104a9565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104e2565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b6040516100919190610525565b6100f16100ec366004610539565b610180565b005b6100f16101013660046105be565b610218565b6100f16101143660046105d9565b610298565b6101216103fe565b604051610091919061060c565b60006001600160e01b03198216633001c1ef60e21b148061015f57506001600160e01b03198216631bbd3e8d60e11b145b8061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101b35760405162461bcd60e51b81526004016101aa9061065b565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b4759061020a9087908790610684565b60405180910390a350505050565b6001546001600160a01b031633146102425760405162461bcd60e51b81526004016101aa9061065b565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102c25760405162461bcd60e51b81526004016101aa9061065b565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033191906106d0565b61039c5760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b60648201526084016101aa565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103c8908490600401610525565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050505050565b6000805461040b906106f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610437906106f2565b80156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b80356001600160e01b0319811681146104a457600080fd5b919050565b6000602082840312156104bb57600080fd5b6104c48261048c565b9392505050565b80356001600160a01b03811681146104a457600080fd5b6000806000606084860312156104f757600080fd5b610500846104cb565b925061050e602085016104cb565b915061051c6040850161048c565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561054e57600080fd5b610557846104cb565b925060208401356001600160401b038082111561057357600080fd5b818601915086601f83011261058757600080fd5b81358181111561059657600080fd5b8760208260051b85010111156105ab57600080fd5b6020830194508093505050509250925092565b6000602082840312156105d057600080fd5b6104c4826104cb565b600080604083850312156105ec57600080fd5b6105f5836104cb565b9150610603602084016104cb565b90509250929050565b60006020808352835180602085015260005b8181101561063a5785810183015185820160400152820161061e565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106c5576001600160a01b036106b2846104cb565b1682529183019190830190600101610699565b509695505050505050565b6000602082840312156106e257600080fd5b815180151581146104c457600080fd5b600181811c9082168061070657607f821691505b60208210810361072657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220830f3c30ad4d14df1865965a76cbb302e6938979ee6e646e3a277a8abebb5fd164736f6c63430008160033a264697066735822122018b0c199d0ad6ab6445d6430d4d2930e2be1a5a60069e852ad7484a5893edda864736f6c63430008160033",
621
- "deployedBytecode": "0x6080604052600436106200012c5760003560e01c806310a2e110146200013957806324377e9f146200016957806328d6edbf14620001965780634e93d7e514620001db57806366a2d9b014620002025780636bf3d05a1462000239578063715018a6146200026f5780637390bb5014620002875780637e56402f14620002ac5780638831883414620002d15780638da5cb5b14620002e95780638e6cee5214620003015780639f1dc8f814620003265780639fc08739146200033e578063af8181ff1462000373578063b8967f25146200038b578063d6f5560214620003a3578063e02878fd14620003d9578063f21e018c14620003fe578063f2fde38b1462000434578063f470c9911462000459578063f4ebf9e4146200047e578063fd24b937146200049657600080fd5b366200013457005b600080fd5b3480156200014657600080fd5b5062000151620004bb565b60405162000160919062001626565b60405180910390f35b3480156200017657600080fd5b50600654620001859060ff1681565b604051901515815260200162000160565b348015620001a357600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b60405162000160919062001648565b348015620001e857600080fd5b5062000200620001fa36600462001684565b62000551565b005b3480156200020f57600080fd5b506200022a6e0456e67696e65466163746f7279563608c1b81565b60405190815260200162000160565b3480156200024657600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156200027c57600080fd5b5062000200620005e0565b3480156200029457600080fd5b5062000200620002a6366004620016f2565b620005f8565b348015620002b957600080fd5b5062000200620002cb36600462001737565b6200068a565b348015620002de57600080fd5b506200020062000727565b348015620002f657600080fd5b50620001cc62000798565b3480156200030e57600080fd5b50620001cc6200032036600462001785565b620007a7565b3480156200033357600080fd5b506200015162000cb6565b3480156200034b57600080fd5b50620003636200035d366004620016f2565b62000cc5565b60405162000160929190620017f9565b3480156200038057600080fd5b506200015162000eb7565b3480156200039857600080fd5b506200015162000ec6565b348015620003b057600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b348015620003e657600080fd5b50620001cc620003f836600462001869565b62000ed5565b3480156200040b57600080fd5b50620001cc7f000000000000000000000000000000000000000000000000000000000000000081565b3480156200044157600080fd5b50620002006200045336600462001684565b62000fa0565b3480156200046657600080fd5b50620002006200047836600462001896565b62000fe5565b3480156200048b57600080fd5b506200015162001083565b348015620004a357600080fd5b5062000200620004b536600462001684565b62001092565b60048054620004ca9062001939565b80601f0160208091040260200160405190810160405280929190818152602001828054620004f89062001939565b8015620005495780601f106200051d5761010080835404028352916020019162000549565b820191906000526020600020905b8154815290600101906020018083116200052b57829003601f168201915b505050505081565b6200055b62001142565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90620005a990849060040162001648565b600060405180830381600087803b158015620005c457600080fd5b505af1158015620005d9573d6000803e3d6000fd5b5050505050565b620005ea62001142565b620005f6600062001179565b565b6200060262001142565b604051631cdd23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906373748ec490620006529085908590600401620019c2565b600060405180830381600087803b1580156200066d57600080fd5b505af115801562000682573d6000803e3d6000fd5b505050505050565b6200069462001142565b6040516370a0823160e01b815282906000906001600160a01b038316906370a0823190620006c790309060040162001648565b602060405180830381865afa158015620006e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070b9190620019e0565b90508015620007215762000721828483620011c9565b50505050565b6200073162001142565b60065460ff1615620007605760405162461bcd60e51b81526004016200075790620019fa565b60405180910390fd5b6006805460ff191660011790556040517ffb03bbbb81551103a80dda8d3bda55d93637ca4a96390de3719644774bdf1e9890600090a1565b6000546001600160a01b031690565b6000620007b362001142565b60065460ff1615620007d95760405162461bcd60e51b81526004016200075790620019fa565b620007f5620007ef606086016040870162001684565b6200121d565b6200080b620007ef60c0860160a0870162001684565b816200081e576200081b62001273565b91505b6001600160a01b0383166200090b5762000843620007ef60a086016080870162001684565b6200087d60006200085362001273565b6040516200086460208201620015c4565b601f1982820381018352601f90910116604052620012d8565b6040805160008152602081019091529093506001600160a01b03841663377a7d1a620008b060a088016080890162001684565b836040518363ffffffff1660e01b8152600401620008d092919062001a3e565b600060405180830381600087803b158015620008eb57600080fd5b505af115801562000900573d6000803e3d6000fd5b505050505062000971565b60006200091f60a086016080870162001684565b6001600160a01b031614620009715760405162461bcd60e51b815260206004820152601760248201527641646d696e41434c20616c72656164792065786973747360481b604482015260640162000757565b60008086600181111562000989576200098962001a9c565b14620009b6577f0000000000000000000000000000000000000000000000000000000000000000620009d8565b7f00000000000000000000000000000000000000000000000000000000000000005b9050620009e6818462001363565b604051639549179560e01b81529092506001600160a01b0383169063954917959062000a3e90889088906001907f00000000000000000000000000000000000000000000000000000000000000009060040162001c03565b600060405180830381600087803b15801562000a5957600080fd5b505af115801562000a6e573d6000803e3d6000fd5b506000925082915081905088600181111562000a8e5762000a8e62001a9c565b1462000a9e576004600562000aa3565b600260035b805462000ab09062001939565b80601f016020809104026020016040519081016040528092919081815260200182805462000ade9062001939565b801562000b2f5780601f1062000b035761010080835404028352916020019162000b2f565b820191906000526020600020905b81548152906001019060200180831162000b1157829003601f168201915b50505050509150805462000b439062001939565b80601f016020809104026020016040519081016040528092919081815260200182805462000b719062001939565b801562000bc25780601f1062000b965761010080835404028352916020019162000bc2565b820191906000526020600020905b81548152906001019060200180831162000ba457829003601f168201915b505050505091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f889b3ed8562000c0484620013d2565b62000c0f86620013d2565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562000c5e57600080fd5b505af115801562000c73573d6000803e3d6000fd5b50506040516001600160a01b03871692507f72dba3aac69e7eadf1383243bbb649ff575d0d530bfecf3d33ef4a0cc0a77b8d9150600090a2505050949350505050565b60038054620004ca9062001939565b6000606062000cd362001142565b43915082806001600160401b0381111562000cf25762000cf262001a28565b60405190808252806020026020018201604052801562000d2757816020015b606081526020019060019003908162000d115790505b50915060005b8181101562000eae573686868381811062000d4c5762000d4c62001dd0565b905060200281019062000d60919062001de6565b905062000d71602082018262001684565b6001600160a01b03163b60000362000dd75762000d92602082018262001e07565b15905062000dd75760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642063616c6c206461746160781b604482015260640162000757565b60008062000de9602084018462001684565b6001600160a01b031662000e01602085018562001e07565b60405162000e1192919062001e50565b6000604051808303816000865af19150503d806000811462000e50576040519150601f19603f3d011682016040523d82523d6000602084013e62000e55565b606091505b509150915081819062000e7d5760405162461bcd60e51b815260040162000757919062001626565b508086858151811062000e945762000e9462001dd0565b602002602001018190525050505080600101905062000d2d565b50509250929050565b60018054620004ca9062001939565b60058054620004ca9062001939565b60008162000f265760405162461bcd60e51b815260206004820152601d60248201527f6e756c6c2073616c74203d2070736575646f72616e646f6d2061646472000000604482015260640162000757565b62000f97600084600181111562000f415762000f4162001a9c565b1462000f6e577f000000000000000000000000000000000000000000000000000000000000000062000f90565b7f00000000000000000000000000000000000000000000000000000000000000005b83620013f2565b90505b92915050565b62000faa62001142565b6001600160a01b03811662000fd7576000604051631e4fbdf760e01b815260040162000757919062001648565b62000fe28162001179565b50565b62000fef62001142565b60405163b3cdf53760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3cdf53790620010479089908990899089908990899060040162001e93565b600060405180830381600087803b1580156200106257600080fd5b505af115801562001077573d6000803e3d6000fd5b50505050505050505050565b60028054620004ca9062001939565b6200109c62001142565b4780156200113e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114620010f3576040519150601f19603f3d011682016040523d82523d6000602084013e620010f8565b606091505b50509050806200113c5760405162461bcd60e51b815260206004820152600e60248201526d14185e5b595b9d0819985a5b195960921b604482015260640162000757565b505b5050565b336200114d62000798565b6001600160a01b031614620005f6573360405163118cdaa760e01b815260040162000757919062001648565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526200113c90849062001453565b6001600160a01b03811662000fe25760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640162000757565b6007805460009182919082620012898362001ee2565b909155506040805160208082019390935242818301524360608083019190915230901b6001600160601b0319166080820152815180820360740181526094909101909152805191012092915050565b600083471015620013065760405163392efb2b60e21b81524760048201526024810185905260440162000757565b81516000036200132957604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166200135c57604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811662000f9a576040516330be1a3d60e21b815260040160405180910390fd5b805160009082908203620013e95750600092915050565b50506020015190565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c8201206078820152605560439091012060009062000f97565b60006200146a6001600160a01b03841683620014b5565b905080516000141580156200149257508080602001905181019062001490919062001f0a565b155b156200113c5782604051635274afe760e01b815260040162000757919062001648565b606062000f978383600084600080856001600160a01b03168486604051620014de919062001f2a565b60006040518083038185875af1925050503d80600081146200151d576040519150601f19603f3d011682016040523d82523d6000602084013e62001522565b606091505b5091509150620015348683836200153e565b9695505050505050565b606082620015575762001551826200159a565b6200135c565b81511580156200156f57506001600160a01b0384163b155b15620015925783604051639996b31560e01b815260040162000757919062001648565b50806200135c565b805115620015ab5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61091f8062001f3f83390190565b60005b83811015620015ef578181015183820152602001620015d5565b50506000910152565b6000815180845262001612816020860160208601620015d2565b601f01601f19169290920160200192915050565b60208152600062000f976020830184620015f8565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6001600160a01b038116811462000fe257600080fd5b80356200167f816200165c565b919050565b6000602082840312156200169757600080fd5b81356200135c816200165c565b60008083601f840112620016b757600080fd5b5081356001600160401b03811115620016cf57600080fd5b6020830191508360208260051b8501011115620016eb57600080fd5b9250929050565b600080602083850312156200170657600080fd5b82356001600160401b038111156200171d57600080fd5b6200172b85828601620016a4565b90969095509350505050565b600080604083850312156200174b57600080fd5b823562001758816200165c565b915060208301356200176a816200165c565b809150509250929050565b8035600281106200167f57600080fd5b600080600080608085870312156200179c57600080fd5b620017a78562001775565b935060208501356001600160401b03811115620017c357600080fd5b85016101808188031215620017d757600080fd5b92506040850135620017e9816200165c565b9396929550929360600135925050565b60006040820184835260206040602085015281855180845260608601915060608160051b87010193506020870160005b828110156200185b57605f1988870301845262001848868351620015f8565b9550928401929084019060010162001829565b509398975050505050505050565b600080604083850312156200187d57600080fd5b620018888362001775565b946020939093013593505050565b60008060008060008060608789031215620018b057600080fd5b86356001600160401b0380821115620018c857600080fd5b620018d68a838b01620016a4565b90985096506020890135915080821115620018f057600080fd5b620018fe8a838b01620016a4565b909650945060408901359150808211156200191857600080fd5b506200192789828a01620016a4565b979a9699509497509295939492505050565b600181811c908216806200194e57607f821691505b6020821081036200196f57634e487b7160e01b600052602260045260246000fd5b50919050565b8183526000602080850194508260005b85811015620019b75781356200199b816200165c565b6001600160a01b03168752958201959082019060010162001985565b509495945050505050565b602081526000620019d860208301848662001975565b949350505050565b600060208284031215620019f357600080fd5b5051919050565b602080825260149082015273199858dd1bdc9e481a5cc81858985b991bdb995960621b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b8181101562001a8e57855185168352948301949183019160010162001a6e565b509098975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e1984360301811262001aca57600080fd5b83016020810192503590506001600160401b0381111562001aea57600080fd5b803603821315620016eb57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356001600160f81b03811681146200167f57600080fd5b801515811462000fe257600080fd5b80356200167f8162001b3b565b8054600090600181811c908083168062001b7257607f831692505b6020808410820362001b9457634e487b7160e01b600052602260045260246000fd5b8388526020880182801562001bb2576001811462001bc95762001bf6565b60ff198716825285151560051b8201975062001bf6565b60008981526020902060005b8781101562001bf05781548482015290860190840162001bd5565b83019850505b5050505050505092915050565b60808152600062001c15868762001ab2565b61018080608086015262001c2f6102008601838562001afa565b925062001c4060208a018a62001ab2565b868503607f190160a0880152925062001c5b84848362001afa565b93505062001c6c60408a0162001672565b915062001c7d60c08601836200163b565b62001c8b60608a0162001672565b915062001c9c60e08601836200163b565b62001caa60808a0162001672565b915061010062001cbd818701846200163b565b62001ccb60a08b0162001672565b925061012062001cde818801856200163b565b62001cec60c08c0162001672565b935061014062001cff818901866200163b565b62001d0d60e08d0162001672565b945061016062001d20818a01876200163b565b62001d2d848e0162001b23565b6001600160f81b0381168a870152955062001d4a838e0162001b4a565b8015156101a08b0152955062001d62828e0162001b4a565b8015156101c08b0152955062001d7a818e0162001b4a565b9550505050505062001d916101e085018215159052565b5062001da160208401876200163b565b828103604084015262001db5818662001b57565b91505062001dc760608301846200163b565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811262001dfd57600080fd5b9190910192915050565b6000808335601e1984360301811262001e1f57600080fd5b8301803591506001600160401b0382111562001e3a57600080fd5b602001915036819003821315620016eb57600080fd5b8183823760009101908152919050565b81835260006001600160fb1b0383111562001e7a57600080fd5b8260051b80836020870137939093016020019392505050565b60608152600062001ea960608301888a62001975565b828103602084015262001ebe81878962001e60565b9050828103604084015262001ed581858762001e60565b9998505050505050505050565b60006001820162001f0357634e487b7160e01b600052601160045260246000fd5b5060010190565b60006020828403121562001f1d57600080fd5b81516200135c8162001b3b565b6000825162001dfd818460208701620015d256fe60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ef565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ae565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100ea576000816000526020600020601f850160051c810160208610156100c75750805b601f850160051c820191505b818110156100e6578281556001016100d3565b5050505b505050565b81516001600160401b038111156101085761010861004e565b61011c816101168454610064565b8461009e565b602080601f83116001811461015157600084156101395750858301515b600019600386901b1c1916600185901b1785556100e6565b600085815260208120601f198616915b8281101561018057888601518255948401946001909101908401610161565b508582101561019e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610762806101bd6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b6100856100803660046104a9565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104e2565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b6040516100919190610525565b6100f16100ec366004610539565b610180565b005b6100f16101013660046105be565b610218565b6100f16101143660046105d9565b610298565b6101216103fe565b604051610091919061060c565b60006001600160e01b03198216633001c1ef60e21b148061015f57506001600160e01b03198216631bbd3e8d60e11b145b8061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101b35760405162461bcd60e51b81526004016101aa9061065b565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b4759061020a9087908790610684565b60405180910390a350505050565b6001546001600160a01b031633146102425760405162461bcd60e51b81526004016101aa9061065b565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102c25760405162461bcd60e51b81526004016101aa9061065b565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033191906106d0565b61039c5760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b60648201526084016101aa565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103c8908490600401610525565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050505050565b6000805461040b906106f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610437906106f2565b80156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b80356001600160e01b0319811681146104a457600080fd5b919050565b6000602082840312156104bb57600080fd5b6104c48261048c565b9392505050565b80356001600160a01b03811681146104a457600080fd5b6000806000606084860312156104f757600080fd5b610500846104cb565b925061050e602085016104cb565b915061051c6040850161048c565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561054e57600080fd5b610557846104cb565b925060208401356001600160401b038082111561057357600080fd5b818601915086601f83011261058757600080fd5b81358181111561059657600080fd5b8760208260051b85010111156105ab57600080fd5b6020830194508093505050509250925092565b6000602082840312156105d057600080fd5b6104c4826104cb565b600080604083850312156105ec57600080fd5b6105f5836104cb565b9150610603602084016104cb565b90509250929050565b60006020808352835180602085015260005b8181101561063a5785810183015185820160400152820161061e565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106c5576001600160a01b036106b2846104cb565b1682529183019190830190600101610699565b509695505050505050565b6000602082840312156106e257600080fd5b815180151581146104c457600080fd5b600181811c9082168061070657607f821691505b60208210810361072657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220830f3c30ad4d14df1865965a76cbb302e6938979ee6e646e3a277a8abebb5fd164736f6c63430008160033a264697066735822122018b0c199d0ad6ab6445d6430d4d2930e2be1a5a60069e852ad7484a5893edda864736f6c63430008160033",
646
+ "bytecode": "0x6101006040523480156200001257600080fd5b50604051620032623803806200326283398101604081905262000035916200049f565b826001600160a01b0381166200006657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000071816200030f565b506200007d866200035f565b62000088856200035f565b62000093846200035f565b6200009e836200035f565b6001620000ac8382620005cd565b506001600160a01b03808716608081905286821660a05290851660c052604080516315c8b5b360e31b8152905163ae45ad98916004808201926000929091908290030181865afa15801562000105573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200012f919081019062000699565b6002906200013e9082620005cd565b506080516001600160a01b0316634e1d64af6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000180573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001aa919081019062000699565b600390620001b99082620005cd565b5060a0516001600160a01b031663ae45ad986040518163ffffffff1660e01b8152600401600060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000225919081019062000699565b600490620002349082620005cd565b5060a0516001600160a01b0316634e1d64af6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000276573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002a0919081019062000699565b600590620002af9082620005cd565b506001600160a01b0380821660e0526040516e0456e67696e65466163746f7279563608c1b9187811691908916907f8a667a762c6b11836243ef58bb98850c7a4210d0226eb030bb2e03e3b7cc01e390600090a4505050505050620006d9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620003b75760405162461bcd60e51b815260206004820152601b60248201527f4d75737420696e707574206e6f6e2d7a65726f2061646472657373000000000060448201526064016200005d565b50565b80516001600160a01b0381168114620003d257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003ff57600080fd5b81516001600160401b03808211156200041c576200041c620003d7565b604051601f8301601f19908116603f01168101908282118183101715620004475762000447620003d7565b81604052838152602092508660208588010111156200046557600080fd5b600091505b838210156200048957858201830151818301840152908201906200046a565b6000602085830101528094505050505092915050565b60008060008060008060c08789031215620004b957600080fd5b620004c487620003ba565b9550620004d460208801620003ba565b9450620004e460408801620003ba565b9350620004f460608801620003ba565b60808801519093506001600160401b038111156200051157600080fd5b6200051f89828a01620003ed565b9250506200053060a08801620003ba565b90509295509295509295565b600181811c908216806200055157607f821691505b6020821081036200057257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005c8576000816000526020600020601f850160051c81016020861015620005a35750805b601f850160051c820191505b81811015620005c457828155600101620005af565b5050505b505050565b81516001600160401b03811115620005e957620005e9620003d7565b6200060181620005fa84546200053c565b8462000578565b602080601f831160018114620006395760008415620006205750858301515b600019600386901b1c1916600185901b178555620005c4565b600085815260208120601f198616915b828110156200066a5788860151825594840194600190910190840162000649565b5085821015620006895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006ac57600080fd5b81516001600160401b03811115620006c357600080fd5b620006d184828501620003ed565b949350505050565b60805160a05160c05160e051612b1062000752600039600081816103e80152610ae701526000818161027e0152818161064d015281816106f401528181610c9d01526110d801526000818161044301528181610a63015261101b0152600081816101b601528181610a8a01526110420152612b106000f3fe608060405260043610620001385760003560e01c806310a2e110146200014557806324377e9f146200017557806328d6edbf14620001a25780633d865a1214620001e75780634e93d7e5146200020e57806366a2d9b014620002335780636bf3d05a146200026a578063715018a614620002a05780637390bb5014620002b85780637e56402f14620002dd5780638831883414620003025780638da5cb5b146200031a5780638e6cee5214620003325780639f1dc8f814620003575780639fc08739146200036f578063af8181ff14620003a4578063b8967f2514620003bc578063d6f5560214620003d4578063e02878fd146200040a578063f21e018c146200042f578063f2fde38b1462000465578063f470c991146200048a578063f4ebf9e414620004af578063fd24b93714620004c757600080fd5b366200014057005b600080fd5b3480156200015257600080fd5b506200015d620004ec565b6040516200016c9190620016f8565b60405180910390f35b3480156200018257600080fd5b50600654620001919060ff1681565b60405190151581526020016200016c565b348015620001af57600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516200016c91906200171a565b348015620001f457600080fd5b506200020c6200020636600462001744565b62000582565b005b3480156200021b57600080fd5b506200020c6200022d36600462001826565b6200062c565b3480156200024057600080fd5b506200025b6e0456e67696e65466163746f7279563608c1b81565b6040519081526020016200016c565b3480156200027757600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b348015620002ad57600080fd5b506200020c620006bb565b348015620002c557600080fd5b506200020c620002d736600462001894565b620006d3565b348015620002ea57600080fd5b506200020c620002fc366004620018d9565b62000765565b3480156200030f57600080fd5b506200020c62000802565b3480156200032757600080fd5b50620001d86200086a565b3480156200033f57600080fd5b50620001d86200035136600462001927565b62000879565b3480156200036457600080fd5b506200015d62000d88565b3480156200037c57600080fd5b50620003946200038e36600462001894565b62000d97565b6040516200016c9291906200199b565b348015620003b157600080fd5b506200015d62000f89565b348015620003c957600080fd5b506200015d62000f98565b348015620003e157600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156200041757600080fd5b50620001d86200042936600462001a0b565b62000fa7565b3480156200043c57600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156200047257600080fd5b506200020c6200048436600462001826565b62001072565b3480156200049757600080fd5b506200020c620004a936600462001a38565b620010b7565b348015620004bc57600080fd5b506200015d62001155565b348015620004d457600080fd5b506200020c620004e636600462001826565b62001164565b60048054620004fb9062001adb565b80601f0160208091040260200160405190810160405280929190818152602001828054620005299062001adb565b80156200057a5780601f106200054e576101008083540402835291602001916200057a565b820191906000526020600020905b8154815290600101906020018083116200055c57829003601f168201915b505050505081565b6200058c62001214565b6000815111620005e15760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b60448201526064015b60405180910390fd5b6001620005ef828262001b63565b507f0ac41bf811c14b80cae964fe9d5641cc8a787fa7f4cc9d661caa00d2fbe60b4581604051620006219190620016f8565b60405180910390a150565b6200063662001214565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90620006849084906004016200171a565b600060405180830381600087803b1580156200069f57600080fd5b505af1158015620006b4573d6000803e3d6000fd5b5050505050565b620006c562001214565b620006d160006200124b565b565b620006dd62001214565b604051631cdd23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906373748ec4906200072d908590859060040162001c7c565b600060405180830381600087803b1580156200074857600080fd5b505af11580156200075d573d6000803e3d6000fd5b505050505050565b6200076f62001214565b6040516370a0823160e01b815282906000906001600160a01b038316906370a0823190620007a29030906004016200171a565b602060405180830381865afa158015620007c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e6919062001c9a565b90508015620007fc57620007fc8284836200129b565b50505050565b6200080c62001214565b60065460ff1615620008325760405162461bcd60e51b8152600401620005d89062001cb4565b6006805460ff191660011790556040517ffb03bbbb81551103a80dda8d3bda55d93637ca4a96390de3719644774bdf1e9890600090a1565b6000546001600160a01b031690565b60006200088562001214565b60065460ff1615620008ab5760405162461bcd60e51b8152600401620005d89062001cb4565b620008c7620008c1606086016040870162001826565b620012ef565b620008dd620008c160c0860160a0870162001826565b81620008f057620008ed62001345565b91505b6001600160a01b038316620009dd5762000915620008c160a086016080870162001826565b6200094f60006200092562001345565b604051620009366020820162001696565b601f1982820381018352601f90910116604052620013aa565b6040805160008152602081019091529093506001600160a01b03841663377a7d1a6200098260a088016080890162001826565b836040518363ffffffff1660e01b8152600401620009a292919062001ce2565b600060405180830381600087803b158015620009bd57600080fd5b505af1158015620009d2573d6000803e3d6000fd5b505050505062000a43565b6000620009f160a086016080870162001826565b6001600160a01b03161462000a435760405162461bcd60e51b815260206004820152601760248201527641646d696e41434c20616c72656164792065786973747360481b6044820152606401620005d8565b60008086600181111562000a5b5762000a5b62001d40565b1462000a88577f000000000000000000000000000000000000000000000000000000000000000062000aaa565b7f00000000000000000000000000000000000000000000000000000000000000005b905062000ab8818462001435565b604051639549179560e01b81529092506001600160a01b0383169063954917959062000b1090889088906001907f00000000000000000000000000000000000000000000000000000000000000009060040162001e80565b600060405180830381600087803b15801562000b2b57600080fd5b505af115801562000b40573d6000803e3d6000fd5b506000925082915081905088600181111562000b605762000b6062001d40565b1462000b70576004600562000b75565b600260035b805462000b829062001adb565b80601f016020809104026020016040519081016040528092919081815260200182805462000bb09062001adb565b801562000c015780601f1062000bd55761010080835404028352916020019162000c01565b820191906000526020600020905b81548152906001019060200180831162000be357829003601f168201915b50505050509150805462000c159062001adb565b80601f016020809104026020016040519081016040528092919081815260200182805462000c439062001adb565b801562000c945780601f1062000c685761010080835404028352916020019162000c94565b820191906000526020600020905b81548152906001019060200180831162000c7657829003601f168201915b505050505091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f889b3ed8562000cd684620014a4565b62000ce186620014a4565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562000d3057600080fd5b505af115801562000d45573d6000803e3d6000fd5b50506040516001600160a01b03871692507f72dba3aac69e7eadf1383243bbb649ff575d0d530bfecf3d33ef4a0cc0a77b8d9150600090a2505050949350505050565b60038054620004fb9062001adb565b6000606062000da562001214565b43915082806001600160401b0381111562000dc45762000dc46200172e565b60405190808252806020026020018201604052801562000df957816020015b606081526020019060019003908162000de35790505b50915060005b8181101562000f80573686868381811062000e1e5762000e1e6200204d565b905060200281019062000e32919062002063565b905062000e43602082018262001826565b6001600160a01b03163b60000362000ea95762000e64602082018262002084565b15905062000ea95760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642063616c6c206461746160781b6044820152606401620005d8565b60008062000ebb602084018462001826565b6001600160a01b031662000ed3602085018562002084565b60405162000ee3929190620020cd565b6000604051808303816000865af19150503d806000811462000f22576040519150601f19603f3d011682016040523d82523d6000602084013e62000f27565b606091505b509150915081819062000f4f5760405162461bcd60e51b8152600401620005d89190620016f8565b508086858151811062000f665762000f666200204d565b602002602001018190525050505080600101905062000dff565b50509250929050565b60018054620004fb9062001adb565b60058054620004fb9062001adb565b60008162000ff85760405162461bcd60e51b815260206004820152601d60248201527f6e756c6c2073616c74203d2070736575646f72616e646f6d20616464720000006044820152606401620005d8565b62001069600084600181111562001013576200101362001d40565b1462001040577f000000000000000000000000000000000000000000000000000000000000000062001062565b7f00000000000000000000000000000000000000000000000000000000000000005b83620014c4565b90505b92915050565b6200107c62001214565b6001600160a01b038116620010a9576000604051631e4fbdf760e01b8152600401620005d891906200171a565b620010b4816200124b565b50565b620010c162001214565b60405163b3cdf53760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3cdf53790620011199089908990899089908990899060040162002110565b600060405180830381600087803b1580156200113457600080fd5b505af115801562001149573d6000803e3d6000fd5b50505050505050505050565b60028054620004fb9062001adb565b6200116e62001214565b47801562001210576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114620011c5576040519150601f19603f3d011682016040523d82523d6000602084013e620011ca565b606091505b50509050806200120e5760405162461bcd60e51b815260206004820152600e60248201526d14185e5b595b9d0819985a5b195960921b6044820152606401620005d8565b505b5050565b336200121f6200086a565b6001600160a01b031614620006d1573360405163118cdaa760e01b8152600401620005d891906200171a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526200120e90849062001525565b6001600160a01b038116620010b45760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401620005d8565b60078054600091829190826200135b836200215f565b909155506040805160208082019390935242818301524360608083019190915230901b6001600160601b0319166080820152815180820360740181526094909101909152805191012092915050565b600083471015620013d85760405163392efb2b60e21b815247600482015260248101859052604401620005d8565b8151600003620013fb57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166200142e57604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166200106c576040516330be1a3d60e21b815260040160405180910390fd5b805160009082908203620014bb5750600092915050565b50506020015190565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c8201206078820152605560439091012060009062001069565b60006200153c6001600160a01b0384168362001587565b905080516000141580156200156457508080602001905181019062001562919062002187565b155b156200120e5782604051635274afe760e01b8152600401620005d891906200171a565b6060620010698383600084600080856001600160a01b03168486604051620015b09190620021a7565b60006040518083038185875af1925050503d8060008114620015ef576040519150601f19603f3d011682016040523d82523d6000602084013e620015f4565b606091505b50915091506200160686838362001610565b9695505050505050565b606082620016295762001623826200166c565b6200142e565b81511580156200164157506001600160a01b0384163b155b15620016645783604051639996b31560e01b8152600401620005d891906200171a565b50806200142e565b8051156200167d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61091f80620021bc83390190565b60005b83811015620016c1578181015183820152602001620016a7565b50506000910152565b60008151808452620016e4816020860160208601620016a4565b601f01601f19169290920160200192915050565b602081526000620010696020830184620016ca565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156200175757600080fd5b81356001600160401b03808211156200176f57600080fd5b818401915084601f8301126200178457600080fd5b8135818111156200179957620017996200172e565b604051601f8201601f19908116603f01168101908382118183101715620017c457620017c46200172e565b81604052828152876020848701011115620017de57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b0381168114620010b457600080fd5b80356200182181620017fe565b919050565b6000602082840312156200183957600080fd5b81356200142e81620017fe565b60008083601f8401126200185957600080fd5b5081356001600160401b038111156200187157600080fd5b6020830191508360208260051b85010111156200188d57600080fd5b9250929050565b60008060208385031215620018a857600080fd5b82356001600160401b03811115620018bf57600080fd5b620018cd8582860162001846565b90969095509350505050565b60008060408385031215620018ed57600080fd5b8235620018fa81620017fe565b915060208301356200190c81620017fe565b809150509250929050565b8035600281106200182157600080fd5b600080600080608085870312156200193e57600080fd5b620019498562001917565b935060208501356001600160401b038111156200196557600080fd5b850161018081880312156200197957600080fd5b925060408501356200198b81620017fe565b9396929550929360600135925050565b60006040820184835260206040602085015281855180845260608601915060608160051b87010193506020870160005b82811015620019fd57605f19888703018452620019ea868351620016ca565b95509284019290840190600101620019cb565b509398975050505050505050565b6000806040838503121562001a1f57600080fd5b62001a2a8362001917565b946020939093013593505050565b6000806000806000806060878903121562001a5257600080fd5b86356001600160401b038082111562001a6a57600080fd5b62001a788a838b0162001846565b9098509650602089013591508082111562001a9257600080fd5b62001aa08a838b0162001846565b9096509450604089013591508082111562001aba57600080fd5b5062001ac989828a0162001846565b979a9699509497509295939492505050565b600181811c9082168062001af057607f821691505b60208210810362001b1157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200120e576000816000526020600020601f850160051c8101602086101562001b425750805b601f850160051c820191505b818110156200075d5782815560010162001b4e565b81516001600160401b0381111562001b7f5762001b7f6200172e565b62001b978162001b90845462001adb565b8462001b17565b602080601f83116001811462001bcf576000841562001bb65750858301515b600019600386901b1c1916600185901b1785556200075d565b600085815260208120601f198616915b8281101562001c005788860151825594840194600190910190840162001bdf565b508582101562001c1f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8183526000602080850194508260005b8581101562001c7157813562001c5581620017fe565b6001600160a01b03168752958201959082019060010162001c3f565b509495945050505050565b60208152600062001c9260208301848662001c2f565b949350505050565b60006020828403121562001cad57600080fd5b5051919050565b602080825260149082015273199858dd1bdc9e481a5cc81858985b991bdb995960621b604082015260600190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b8181101562001d3257855185168352948301949183019160010162001d12565b509098975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e1984360301811262001d6e57600080fd5b83016020810192503590506001600160401b0381111562001d8e57600080fd5b8036038213156200188d57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356001600160f81b03811681146200182157600080fd5b8015158114620010b457600080fd5b8035620018218162001ddf565b6000815462001e0a8162001adb565b80855260206001838116801562001e2a576001811462001e455762001e75565b60ff1985168884015283151560051b88018301955062001e75565b866000528260002060005b8581101562001e6d5781548a820186015290830190840162001e50565b890184019650505b505050505092915050565b60808152600062001e92868762001d56565b61018080608086015262001eac6102008601838562001d9e565b925062001ebd60208a018a62001d56565b868503607f190160a0880152925062001ed884848362001d9e565b93505062001ee960408a0162001814565b915062001efa60c08601836200170d565b62001f0860608a0162001814565b915062001f1960e08601836200170d565b62001f2760808a0162001814565b915061010062001f3a818701846200170d565b62001f4860a08b0162001814565b925061012062001f5b818801856200170d565b62001f6960c08c0162001814565b935061014062001f7c818901866200170d565b62001f8a60e08d0162001814565b945061016062001f9d818a01876200170d565b62001faa848e0162001dc7565b6001600160f81b0381168a870152955062001fc7838e0162001dee565b8015156101a08b0152955062001fdf828e0162001dee565b8015156101c08b0152955062001ff7818e0162001dee565b955050505050506200200e6101e085018215159052565b506200201e60208401876200170d565b828103604084015262002032818662001dfb565b9150506200204460608301846200170d565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126200207a57600080fd5b9190910192915050565b6000808335601e198436030181126200209c57600080fd5b8301803591506001600160401b03821115620020b757600080fd5b6020019150368190038213156200188d57600080fd5b8183823760009101908152919050565b81835260006001600160fb1b03831115620020f757600080fd5b8260051b80836020870137939093016020019392505050565b6060815260006200212660608301888a62001c2f565b82810360208401526200213b818789620020dd565b9050828103604084015262002152818587620020dd565b9998505050505050505050565b6000600182016200218057634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156200219a57600080fd5b81516200142e8162001ddf565b600082516200207a818460208701620016a456fe60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ef565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ae565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100ea576000816000526020600020601f850160051c810160208610156100c75750805b601f850160051c820191505b818110156100e6578281556001016100d3565b5050505b505050565b81516001600160401b038111156101085761010861004e565b61011c816101168454610064565b8461009e565b602080601f83116001811461015157600084156101395750858301515b600019600386901b1c1916600185901b1785556100e6565b600085815260208120601f198616915b8281101561018057888601518255948401946001909101908401610161565b508582101561019e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610762806101bd6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b6100856100803660046104a9565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104e2565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b6040516100919190610525565b6100f16100ec366004610539565b610180565b005b6100f16101013660046105be565b610218565b6100f16101143660046105d9565b610298565b6101216103fe565b604051610091919061060c565b60006001600160e01b03198216633001c1ef60e21b148061015f57506001600160e01b03198216631bbd3e8d60e11b145b8061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101b35760405162461bcd60e51b81526004016101aa9061065b565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b4759061020a9087908790610684565b60405180910390a350505050565b6001546001600160a01b031633146102425760405162461bcd60e51b81526004016101aa9061065b565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102c25760405162461bcd60e51b81526004016101aa9061065b565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033191906106d0565b61039c5760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b60648201526084016101aa565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103c8908490600401610525565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050505050565b6000805461040b906106f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610437906106f2565b80156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b80356001600160e01b0319811681146104a457600080fd5b919050565b6000602082840312156104bb57600080fd5b6104c48261048c565b9392505050565b80356001600160a01b03811681146104a457600080fd5b6000806000606084860312156104f757600080fd5b610500846104cb565b925061050e602085016104cb565b915061051c6040850161048c565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561054e57600080fd5b610557846104cb565b925060208401356001600160401b038082111561057357600080fd5b818601915086601f83011261058757600080fd5b81358181111561059657600080fd5b8760208260051b85010111156105ab57600080fd5b6020830194508093505050509250925092565b6000602082840312156105d057600080fd5b6104c4826104cb565b600080604083850312156105ec57600080fd5b6105f5836104cb565b9150610603602084016104cb565b90509250929050565b60006020808352835180602085015260005b8181101561063a5785810183015185820160400152820161061e565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106c5576001600160a01b036106b2846104cb565b1682529183019190830190600101610699565b509695505050505050565b6000602082840312156106e257600080fd5b815180151581146104c457600080fd5b600181811c9082168061070657607f821691505b60208210810361072657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220830f3c30ad4d14df1865965a76cbb302e6938979ee6e646e3a277a8abebb5fd164736f6c63430008160033a2646970667358221220d65a407ce882aceac6240a945bd5eb9a0c30defe605d968d6c2cf4b69840b34564736f6c63430008160033",
647
+ "deployedBytecode": "0x608060405260043610620001385760003560e01c806310a2e110146200014557806324377e9f146200017557806328d6edbf14620001a25780633d865a1214620001e75780634e93d7e5146200020e57806366a2d9b014620002335780636bf3d05a146200026a578063715018a614620002a05780637390bb5014620002b85780637e56402f14620002dd5780638831883414620003025780638da5cb5b146200031a5780638e6cee5214620003325780639f1dc8f814620003575780639fc08739146200036f578063af8181ff14620003a4578063b8967f2514620003bc578063d6f5560214620003d4578063e02878fd146200040a578063f21e018c146200042f578063f2fde38b1462000465578063f470c991146200048a578063f4ebf9e414620004af578063fd24b93714620004c757600080fd5b366200014057005b600080fd5b3480156200015257600080fd5b506200015d620004ec565b6040516200016c9190620016f8565b60405180910390f35b3480156200018257600080fd5b50600654620001919060ff1681565b60405190151581526020016200016c565b348015620001af57600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b6040516200016c91906200171a565b348015620001f457600080fd5b506200020c6200020636600462001744565b62000582565b005b3480156200021b57600080fd5b506200020c6200022d36600462001826565b6200062c565b3480156200024057600080fd5b506200025b6e0456e67696e65466163746f7279563608c1b81565b6040519081526020016200016c565b3480156200027757600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b348015620002ad57600080fd5b506200020c620006bb565b348015620002c557600080fd5b506200020c620002d736600462001894565b620006d3565b348015620002ea57600080fd5b506200020c620002fc366004620018d9565b62000765565b3480156200030f57600080fd5b506200020c62000802565b3480156200032757600080fd5b50620001d86200086a565b3480156200033f57600080fd5b50620001d86200035136600462001927565b62000879565b3480156200036457600080fd5b506200015d62000d88565b3480156200037c57600080fd5b50620003946200038e36600462001894565b62000d97565b6040516200016c9291906200199b565b348015620003b157600080fd5b506200015d62000f89565b348015620003c957600080fd5b506200015d62000f98565b348015620003e157600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156200041757600080fd5b50620001d86200042936600462001a0b565b62000fa7565b3480156200043c57600080fd5b50620001d87f000000000000000000000000000000000000000000000000000000000000000081565b3480156200047257600080fd5b506200020c6200048436600462001826565b62001072565b3480156200049757600080fd5b506200020c620004a936600462001a38565b620010b7565b348015620004bc57600080fd5b506200015d62001155565b348015620004d457600080fd5b506200020c620004e636600462001826565b62001164565b60048054620004fb9062001adb565b80601f0160208091040260200160405190810160405280929190818152602001828054620005299062001adb565b80156200057a5780601f106200054e576101008083540402835291602001916200057a565b820191906000526020600020905b8154815290600101906020018083116200055c57829003601f168201915b505050505081565b6200058c62001214565b6000815111620005e15760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b60448201526064015b60405180910390fd5b6001620005ef828262001b63565b507f0ac41bf811c14b80cae964fe9d5641cc8a787fa7f4cc9d661caa00d2fbe60b4581604051620006219190620016f8565b60405180910390a150565b6200063662001214565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90620006849084906004016200171a565b600060405180830381600087803b1580156200069f57600080fd5b505af1158015620006b4573d6000803e3d6000fd5b5050505050565b620006c562001214565b620006d160006200124b565b565b620006dd62001214565b604051631cdd23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906373748ec4906200072d908590859060040162001c7c565b600060405180830381600087803b1580156200074857600080fd5b505af11580156200075d573d6000803e3d6000fd5b505050505050565b6200076f62001214565b6040516370a0823160e01b815282906000906001600160a01b038316906370a0823190620007a29030906004016200171a565b602060405180830381865afa158015620007c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e6919062001c9a565b90508015620007fc57620007fc8284836200129b565b50505050565b6200080c62001214565b60065460ff1615620008325760405162461bcd60e51b8152600401620005d89062001cb4565b6006805460ff191660011790556040517ffb03bbbb81551103a80dda8d3bda55d93637ca4a96390de3719644774bdf1e9890600090a1565b6000546001600160a01b031690565b60006200088562001214565b60065460ff1615620008ab5760405162461bcd60e51b8152600401620005d89062001cb4565b620008c7620008c1606086016040870162001826565b620012ef565b620008dd620008c160c0860160a0870162001826565b81620008f057620008ed62001345565b91505b6001600160a01b038316620009dd5762000915620008c160a086016080870162001826565b6200094f60006200092562001345565b604051620009366020820162001696565b601f1982820381018352601f90910116604052620013aa565b6040805160008152602081019091529093506001600160a01b03841663377a7d1a6200098260a088016080890162001826565b836040518363ffffffff1660e01b8152600401620009a292919062001ce2565b600060405180830381600087803b158015620009bd57600080fd5b505af1158015620009d2573d6000803e3d6000fd5b505050505062000a43565b6000620009f160a086016080870162001826565b6001600160a01b03161462000a435760405162461bcd60e51b815260206004820152601760248201527641646d696e41434c20616c72656164792065786973747360481b6044820152606401620005d8565b60008086600181111562000a5b5762000a5b62001d40565b1462000a88577f000000000000000000000000000000000000000000000000000000000000000062000aaa565b7f00000000000000000000000000000000000000000000000000000000000000005b905062000ab8818462001435565b604051639549179560e01b81529092506001600160a01b0383169063954917959062000b1090889088906001907f00000000000000000000000000000000000000000000000000000000000000009060040162001e80565b600060405180830381600087803b15801562000b2b57600080fd5b505af115801562000b40573d6000803e3d6000fd5b506000925082915081905088600181111562000b605762000b6062001d40565b1462000b70576004600562000b75565b600260035b805462000b829062001adb565b80601f016020809104026020016040519081016040528092919081815260200182805462000bb09062001adb565b801562000c015780601f1062000bd55761010080835404028352916020019162000c01565b820191906000526020600020905b81548152906001019060200180831162000be357829003601f168201915b50505050509150805462000c159062001adb565b80601f016020809104026020016040519081016040528092919081815260200182805462000c439062001adb565b801562000c945780601f1062000c685761010080835404028352916020019162000c94565b820191906000526020600020905b81548152906001019060200180831162000c7657829003601f168201915b505050505091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f889b3ed8562000cd684620014a4565b62000ce186620014a4565b6040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562000d3057600080fd5b505af115801562000d45573d6000803e3d6000fd5b50506040516001600160a01b03871692507f72dba3aac69e7eadf1383243bbb649ff575d0d530bfecf3d33ef4a0cc0a77b8d9150600090a2505050949350505050565b60038054620004fb9062001adb565b6000606062000da562001214565b43915082806001600160401b0381111562000dc45762000dc46200172e565b60405190808252806020026020018201604052801562000df957816020015b606081526020019060019003908162000de35790505b50915060005b8181101562000f80573686868381811062000e1e5762000e1e6200204d565b905060200281019062000e32919062002063565b905062000e43602082018262001826565b6001600160a01b03163b60000362000ea95762000e64602082018262002084565b15905062000ea95760405162461bcd60e51b8152602060048201526011602482015270496e76616c69642063616c6c206461746160781b6044820152606401620005d8565b60008062000ebb602084018462001826565b6001600160a01b031662000ed3602085018562002084565b60405162000ee3929190620020cd565b6000604051808303816000865af19150503d806000811462000f22576040519150601f19603f3d011682016040523d82523d6000602084013e62000f27565b606091505b509150915081819062000f4f5760405162461bcd60e51b8152600401620005d89190620016f8565b508086858151811062000f665762000f666200204d565b602002602001018190525050505080600101905062000dff565b50509250929050565b60018054620004fb9062001adb565b60058054620004fb9062001adb565b60008162000ff85760405162461bcd60e51b815260206004820152601d60248201527f6e756c6c2073616c74203d2070736575646f72616e646f6d20616464720000006044820152606401620005d8565b62001069600084600181111562001013576200101362001d40565b1462001040577f000000000000000000000000000000000000000000000000000000000000000062001062565b7f00000000000000000000000000000000000000000000000000000000000000005b83620014c4565b90505b92915050565b6200107c62001214565b6001600160a01b038116620010a9576000604051631e4fbdf760e01b8152600401620005d891906200171a565b620010b4816200124b565b50565b620010c162001214565b60405163b3cdf53760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3cdf53790620011199089908990899089908990899060040162002110565b600060405180830381600087803b1580156200113457600080fd5b505af115801562001149573d6000803e3d6000fd5b50505050505050505050565b60028054620004fb9062001adb565b6200116e62001214565b47801562001210576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114620011c5576040519150601f19603f3d011682016040523d82523d6000602084013e620011ca565b606091505b50509050806200120e5760405162461bcd60e51b815260206004820152600e60248201526d14185e5b595b9d0819985a5b195960921b6044820152606401620005d8565b505b5050565b336200121f6200086a565b6001600160a01b031614620006d1573360405163118cdaa760e01b8152600401620005d891906200171a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526200120e90849062001525565b6001600160a01b038116620010b45760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401620005d8565b60078054600091829190826200135b836200215f565b909155506040805160208082019390935242818301524360608083019190915230901b6001600160601b0319166080820152815180820360740181526094909101909152805191012092915050565b600083471015620013d85760405163392efb2b60e21b815247600482015260248101859052604401620005d8565b8151600003620013fb57604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b0381166200142e57604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166200106c576040516330be1a3d60e21b815260040160405180910390fd5b805160009082908203620014bb5750600092915050565b50506020015190565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c8201206078820152605560439091012060009062001069565b60006200153c6001600160a01b0384168362001587565b905080516000141580156200156457508080602001905181019062001562919062002187565b155b156200120e5782604051635274afe760e01b8152600401620005d891906200171a565b6060620010698383600084600080856001600160a01b03168486604051620015b09190620021a7565b60006040518083038185875af1925050503d8060008114620015ef576040519150601f19603f3d011682016040523d82523d6000602084013e620015f4565b606091505b50915091506200160686838362001610565b9695505050505050565b606082620016295762001623826200166c565b6200142e565b81511580156200164157506001600160a01b0384163b155b15620016645783604051639996b31560e01b8152600401620005d891906200171a565b50806200142e565b8051156200167d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61091f80620021bc83390190565b60005b83811015620016c1578181015183820152602001620016a7565b50506000910152565b60008151808452620016e4816020860160208601620016a4565b601f01601f19169290920160200192915050565b602081526000620010696020830184620016ca565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156200175757600080fd5b81356001600160401b03808211156200176f57600080fd5b818401915084601f8301126200178457600080fd5b8135818111156200179957620017996200172e565b604051601f8201601f19908116603f01168101908382118183101715620017c457620017c46200172e565b81604052828152876020848701011115620017de57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b0381168114620010b457600080fd5b80356200182181620017fe565b919050565b6000602082840312156200183957600080fd5b81356200142e81620017fe565b60008083601f8401126200185957600080fd5b5081356001600160401b038111156200187157600080fd5b6020830191508360208260051b85010111156200188d57600080fd5b9250929050565b60008060208385031215620018a857600080fd5b82356001600160401b03811115620018bf57600080fd5b620018cd8582860162001846565b90969095509350505050565b60008060408385031215620018ed57600080fd5b8235620018fa81620017fe565b915060208301356200190c81620017fe565b809150509250929050565b8035600281106200182157600080fd5b600080600080608085870312156200193e57600080fd5b620019498562001917565b935060208501356001600160401b038111156200196557600080fd5b850161018081880312156200197957600080fd5b925060408501356200198b81620017fe565b9396929550929360600135925050565b60006040820184835260206040602085015281855180845260608601915060608160051b87010193506020870160005b82811015620019fd57605f19888703018452620019ea868351620016ca565b95509284019290840190600101620019cb565b509398975050505050505050565b6000806040838503121562001a1f57600080fd5b62001a2a8362001917565b946020939093013593505050565b6000806000806000806060878903121562001a5257600080fd5b86356001600160401b038082111562001a6a57600080fd5b62001a788a838b0162001846565b9098509650602089013591508082111562001a9257600080fd5b62001aa08a838b0162001846565b9096509450604089013591508082111562001aba57600080fd5b5062001ac989828a0162001846565b979a9699509497509295939492505050565b600181811c9082168062001af057607f821691505b60208210810362001b1157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200120e576000816000526020600020601f850160051c8101602086101562001b425750805b601f850160051c820191505b818110156200075d5782815560010162001b4e565b81516001600160401b0381111562001b7f5762001b7f6200172e565b62001b978162001b90845462001adb565b8462001b17565b602080601f83116001811462001bcf576000841562001bb65750858301515b600019600386901b1c1916600185901b1785556200075d565b600085815260208120601f198616915b8281101562001c005788860151825594840194600190910190840162001bdf565b508582101562001c1f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8183526000602080850194508260005b8581101562001c7157813562001c5581620017fe565b6001600160a01b03168752958201959082019060010162001c3f565b509495945050505050565b60208152600062001c9260208301848662001c2f565b949350505050565b60006020828403121562001cad57600080fd5b5051919050565b602080825260149082015273199858dd1bdc9e481a5cc81858985b991bdb995960621b604082015260600190565b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b8181101562001d3257855185168352948301949183019160010162001d12565b509098975050505050505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e1984360301811262001d6e57600080fd5b83016020810192503590506001600160401b0381111562001d8e57600080fd5b8036038213156200188d57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356001600160f81b03811681146200182157600080fd5b8015158114620010b457600080fd5b8035620018218162001ddf565b6000815462001e0a8162001adb565b80855260206001838116801562001e2a576001811462001e455762001e75565b60ff1985168884015283151560051b88018301955062001e75565b866000528260002060005b8581101562001e6d5781548a820186015290830190840162001e50565b890184019650505b505050505092915050565b60808152600062001e92868762001d56565b61018080608086015262001eac6102008601838562001d9e565b925062001ebd60208a018a62001d56565b868503607f190160a0880152925062001ed884848362001d9e565b93505062001ee960408a0162001814565b915062001efa60c08601836200170d565b62001f0860608a0162001814565b915062001f1960e08601836200170d565b62001f2760808a0162001814565b915061010062001f3a818701846200170d565b62001f4860a08b0162001814565b925061012062001f5b818801856200170d565b62001f6960c08c0162001814565b935061014062001f7c818901866200170d565b62001f8a60e08d0162001814565b945061016062001f9d818a01876200170d565b62001faa848e0162001dc7565b6001600160f81b0381168a870152955062001fc7838e0162001dee565b8015156101a08b0152955062001fdf828e0162001dee565b8015156101c08b0152955062001ff7818e0162001dee565b955050505050506200200e6101e085018215159052565b506200201e60208401876200170d565b828103604084015262002032818662001dfb565b9150506200204460608301846200170d565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b60008235603e198336030181126200207a57600080fd5b9190910192915050565b6000808335601e198436030181126200209c57600080fd5b8301803591506001600160401b03821115620020b757600080fd5b6020019150368190038213156200188d57600080fd5b8183823760009101908152919050565b81835260006001600160fb1b03831115620020f757600080fd5b8260051b80836020870137939093016020019392505050565b6060815260006200212660608301888a62001c2f565b82810360208401526200213b818789620020dd565b9050828103604084015262002152818587620020dd565b9998505050505050505050565b6000600182016200218057634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156200219a57600080fd5b81516200142e8162001ddf565b600082516200207a818460208701620016a456fe60c0604052600a608090815269041646d696e41434c56360b41b60a05260009061002990826100ef565b5034801561003657600080fd5b50600180546001600160a01b031916331790556101ae565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061007857607f821691505b60208210810361009857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156100ea576000816000526020600020601f850160051c810160208610156100c75750805b601f850160051c820191505b818110156100e6578281556001016100d3565b5050505b505050565b81516001600160401b038111156101085761010861004e565b61011c816101168454610064565b8461009e565b602080601f83116001811461015157600084156101395750858301515b600019600386901b1c1916600185901b1785556100e6565b600085815260208120601f198616915b8281101561018057888601518255948401946001909101908401610161565b508582101561019e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610762806101bd6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806301ffc9a71461007257806305de62c01461009a57806329575f6a146100be578063377a7d1a146100de578063985d1968146100f3578063bcc91a1014610106578063c81a396e14610119575b600080fd5b6100856100803660046104a9565b61012e565b60405190151581526020015b60405180910390f35b6100856100a83660046104e2565b50506001546001600160a01b0391821691161490565b6001546100d1906001600160a01b031681565b6040516100919190610525565b6100f16100ec366004610539565b610180565b005b6100f16101013660046105be565b610218565b6100f16101143660046105d9565b610298565b6101216103fe565b604051610091919061060c565b60006001600160e01b03198216633001c1ef60e21b148061015f57506001600160e01b03198216631bbd3e8d60e11b145b8061017a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001546001600160a01b031633146101b35760405162461bcd60e51b81526004016101aa9061065b565b60405180910390fd5b600180546001600160a01b038581166001600160a01b0319831681179093556040519116919082907f3f6845104f9728af7979eed8814320daba008953c8db93b9fe32602d1f34b4759061020a9087908790610684565b60405180910390a350505050565b6001546001600160a01b031633146102425760405162461bcd60e51b81526004016101aa9061065b565b806001600160a01b031663715018a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561027d57600080fd5b505af1158015610291573d6000803e3d6000fd5b5050505050565b6001546001600160a01b031633146102c25760405162461bcd60e51b81526004016101aa9061065b565b6040516301ffc9a760e01b8152633001c1ef60e21b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033191906106d0565b61039c5760405162461bcd60e51b815260206004820152603660248201527f41646d696e41434c56303a206e65772061646d696e2041434c20646f6573206e60448201527506f7420737570706f7274204941646d696e41434c56360541b60648201526084016101aa565b60405163f2fde38b60e01b81526001600160a01b0383169063f2fde38b906103c8908490600401610525565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050505050565b6000805461040b906106f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610437906106f2565b80156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b80356001600160e01b0319811681146104a457600080fd5b919050565b6000602082840312156104bb57600080fd5b6104c48261048c565b9392505050565b80356001600160a01b03811681146104a457600080fd5b6000806000606084860312156104f757600080fd5b610500846104cb565b925061050e602085016104cb565b915061051c6040850161048c565b90509250925092565b6001600160a01b0391909116815260200190565b60008060006040848603121561054e57600080fd5b610557846104cb565b925060208401356001600160401b038082111561057357600080fd5b818601915086601f83011261058757600080fd5b81358181111561059657600080fd5b8760208260051b85010111156105ab57600080fd5b6020830194508093505050509250925092565b6000602082840312156105d057600080fd5b6104c4826104cb565b600080604083850312156105ec57600080fd5b6105f5836104cb565b9150610603602084016104cb565b90509250929050565b60006020808352835180602085015260005b8181101561063a5785810183015185820160400152820161061e565b506000604082860101526040601f19601f8301168501019250505092915050565b6020808252600f908201526e27b7363c9039bab832b920b236b4b760891b604082015260600190565b60208082528181018390526000908460408401835b868110156106c5576001600160a01b036106b2846104cb565b1682529183019190830190600101610699565b509695505050505050565b6000602082840312156106e257600080fd5b815180151581146104c457600080fd5b600181811c9082168061070657607f821691505b60208210810361072657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220830f3c30ad4d14df1865965a76cbb302e6938979ee6e646e3a277a8abebb5fd164736f6c63430008160033a2646970667358221220d65a407ce882aceac6240a945bd5eb9a0c30defe605d968d6c2cf4b69840b34564736f6c63430008160033",
622
648
  "linkReferences": {},
623
649
  "deployedLinkReferences": {}
624
650
  }