@artblocks/contracts 1.1.0 → 1.2.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 (257) hide show
  1. package/README.md +75 -7
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +273 -155
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +567 -206
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +787 -224
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +38 -8
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +38 -8
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  47. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +58 -45
  49. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  50. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  51. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  52. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  53. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  61. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  63. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
  65. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  66. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  67. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  68. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  69. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  70. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  71. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  72. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  73. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  74. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  75. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  76. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  77. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  78. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  79. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  80. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  81. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  82. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  83. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  84. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  85. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  86. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  87. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  89. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
  93. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  94. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  96. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  97. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  98. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +2 -2
  99. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +2 -2
  102. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  103. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  104. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  105. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  106. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  107. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  108. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  109. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  110. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
  111. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  112. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  113. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  114. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  115. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  116. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  117. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  118. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  119. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  120. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  121. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  122. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  123. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  124. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  125. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  126. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  127. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  128. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  129. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  130. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  131. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
  132. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  133. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
  134. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  135. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
  136. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  137. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
  138. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  139. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  140. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  141. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  142. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  143. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  144. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  145. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  146. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  147. package/contracts/AdminACLV0.sol +6 -2
  148. package/contracts/AdminACLV1.sol +2 -2
  149. package/contracts/DependencyRegistryV0.sol +687 -408
  150. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  151. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  152. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  153. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  154. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  155. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  156. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
  157. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  158. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  159. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  160. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  161. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  162. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  163. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  164. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  165. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  166. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  167. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  168. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  169. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +894 -488
  170. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1054 -650
  171. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
  172. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
  173. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  174. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  175. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  176. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +47 -45
  177. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  178. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  179. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  180. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  181. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  182. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  183. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  184. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  185. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  186. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  187. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  188. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  189. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  190. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  191. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  192. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
  193. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  194. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  195. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
  196. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
  197. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  198. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  199. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  200. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  201. package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
  202. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  203. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  204. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  205. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  206. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  207. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  208. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
  209. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
  210. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
  211. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
  212. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
  213. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  214. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
  215. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
  216. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
  217. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +21 -15
  218. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
  219. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
  220. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
  221. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
  222. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
  223. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
  224. package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
  225. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  226. package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
  227. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
  228. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
  229. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
  230. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
  231. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
  232. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
  233. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  234. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  235. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  236. package/contracts/mock/ForceSendMock.sol +22 -0
  237. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  238. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  239. package/contracts/mock/MockAdminACLV0.sol +21 -0
  240. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  241. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  242. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  243. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  244. package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
  245. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  246. package/contracts/split/SplitAtomicV0.sol +265 -0
  247. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  248. package/package.json +62 -34
  249. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  250. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  251. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  252. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  253. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  254. package/contracts/archive/readme.md +0 -16
  255. package/contracts/engine/README.md +0 -21
  256. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  257. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -9,31 +9,31 @@
9
9
  {
10
10
  "indexed": true,
11
11
  "internalType": "bytes32",
12
- "name": "_dependencyType",
12
+ "name": "dependencyNameAndVersion",
13
13
  "type": "bytes32"
14
14
  },
15
15
  {
16
16
  "indexed": true,
17
17
  "internalType": "bytes32",
18
- "name": "_licenseType",
18
+ "name": "licenseType",
19
19
  "type": "bytes32"
20
20
  },
21
21
  {
22
22
  "indexed": false,
23
23
  "internalType": "string",
24
- "name": "_preferredCDN",
24
+ "name": "preferredCDN",
25
25
  "type": "string"
26
26
  },
27
27
  {
28
28
  "indexed": false,
29
29
  "internalType": "string",
30
- "name": "_preferredRepository",
30
+ "name": "preferredRepository",
31
31
  "type": "string"
32
32
  },
33
33
  {
34
34
  "indexed": false,
35
35
  "internalType": "string",
36
- "name": "_referenceWebsite",
36
+ "name": "website",
37
37
  "type": "string"
38
38
  }
39
39
  ],
@@ -46,13 +46,13 @@
46
46
  {
47
47
  "indexed": true,
48
48
  "internalType": "bytes32",
49
- "name": "_dependencyType",
49
+ "name": "dependencyNameAndVersion",
50
50
  "type": "bytes32"
51
51
  },
52
52
  {
53
53
  "indexed": true,
54
54
  "internalType": "uint256",
55
- "name": "_additionalCDNIndex",
55
+ "name": "additionalCDNIndex",
56
56
  "type": "uint256"
57
57
  }
58
58
  ],
@@ -65,19 +65,19 @@
65
65
  {
66
66
  "indexed": true,
67
67
  "internalType": "bytes32",
68
- "name": "_dependencyType",
68
+ "name": "dependencyNameAndVersion",
69
69
  "type": "bytes32"
70
70
  },
71
71
  {
72
72
  "indexed": false,
73
73
  "internalType": "string",
74
- "name": "_additionalCDN",
74
+ "name": "additionalCDN",
75
75
  "type": "string"
76
76
  },
77
77
  {
78
78
  "indexed": false,
79
79
  "internalType": "uint256",
80
- "name": "_additionalCDNIndex",
80
+ "name": "additionalCDNIndex",
81
81
  "type": "uint256"
82
82
  }
83
83
  ],
@@ -90,13 +90,13 @@
90
90
  {
91
91
  "indexed": true,
92
92
  "internalType": "bytes32",
93
- "name": "_dependencyType",
93
+ "name": "dependencyNameAndVersion",
94
94
  "type": "bytes32"
95
95
  },
96
96
  {
97
97
  "indexed": true,
98
98
  "internalType": "uint256",
99
- "name": "_additionalRepositoryIndex",
99
+ "name": "additionalRepositoryIndex",
100
100
  "type": "uint256"
101
101
  }
102
102
  ],
@@ -109,19 +109,19 @@
109
109
  {
110
110
  "indexed": true,
111
111
  "internalType": "bytes32",
112
- "name": "_dependencyType",
112
+ "name": "dependencyNameAndVersion",
113
113
  "type": "bytes32"
114
114
  },
115
115
  {
116
116
  "indexed": false,
117
117
  "internalType": "string",
118
- "name": "_additionalRepository",
118
+ "name": "additionalRepository",
119
119
  "type": "string"
120
120
  },
121
121
  {
122
122
  "indexed": false,
123
123
  "internalType": "uint256",
124
- "name": "_additionalRepositoryIndex",
124
+ "name": "additionalRepositoryIndex",
125
125
  "type": "uint256"
126
126
  }
127
127
  ],
@@ -134,13 +134,13 @@
134
134
  {
135
135
  "indexed": true,
136
136
  "internalType": "bytes32",
137
- "name": "_dependencyType",
137
+ "name": "dependencyNameAndVersion",
138
138
  "type": "bytes32"
139
139
  },
140
140
  {
141
141
  "indexed": false,
142
142
  "internalType": "string",
143
- "name": "_preferredCDN",
143
+ "name": "preferredCDN",
144
144
  "type": "string"
145
145
  }
146
146
  ],
@@ -153,13 +153,13 @@
153
153
  {
154
154
  "indexed": true,
155
155
  "internalType": "bytes32",
156
- "name": "_dependencyType",
156
+ "name": "dependencyNameAndVersion",
157
157
  "type": "bytes32"
158
158
  },
159
159
  {
160
160
  "indexed": false,
161
161
  "internalType": "string",
162
- "name": "_preferredRepository",
162
+ "name": "preferredRepository",
163
163
  "type": "string"
164
164
  }
165
165
  ],
@@ -172,17 +172,11 @@
172
172
  {
173
173
  "indexed": true,
174
174
  "internalType": "bytes32",
175
- "name": "_dependencyType",
175
+ "name": "dependencyNameAndVersion",
176
176
  "type": "bytes32"
177
- },
178
- {
179
- "indexed": false,
180
- "internalType": "string",
181
- "name": "_referenceWebsite",
182
- "type": "string"
183
177
  }
184
178
  ],
185
- "name": "DependencyReferenceWebsiteUpdated",
179
+ "name": "DependencyRemoved",
186
180
  "type": "event"
187
181
  },
188
182
  {
@@ -191,11 +185,11 @@
191
185
  {
192
186
  "indexed": true,
193
187
  "internalType": "bytes32",
194
- "name": "_dependencyType",
188
+ "name": "dependencyNameAndVersion",
195
189
  "type": "bytes32"
196
190
  }
197
191
  ],
198
- "name": "DependencyRemoved",
192
+ "name": "DependencyScriptUpdated",
199
193
  "type": "event"
200
194
  },
201
195
  {
@@ -204,11 +198,17 @@
204
198
  {
205
199
  "indexed": true,
206
200
  "internalType": "bytes32",
207
- "name": "_dependencyType",
201
+ "name": "dependencyNameAndVersion",
208
202
  "type": "bytes32"
203
+ },
204
+ {
205
+ "indexed": false,
206
+ "internalType": "string",
207
+ "name": "website",
208
+ "type": "string"
209
209
  }
210
210
  ],
211
- "name": "DependencyScriptUpdated",
211
+ "name": "DependencyWebsiteUpdated",
212
212
  "type": "event"
213
213
  },
214
214
  {
@@ -230,7 +230,20 @@
230
230
  {
231
231
  "indexed": true,
232
232
  "internalType": "bytes32",
233
- "name": "_licenseType",
233
+ "name": "licenseType",
234
+ "type": "bytes32"
235
+ }
236
+ ],
237
+ "name": "LicenseTextUpdated",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "anonymous": false,
242
+ "inputs": [
243
+ {
244
+ "indexed": true,
245
+ "internalType": "bytes32",
246
+ "name": "licenseType",
234
247
  "type": "bytes32"
235
248
  }
236
249
  ],
@@ -262,23 +275,23 @@
262
275
  {
263
276
  "indexed": true,
264
277
  "internalType": "address",
265
- "name": "_coreContractAddress",
278
+ "name": "coreContractAddress",
266
279
  "type": "address"
267
280
  },
268
281
  {
269
282
  "indexed": true,
270
283
  "internalType": "uint256",
271
- "name": "_projectId",
284
+ "name": "projectId",
272
285
  "type": "uint256"
273
286
  },
274
287
  {
275
288
  "indexed": false,
276
289
  "internalType": "bytes32",
277
- "name": "_dependencyType",
290
+ "name": "dependencyNameAndVersion",
278
291
  "type": "bytes32"
279
292
  }
280
293
  ],
281
- "name": "ProjectDependencyTypeOverrideAdded",
294
+ "name": "ProjectDependencyOverrideAdded",
282
295
  "type": "event"
283
296
  },
284
297
  {
@@ -287,17 +300,17 @@
287
300
  {
288
301
  "indexed": true,
289
302
  "internalType": "address",
290
- "name": "_coreContractAddress",
303
+ "name": "coreContractAddress",
291
304
  "type": "address"
292
305
  },
293
306
  {
294
307
  "indexed": true,
295
308
  "internalType": "uint256",
296
- "name": "_projectId",
309
+ "name": "projectId",
297
310
  "type": "uint256"
298
311
  }
299
312
  ],
300
- "name": "ProjectDependencyTypeOverrideRemoved",
313
+ "name": "ProjectDependencyOverrideRemoved",
301
314
  "type": "event"
302
315
  },
303
316
  {
@@ -306,7 +319,7 @@
306
319
  {
307
320
  "indexed": true,
308
321
  "internalType": "address",
309
- "name": "_coreContractAddress",
322
+ "name": "coreContractAddress",
310
323
  "type": "address"
311
324
  }
312
325
  ],
@@ -319,7 +332,7 @@
319
332
  {
320
333
  "indexed": true,
321
334
  "internalType": "address",
322
- "name": "_coreContractAddress",
335
+ "name": "coreContractAddress",
323
336
  "type": "address"
324
337
  }
325
338
  ],
@@ -330,27 +343,27 @@
330
343
  "inputs": [
331
344
  {
332
345
  "internalType": "bytes32",
333
- "name": "_dependencyType",
346
+ "name": "dependencyNameAndVersion",
334
347
  "type": "bytes32"
335
348
  },
336
349
  {
337
350
  "internalType": "bytes32",
338
- "name": "_licenseType",
351
+ "name": "licenseType",
339
352
  "type": "bytes32"
340
353
  },
341
354
  {
342
355
  "internalType": "string",
343
- "name": "_preferredCDN",
356
+ "name": "preferredCDN",
344
357
  "type": "string"
345
358
  },
346
359
  {
347
360
  "internalType": "string",
348
- "name": "_preferredRepository",
361
+ "name": "preferredRepository",
349
362
  "type": "string"
350
363
  },
351
364
  {
352
365
  "internalType": "string",
353
- "name": "_referenceWebsite",
366
+ "name": "dependencyWebsite",
354
367
  "type": "string"
355
368
  }
356
369
  ],
@@ -363,12 +376,12 @@
363
376
  "inputs": [
364
377
  {
365
378
  "internalType": "bytes32",
366
- "name": "_dependencyType",
379
+ "name": "dependencyNameAndVersion",
367
380
  "type": "bytes32"
368
381
  },
369
382
  {
370
383
  "internalType": "string",
371
- "name": "_additionalCDN",
384
+ "name": "additionalCDN",
372
385
  "type": "string"
373
386
  }
374
387
  ],
@@ -381,12 +394,12 @@
381
394
  "inputs": [
382
395
  {
383
396
  "internalType": "bytes32",
384
- "name": "_dependencyType",
397
+ "name": "dependencyNameAndVersion",
385
398
  "type": "bytes32"
386
399
  },
387
400
  {
388
401
  "internalType": "string",
389
- "name": "_additionalRepository",
402
+ "name": "additionalRepository",
390
403
  "type": "string"
391
404
  }
392
405
  ],
@@ -399,12 +412,12 @@
399
412
  "inputs": [
400
413
  {
401
414
  "internalType": "bytes32",
402
- "name": "_dependencyType",
415
+ "name": "dependencyNameAndVersion",
403
416
  "type": "bytes32"
404
417
  },
405
418
  {
406
419
  "internalType": "string",
407
- "name": "_script",
420
+ "name": "script",
408
421
  "type": "string"
409
422
  }
410
423
  ],
@@ -417,12 +430,12 @@
417
430
  "inputs": [
418
431
  {
419
432
  "internalType": "bytes32",
420
- "name": "_dependencyType",
433
+ "name": "dependencyNameAndVersion",
421
434
  "type": "bytes32"
422
435
  },
423
436
  {
424
437
  "internalType": "address",
425
- "name": "_scriptPointer",
438
+ "name": "scriptPointer",
426
439
  "type": "address"
427
440
  }
428
441
  ],
@@ -435,7 +448,25 @@
435
448
  "inputs": [
436
449
  {
437
450
  "internalType": "bytes32",
438
- "name": "_licenseType",
451
+ "name": "licenseType",
452
+ "type": "bytes32"
453
+ },
454
+ {
455
+ "internalType": "string",
456
+ "name": "text",
457
+ "type": "string"
458
+ }
459
+ ],
460
+ "name": "addLicenseText",
461
+ "outputs": [],
462
+ "stateMutability": "nonpayable",
463
+ "type": "function"
464
+ },
465
+ {
466
+ "inputs": [
467
+ {
468
+ "internalType": "bytes32",
469
+ "name": "licenseType",
439
470
  "type": "bytes32"
440
471
  }
441
472
  ],
@@ -448,21 +479,21 @@
448
479
  "inputs": [
449
480
  {
450
481
  "internalType": "address",
451
- "name": "_contractAddress",
482
+ "name": "contractAddress",
452
483
  "type": "address"
453
484
  },
454
485
  {
455
486
  "internalType": "uint256",
456
- "name": "_projectId",
487
+ "name": "projectId",
457
488
  "type": "uint256"
458
489
  },
459
490
  {
460
491
  "internalType": "bytes32",
461
- "name": "_dependencyType",
492
+ "name": "dependencyNameAndVersion",
462
493
  "type": "bytes32"
463
494
  }
464
495
  ],
465
- "name": "addProjectDependencyTypeOverride",
496
+ "name": "addProjectDependencyOverride",
466
497
  "outputs": [],
467
498
  "stateMutability": "nonpayable",
468
499
  "type": "function"
@@ -471,7 +502,7 @@
471
502
  "inputs": [
472
503
  {
473
504
  "internalType": "address",
474
- "name": "_contractAddress",
505
+ "name": "contractAddress",
475
506
  "type": "address"
476
507
  }
477
508
  ],
@@ -484,17 +515,17 @@
484
515
  "inputs": [
485
516
  {
486
517
  "internalType": "address",
487
- "name": "_sender",
518
+ "name": "sender",
488
519
  "type": "address"
489
520
  },
490
521
  {
491
522
  "internalType": "address",
492
- "name": "_contract",
523
+ "name": "contract_",
493
524
  "type": "address"
494
525
  },
495
526
  {
496
527
  "internalType": "bytes4",
497
- "name": "_selector",
528
+ "name": "selector",
498
529
  "type": "bytes4"
499
530
  }
500
531
  ],
@@ -514,7 +545,7 @@
514
545
  "name": "adminACLContract",
515
546
  "outputs": [
516
547
  {
517
- "internalType": "contract IAdminACLV0",
548
+ "internalType": "address",
518
549
  "name": "",
519
550
  "type": "address"
520
551
  }
@@ -526,12 +557,12 @@
526
557
  "inputs": [
527
558
  {
528
559
  "internalType": "bytes32",
529
- "name": "_dependencyType",
560
+ "name": "dependencyNameAndVersion",
530
561
  "type": "bytes32"
531
562
  },
532
563
  {
533
564
  "internalType": "uint256",
534
- "name": "_index",
565
+ "name": "index",
535
566
  "type": "uint256"
536
567
  }
537
568
  ],
@@ -550,12 +581,12 @@
550
581
  "inputs": [
551
582
  {
552
583
  "internalType": "bytes32",
553
- "name": "_dependencyType",
584
+ "name": "dependencyNameAndVersion",
554
585
  "type": "bytes32"
555
586
  },
556
587
  {
557
588
  "internalType": "uint256",
558
- "name": "_index",
589
+ "name": "index",
559
590
  "type": "uint256"
560
591
  }
561
592
  ],
@@ -570,11 +601,24 @@
570
601
  "stateMutability": "view",
571
602
  "type": "function"
572
603
  },
604
+ {
605
+ "inputs": [],
606
+ "name": "getDependencyCount",
607
+ "outputs": [
608
+ {
609
+ "internalType": "uint256",
610
+ "name": "",
611
+ "type": "uint256"
612
+ }
613
+ ],
614
+ "stateMutability": "view",
615
+ "type": "function"
616
+ },
573
617
  {
574
618
  "inputs": [
575
619
  {
576
620
  "internalType": "bytes32",
577
- "name": "_dependencyType",
621
+ "name": "dependencyNameAndVersion",
578
622
  "type": "bytes32"
579
623
  }
580
624
  ],
@@ -582,7 +626,7 @@
582
626
  "outputs": [
583
627
  {
584
628
  "internalType": "string",
585
- "name": "typeAndVersion",
629
+ "name": "nameAndVersion",
586
630
  "type": "string"
587
631
  },
588
632
  {
@@ -612,7 +656,7 @@
612
656
  },
613
657
  {
614
658
  "internalType": "string",
615
- "name": "referenceWebsite",
659
+ "name": "dependencyWebsite",
616
660
  "type": "string"
617
661
  },
618
662
  {
@@ -631,18 +675,13 @@
631
675
  },
632
676
  {
633
677
  "inputs": [
634
- {
635
- "internalType": "bytes32",
636
- "name": "_dependencyType",
637
- "type": "bytes32"
638
- },
639
678
  {
640
679
  "internalType": "uint256",
641
- "name": "_index",
680
+ "name": "index",
642
681
  "type": "uint256"
643
682
  }
644
683
  ],
645
- "name": "getDependencyScript",
684
+ "name": "getDependencyNameAndVersion",
646
685
  "outputs": [
647
686
  {
648
687
  "internalType": "string",
@@ -656,22 +695,35 @@
656
695
  {
657
696
  "inputs": [
658
697
  {
659
- "internalType": "bytes32",
660
- "name": "_dependencyType",
661
- "type": "bytes32"
698
+ "internalType": "address",
699
+ "name": "contractAddress",
700
+ "type": "address"
662
701
  },
663
702
  {
664
703
  "internalType": "uint256",
665
- "name": "_index",
704
+ "name": "projectId",
666
705
  "type": "uint256"
667
706
  }
668
707
  ],
669
- "name": "getDependencyScriptBytecodeAddress",
708
+ "name": "getDependencyNameAndVersionForProject",
670
709
  "outputs": [
671
710
  {
672
- "internalType": "address",
711
+ "internalType": "string",
673
712
  "name": "",
674
- "type": "address"
713
+ "type": "string"
714
+ }
715
+ ],
716
+ "stateMutability": "view",
717
+ "type": "function"
718
+ },
719
+ {
720
+ "inputs": [],
721
+ "name": "getDependencyNamesAndVersions",
722
+ "outputs": [
723
+ {
724
+ "internalType": "string[]",
725
+ "name": "",
726
+ "type": "string[]"
675
727
  }
676
728
  ],
677
729
  "stateMutability": "view",
@@ -681,21 +733,21 @@
681
733
  "inputs": [
682
734
  {
683
735
  "internalType": "bytes32",
684
- "name": "_dependencyType",
736
+ "name": "dependencyNameAndVersion",
685
737
  "type": "bytes32"
686
738
  },
687
739
  {
688
740
  "internalType": "uint256",
689
- "name": "_index",
741
+ "name": "index",
690
742
  "type": "uint256"
691
743
  }
692
744
  ],
693
- "name": "getDependencyScriptBytecodeStorageVersion",
745
+ "name": "getDependencyScript",
694
746
  "outputs": [
695
747
  {
696
- "internalType": "bytes32",
748
+ "internalType": "string",
697
749
  "name": "",
698
- "type": "bytes32"
750
+ "type": "string"
699
751
  }
700
752
  ],
701
753
  "stateMutability": "view",
@@ -705,16 +757,21 @@
705
757
  "inputs": [
706
758
  {
707
759
  "internalType": "bytes32",
708
- "name": "_dependencyType",
760
+ "name": "dependencyNameAndVersion",
709
761
  "type": "bytes32"
762
+ },
763
+ {
764
+ "internalType": "uint256",
765
+ "name": "index",
766
+ "type": "uint256"
710
767
  }
711
768
  ],
712
- "name": "getDependencyScriptCount",
769
+ "name": "getDependencyScriptBytecodeAddress",
713
770
  "outputs": [
714
771
  {
715
- "internalType": "uint256",
772
+ "internalType": "address",
716
773
  "name": "",
717
- "type": "uint256"
774
+ "type": "address"
718
775
  }
719
776
  ],
720
777
  "stateMutability": "view",
@@ -722,26 +779,37 @@
722
779
  },
723
780
  {
724
781
  "inputs": [
782
+ {
783
+ "internalType": "bytes32",
784
+ "name": "dependencyNameAndVersion",
785
+ "type": "bytes32"
786
+ },
725
787
  {
726
788
  "internalType": "uint256",
727
- "name": "_index",
789
+ "name": "index",
728
790
  "type": "uint256"
729
791
  }
730
792
  ],
731
- "name": "getDependencyType",
793
+ "name": "getDependencyScriptBytecodeStorageVersion",
732
794
  "outputs": [
733
795
  {
734
- "internalType": "string",
796
+ "internalType": "bytes32",
735
797
  "name": "",
736
- "type": "string"
798
+ "type": "bytes32"
737
799
  }
738
800
  ],
739
801
  "stateMutability": "view",
740
802
  "type": "function"
741
803
  },
742
804
  {
743
- "inputs": [],
744
- "name": "getDependencyTypeCount",
805
+ "inputs": [
806
+ {
807
+ "internalType": "bytes32",
808
+ "name": "dependencyNameAndVersion",
809
+ "type": "bytes32"
810
+ }
811
+ ],
812
+ "name": "getDependencyScriptCount",
745
813
  "outputs": [
746
814
  {
747
815
  "internalType": "uint256",
@@ -755,17 +823,17 @@
755
823
  {
756
824
  "inputs": [
757
825
  {
758
- "internalType": "address",
759
- "name": "_contractAddress",
760
- "type": "address"
826
+ "internalType": "bytes32",
827
+ "name": "licenseType",
828
+ "type": "bytes32"
761
829
  },
762
830
  {
763
831
  "internalType": "uint256",
764
- "name": "_projectId",
832
+ "name": "index",
765
833
  "type": "uint256"
766
834
  }
767
835
  ],
768
- "name": "getDependencyTypeForProject",
836
+ "name": "getLicenseText",
769
837
  "outputs": [
770
838
  {
771
839
  "internalType": "string",
@@ -777,13 +845,19 @@
777
845
  "type": "function"
778
846
  },
779
847
  {
780
- "inputs": [],
781
- "name": "getDependencyTypes",
848
+ "inputs": [
849
+ {
850
+ "internalType": "bytes32",
851
+ "name": "licenseType",
852
+ "type": "bytes32"
853
+ }
854
+ ],
855
+ "name": "getLicenseTextChunkCount",
782
856
  "outputs": [
783
857
  {
784
- "internalType": "string[]",
858
+ "internalType": "uint256",
785
859
  "name": "",
786
- "type": "string[]"
860
+ "type": "uint256"
787
861
  }
788
862
  ],
789
863
  "stateMutability": "view",
@@ -793,7 +867,7 @@
793
867
  "inputs": [
794
868
  {
795
869
  "internalType": "uint256",
796
- "name": "_index",
870
+ "name": "index",
797
871
  "type": "uint256"
798
872
  }
799
873
  ],
@@ -838,7 +912,7 @@
838
912
  "inputs": [
839
913
  {
840
914
  "internalType": "uint256",
841
- "name": "_index",
915
+ "name": "index",
842
916
  "type": "uint256"
843
917
  }
844
918
  ],
@@ -883,7 +957,7 @@
883
957
  "inputs": [
884
958
  {
885
959
  "internalType": "address",
886
- "name": "_adminACLContract",
960
+ "name": "adminACLContract_",
887
961
  "type": "address"
888
962
  }
889
963
  ],
@@ -928,7 +1002,7 @@
928
1002
  "inputs": [
929
1003
  {
930
1004
  "internalType": "bytes32",
931
- "name": "_dependencyType",
1005
+ "name": "dependencyNameAndVersion",
932
1006
  "type": "bytes32"
933
1007
  }
934
1008
  ],
@@ -941,12 +1015,12 @@
941
1015
  "inputs": [
942
1016
  {
943
1017
  "internalType": "bytes32",
944
- "name": "_dependencyType",
1018
+ "name": "dependencyNameAndVersion",
945
1019
  "type": "bytes32"
946
1020
  },
947
1021
  {
948
1022
  "internalType": "uint256",
949
- "name": "_index",
1023
+ "name": "index",
950
1024
  "type": "uint256"
951
1025
  }
952
1026
  ],
@@ -959,12 +1033,12 @@
959
1033
  "inputs": [
960
1034
  {
961
1035
  "internalType": "bytes32",
962
- "name": "_dependencyType",
1036
+ "name": "dependencyNameAndVersion",
963
1037
  "type": "bytes32"
964
1038
  },
965
1039
  {
966
1040
  "internalType": "uint256",
967
- "name": "_index",
1041
+ "name": "index",
968
1042
  "type": "uint256"
969
1043
  }
970
1044
  ],
@@ -977,7 +1051,7 @@
977
1051
  "inputs": [
978
1052
  {
979
1053
  "internalType": "bytes32",
980
- "name": "_dependencyType",
1054
+ "name": "dependencyNameAndVersion",
981
1055
  "type": "bytes32"
982
1056
  }
983
1057
  ],
@@ -986,20 +1060,33 @@
986
1060
  "stateMutability": "nonpayable",
987
1061
  "type": "function"
988
1062
  },
1063
+ {
1064
+ "inputs": [
1065
+ {
1066
+ "internalType": "bytes32",
1067
+ "name": "licenseType",
1068
+ "type": "bytes32"
1069
+ }
1070
+ ],
1071
+ "name": "removeLicenseLastText",
1072
+ "outputs": [],
1073
+ "stateMutability": "nonpayable",
1074
+ "type": "function"
1075
+ },
989
1076
  {
990
1077
  "inputs": [
991
1078
  {
992
1079
  "internalType": "address",
993
- "name": "_contractAddress",
1080
+ "name": "contractAddress",
994
1081
  "type": "address"
995
1082
  },
996
1083
  {
997
1084
  "internalType": "uint256",
998
- "name": "_projectId",
1085
+ "name": "projectId",
999
1086
  "type": "uint256"
1000
1087
  }
1001
1088
  ],
1002
- "name": "removeProjectDependencyTypeOverride",
1089
+ "name": "removeProjectDependencyOverride",
1003
1090
  "outputs": [],
1004
1091
  "stateMutability": "nonpayable",
1005
1092
  "type": "function"
@@ -1008,7 +1095,7 @@
1008
1095
  "inputs": [
1009
1096
  {
1010
1097
  "internalType": "address",
1011
- "name": "_contractAddress",
1098
+ "name": "contractAddress",
1012
1099
  "type": "address"
1013
1100
  }
1014
1101
  ],
@@ -1041,17 +1128,17 @@
1041
1128
  "inputs": [
1042
1129
  {
1043
1130
  "internalType": "bytes32",
1044
- "name": "_dependencyType",
1131
+ "name": "dependencyNameAndVersion",
1045
1132
  "type": "bytes32"
1046
1133
  },
1047
1134
  {
1048
1135
  "internalType": "uint256",
1049
- "name": "_index",
1136
+ "name": "index",
1050
1137
  "type": "uint256"
1051
1138
  },
1052
1139
  {
1053
1140
  "internalType": "string",
1054
- "name": "_additionalCDN",
1141
+ "name": "additionalCDN",
1055
1142
  "type": "string"
1056
1143
  }
1057
1144
  ],
@@ -1064,17 +1151,17 @@
1064
1151
  "inputs": [
1065
1152
  {
1066
1153
  "internalType": "bytes32",
1067
- "name": "_dependencyType",
1154
+ "name": "dependencyNameAndVersion",
1068
1155
  "type": "bytes32"
1069
1156
  },
1070
1157
  {
1071
1158
  "internalType": "uint256",
1072
- "name": "_index",
1159
+ "name": "index",
1073
1160
  "type": "uint256"
1074
1161
  },
1075
1162
  {
1076
1163
  "internalType": "string",
1077
- "name": "_additionalRepository",
1164
+ "name": "additionalRepository",
1078
1165
  "type": "string"
1079
1166
  }
1080
1167
  ],
@@ -1087,12 +1174,12 @@
1087
1174
  "inputs": [
1088
1175
  {
1089
1176
  "internalType": "bytes32",
1090
- "name": "_dependencyType",
1177
+ "name": "dependencyNameAndVersion",
1091
1178
  "type": "bytes32"
1092
1179
  },
1093
1180
  {
1094
1181
  "internalType": "string",
1095
- "name": "_preferredCDN",
1182
+ "name": "preferredCDN",
1096
1183
  "type": "string"
1097
1184
  }
1098
1185
  ],
@@ -1105,12 +1192,12 @@
1105
1192
  "inputs": [
1106
1193
  {
1107
1194
  "internalType": "bytes32",
1108
- "name": "_dependencyType",
1195
+ "name": "dependencyNameAndVersion",
1109
1196
  "type": "bytes32"
1110
1197
  },
1111
1198
  {
1112
1199
  "internalType": "string",
1113
- "name": "_preferredRepository",
1200
+ "name": "preferredRepository",
1114
1201
  "type": "string"
1115
1202
  }
1116
1203
  ],
@@ -1123,16 +1210,21 @@
1123
1210
  "inputs": [
1124
1211
  {
1125
1212
  "internalType": "bytes32",
1126
- "name": "_dependencyType",
1213
+ "name": "dependencyNameAndVersion",
1127
1214
  "type": "bytes32"
1128
1215
  },
1216
+ {
1217
+ "internalType": "uint256",
1218
+ "name": "index",
1219
+ "type": "uint256"
1220
+ },
1129
1221
  {
1130
1222
  "internalType": "string",
1131
- "name": "_referenceWebsite",
1223
+ "name": "script",
1132
1224
  "type": "string"
1133
1225
  }
1134
1226
  ],
1135
- "name": "updateDependencyReferenceWebsite",
1227
+ "name": "updateDependencyScript",
1136
1228
  "outputs": [],
1137
1229
  "stateMutability": "nonpayable",
1138
1230
  "type": "function"
@@ -1141,21 +1233,39 @@
1141
1233
  "inputs": [
1142
1234
  {
1143
1235
  "internalType": "bytes32",
1144
- "name": "_dependencyType",
1236
+ "name": "dependencyNameAndVersion",
1145
1237
  "type": "bytes32"
1146
1238
  },
1147
1239
  {
1148
1240
  "internalType": "uint256",
1149
- "name": "_index",
1241
+ "name": "index",
1150
1242
  "type": "uint256"
1151
1243
  },
1244
+ {
1245
+ "internalType": "address",
1246
+ "name": "scriptPointer",
1247
+ "type": "address"
1248
+ }
1249
+ ],
1250
+ "name": "updateDependencyScriptPointer",
1251
+ "outputs": [],
1252
+ "stateMutability": "nonpayable",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [
1257
+ {
1258
+ "internalType": "bytes32",
1259
+ "name": "dependencyNameAndVersion",
1260
+ "type": "bytes32"
1261
+ },
1152
1262
  {
1153
1263
  "internalType": "string",
1154
- "name": "_script",
1264
+ "name": "dependencyWebsite",
1155
1265
  "type": "string"
1156
1266
  }
1157
1267
  ],
1158
- "name": "updateDependencyScript",
1268
+ "name": "updateDependencyWebsite",
1159
1269
  "outputs": [],
1160
1270
  "stateMutability": "nonpayable",
1161
1271
  "type": "function"
@@ -1164,46 +1274,50 @@
1164
1274
  "inputs": [
1165
1275
  {
1166
1276
  "internalType": "bytes32",
1167
- "name": "_dependencyType",
1277
+ "name": "licenseType",
1168
1278
  "type": "bytes32"
1169
1279
  },
1170
1280
  {
1171
1281
  "internalType": "uint256",
1172
- "name": "_index",
1282
+ "name": "index",
1173
1283
  "type": "uint256"
1174
1284
  },
1175
1285
  {
1176
- "internalType": "address",
1177
- "name": "_scriptPointer",
1178
- "type": "address"
1286
+ "internalType": "string",
1287
+ "name": "text",
1288
+ "type": "string"
1179
1289
  }
1180
1290
  ],
1181
- "name": "updateDependencyScriptPointer",
1291
+ "name": "updateLicenseText",
1182
1292
  "outputs": [],
1183
1293
  "stateMutability": "nonpayable",
1184
1294
  "type": "function"
1185
1295
  }
1186
1296
  ],
1187
- "bytecode": "0x608060405234801561001057600080fd5b50613417806100206000396000f3fe608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1188
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1297
+ "bytecode": "0x608060405234801561001057600080fd5b50613a68806100206000396000f3fe608060405234801561001057600080fd5b50600436106102555760003560e01c80639532f2f4116101425780639532f2f414610463578063a0a82bd314610478578063a1a7a47b1461048b578063ad6b414d1461049e578063b1d24cb2146104b1578063b86b69f1146104c4578063ba228512146104cc578063be3d3ee6146104df578063c0739270146104f2578063c0cd565f14610505578063c42ae81414610518578063c4d66de81461052b578063caaa3bb71461053e578063cc86ba4b14610551578063cea2961a14610564578063dbc71ccb14610577578063dc33f4ae1461058a578063dfa3be531461059d578063f0b99382146105b0578063f146f17f146105c3578063f2fde38b146105d6578063f8ac18be146105e9578063f9c0fae6146105fc578063fb5cd19b1461060f578063fed37e821461061757600080fd5b8062e879031461025a57806307f9f78614610283578063137621861461029857806316a1012d146102ad578063199eb8e0146102c05780631a051d49146102d35780631e9bef46146102e6578063230448b1146102fb57806325ffb3761461031e5780633e76919a1461034657806344346a5f14610359578063447b051a1461036f5780634a78a932146103825780634bd1a387146103955780634f5267ef146103a8578063518cb3df146103bb57806352ccc021146103ce5780635668bc5e146103e15780635710f83d146103f4578063613d57fd1461040757806366d549a11461041a5780636dfa9f561461042d578063715018a61461044057806371b70a71146104485780638da5cb5b1461045b575b600080fd5b61026d610268366004612f39565b61061f565b60405161027a9190612fab565b60405180910390f35b61028b6106f8565b60405161027a9190612fbe565b6102ab6102a63660046130ce565b6107ae565b005b6102ab6102bb3660046130ce565b61085f565b6102ab6102ce366004613139565b610907565b6102ab6102e13660046130ce565b6109c7565b6102ee610a78565b60405161027a9190613154565b61030e610309366004613168565b610a91565b604051901515815260200161027a565b61033161032c3660046131bc565b610b45565b60405161027a999897969594939291906131d5565b6102ee6103543660046131bc565b610d80565b610361610daf565b60405190815260200161027a565b6102ab61037d366004613270565b610dc9565b61026d6103903660046132a3565b610e57565b6102ab6103a33660046132cd565b610faa565b6102ab6103b63660046132a3565b61107c565b61026d6103c9366004612f39565b61115e565b6102ab6103dc3660046131bc565b61135c565b6103616103ef3660046131bc565b611481565b6102ab6104023660046132f9565b6114ae565b6103616104153660046131bc565b611578565b6102ab61042836600461333f565b61159e565b6102ab61043b366004612f39565b6116f4565b6102ab6117f9565b61026d610456366004612f39565b61180d565b6102ee611896565b61046b6118aa565b60405161027a91906133da565b6102ab6104863660046132f9565b611968565b6102ab610499366004612f39565b611a30565b6102ab6104ac3660046131bc565b611b0f565b61026d6104bf3660046131bc565b611c14565b610361611c42565b6103616104da366004612f39565b611c57565b6102ab6104ed3660046132f9565b611d2d565b6102ab6105003660046131bc565b611dac565b6102ab61051336600461343c565b611ea2565b6102ab6105263660046132f9565b611f43565b6102ab610539366004613139565b611fb3565b6102ab61054c3660046130ce565b6120ce565b61026d61055f3660046131bc565b612178565b61030e610572366004613139565b6121a6565b6102ab610585366004613139565b6121bd565b6102ab6105983660046132f9565b61226b565b6102ee6105ab366004612f39565b61230a565b61026d6105be366004612f39565b612365565b6102ab6105d13660046132f9565b6123bd565b6102ab6105e4366004613139565b612480565b6102ab6105f73660046131bc565b6124f9565b6102ab61060a3660046132f9565b61267e565b61046b6126f1565b61036161279f565b6060600061062b6127b4565b600085815260059190910160205260409020600781015490915061065590849062ffffff166127d8565b60008381526002820160205260409020805461067090613471565b80601f016020809104026020016040519081016040528092919081815260200182805461069c90613471565b80156106e95780601f106106be576101008083540402835291602001916106e9565b820191906000526020600020905b8154815290600101906020018083116106cc57829003601f168201915b50505050509150505b92915050565b606060006107046127b4565b905060006107148260070161281c565b90506000816001600160401b038111156107305761073061300b565b604051908082528060200260200182016040528015610759578160200160208202803683370190505b50905060005b828110156107a6576107746007850182612826565b828281518110610786576107866134a5565b6001600160a01b039092166020928302919091019091015260010161075f565b509392505050565b6107be6309bb10c360e11b612832565b6107c781612882565b6107d0836128d1565b60006107da6127b4565b600085815260059190910160205260409020600781015490915061080490849062ffffff166127d8565b6000838152600282016020526040902061081e838261351f565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516108519291906135d8565b60405180910390a250505050565b61086f6316a1012d60e01b612832565b61087881612882565b6108818361292e565b600061088b6127b4565b60008581526006919091016020526040902060018101549091506108b590849062ffffff166127d8565b6108be8261298d565b60008481526020839052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206139f383398151915291a250505050565b61091662ccf5c760e51b612832565b61092b816109226127b4565b60070190612a3d565b6109905760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6109d7631a051d4960e01b612832565b6109e081612882565b6109e9836128d1565b60006109f36127b4565b6000858152600591909101602052604090206007810154909150610a24908490600160301b900462ffffff166127d8565b610a2d8261298d565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020613a1383398151915291a250505050565b6000610a826127b4565b546001600160a01b0316919050565b600080610a9c611896565b6001600160a01b031614158015610b3b5750610ab66127b4565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b91906135fa565b90505b9392505050565b606080606060006060600060606000806000610b5f6127b4565b60008c8152600591909101602052604090209050610b7c8b612a52565b8154610b8790612a52565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610bc890613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf490613471565b8015610c415780601f10610c1657610100808354040283529160200191610c41565b820191906000526020600020905b815481529060010190602001808311610c2457829003601f168201915b50505050509650848054610c5490613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8090613471565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b50505050509450828054610ce090613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0c90613471565b8015610d595780601f10610d2e57610100808354040283529160200191610d59565b820191906000526020600020905b815481529060010190602001808311610d3c57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610d8b6127b4565b9050610da283610d9d8360070161281c565b6127d8565b610b3e6007820184612826565b6000610dc4610dbc6127b4565b60010161281c565b905090565b610dd963223d828d60e11b612832565b610de2816128d1565b610deb83612abd565b80610df46127b4565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b6060610e6283612abd565b6000610e6c6127b4565b6001600160a01b03851660009081526009919091016020908152604080832086845290915290205490508015610ead57610ea581612a52565b9150506106f2565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610f1357506040513d6000823e601f3d908101601f19168201604052610f10919081019061366c565b60015b610f975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610987565b829450505050506106f2565b5092915050565b610fba634bd1a38760e01b612832565b610fc381612b13565b610fcc826128d1565b6000610fd66127b4565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b038816179055925492935061103992041660016136ee565b60078201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020613a1383398151915290600090a2505050565b61108c634f5267ef60e01b612832565b60006110966127b4565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506111095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610987565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061116a6127b4565b600085815260059190910160205260409020600781015490915061119b908490600160301b900462ffffff166127d8565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b602060405180830381865af415801561120d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611231919061370a565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036112e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611291908590600401613154565b600060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d69190810190613723565b93505050506106f2565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611317908590600401613154565b600060405180830381865af4158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d6919081019061376b565b61136c6352ccc02160e01b612832565b611375816128d1565b600061137f6127b4565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166113f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610987565b6007810154600682019060009061141690600190600160301b900462ffffff1661379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020613a1383398151915291a25050565b600061148b6127b4565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6114be635710f83d60e01b612832565b6114c781612882565b6114d0826128d1565b60006114da6127b4565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061151a848261351f565b506115268160016137bb565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516108519291906135d8565b60006115826127b4565b600092835260060160205250604090206001015462ffffff1690565b6115ae6366d549a160e01b612832565b6115b78461292e565b6115c48560406001612b67565b61160d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610987565b60006116176127b4565b90506116266001820187612bdb565b61166e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610987565b600086815260058201602052604090208581556001810161168f868261351f565b506003810161169e858261351f565b50600581016116ad848261351f565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516116e3939291906137ce565b60405180910390a350505050505050565b6117046336fd4fab60e11b612832565b61170d826128d1565b60006117176127b4565b600084815260058201602052604090206007810154919250906301000000900462ffffff1661174684826127d8565b6000611753600183613811565b60008781526005860160209081526040808320848452600490810183528184208a855290880190925290912091925061178c9082613824565b50600081815260048401602052604081206117a691612eeb565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611801612be7565b61180b6000612c46565b565b606060006118196127b4565b600085815260069190910160205260409020600181015490915061184390849062ffffff166127d8565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b6000610dc46033546001600160a01b031690565b606060006118b66127b4565b905060006118c68260010161281c565b90506000816001600160401b038111156118e2576118e261300b565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b50905060005b828110156107a6576119386119336001860183612826565b612a52565b82828151811061194a5761194a6134a5565b60200260200101819052508080611960906138f8565b91505061191b565b61197863a0a82bd360e01b612832565b61198181612882565b61198a8261292e565b60006119946127b4565b60008481526006919091016020526040902090506119b18261298d565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b039590951694909417909355546119f89216906136ee565b60018201805462ffffff191662ffffff9290921691909117905560405183906000805160206139f383398151915290600090a2505050565b611a4063a1a7a47b60e01b612832565b611a49826128d1565b6000611a536127b4565b600084815260059190910160205260409020600781015490915062ffffff16611a7c83826127d8565b6000611a89600183613811565b60008181526002850160205260408082208783529120919250611aac9082613824565b5060008181526002840160205260408120611ac691612eeb565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611b1f63ad6b414d60e01b612832565b611b288161292e565b6000611b326127b4565b600083815260069190910160205260409020600181015490915062ffffff1680611ba95760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610987565b816000611bb760018461379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff19166000198601909416939093179092555184916000805160206139f383398151915291a2505050565b60606000611c206127b4565b9050611c3283610d9d8360010161281c565b610b3e6119336001830185612826565b6000610dc4611c4f6127b4565b60070161281c565b600080611c626127b4565b6000858152600591909101602052604090206007810154909150611c93908490600160301b900462ffffff166127d8565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611ce4916001600160a01b031690600401613154565b602060405180830381865af4158015611d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d25919061370a565b949350505050565b611d3d635f1e9f7360e11b612832565b611d46826128d1565b80611d4f6127b4565b60008481526005919091016020526040902060010190611d6f908261351f565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051611da09190612fab565b60405180910390a25050565b611dbc630c07392760e41b612832565b80611e155760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610987565b611e2a81611e216127b4565b60030190612bdb565b611e745760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610987565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b611eb263c0cd565f60e01b612832565b611ebb81612b13565b611ec4836128d1565b6000611ece6127b4565b6000858152600591909101602052604090206007810154909150611eff908490600160301b900462ffffff166127d8565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b038616179055518591600080516020613a1383398151915291a250505050565b611f5363310aba0560e21b612832565b611f5c826128d1565b80611f656127b4565b60008481526005918201602052604090200190611f82908261351f565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b82604051611da09190612fab565b600054610100900460ff1615808015611fd35750600054600160ff909116105b80611fed5750303b158015611fed575060005460ff166001145b6120505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610987565b6000805460ff191660011790558015612073576000805461ff0019166101001790555b61207b612c79565b61208482612c46565b80156120ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6120de63caaa3bb760e01b612832565b6120e781612882565b6120f0836128d1565b60006120fa6127b4565b600085815260059190910160205260409020600781015490915061212b9084906301000000900462ffffff166127d8565b60008381526004820160205260409020612145838261351f565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516108519291906135d8565b606060006121846127b4565b905061219683610d9d8360030161281c565b610b3e6119336003830185612826565b60006106f2826121b46127b4565b60070190612ca8565b6121cd63dbc71ccb60e01b612832565b6121d681612b13565b6121eb816121e26127b4565b60070190612cbd565b6122345760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610987565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61227b636e19fa5760e11b612832565b61228481612882565b61228d826128d1565b60006122976127b4565b60008481526005919091016020526040902090506122b48261298d565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054611039929190041660016136ee565b6000806123156127b4565b6000858152600591909101602052604090206007810154909150612346908490600160301b900462ffffff166127d8565b60009283526006016020525060409020546001600160a01b0316919050565b606060006123716127b4565b60008581526005919091016020526040902060078101549091506123a29084906301000000900462ffffff166127d8565b60008381526004820160205260409020805461067090613471565b6123cd63f146f17f60e01b612832565b6123d681612882565b6123df826128d1565b60006123e96127b4565b600084815260059190910160209081526040808320600781015462ffffff1680855260028201909352922091925090612422848261351f565b5061242e8160016137bb565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516108519291906135d8565b612488612be7565b6001600160a01b0381166124ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610987565b6124f681612c46565b50565b612509637c560c5f60e11b612832565b612512816128d1565b600061251c6127b4565b6000838152600582016020526040902060078101549192509062ffffff16158015612555575060078101546301000000900462ffffff16155b801561256f57506007810154600160301b900462ffffff16155b6125f15760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610987565b6125fe6001830184612cd2565b5060008381526005830160205260408120818155906126206001830182612eeb565b61262e600383016000612eeb565b61263c600583016000612eeb565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b61268e637ce07d7360e11b612832565b612697826128d1565b806126a06127b4565b600084815260059190910160205260409020600301906126c0908261351f565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051611da09190612fab565b606060006126fd6127b4565b9050600061270d8260030161281c565b90506000816001600160401b038111156127295761272961300b565b60405190808252806020026020018201604052801561275c57816020015b60608152602001906001900390816127475790505b50905060005b828110156107a65761277a6119336003860183612826565b82828151811061278c5761278c6134a5565b6020908102919091010152600101612762565b6000610dc46127ac6127b4565b60030161281c565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b8082106120ca5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610987565b60006106f2825490565b6000610b3e8383612cde565b61283d333083610a91565b6124f65760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610987565b80516000036124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610987565b6128e6816128dd6127b4565b60010190612d08565b6124f65760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610987565b6129438161293a6127b4565b60030190612d08565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610987565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016129c593929190613911565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612a375760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610987565b50919050565b6000610b3e836001600160a01b038416612d14565b606060005b828160ff1660208110612a6c57612a6c6134a5565b1a60f81b6001600160f81b03191615801590612a8b575060208160ff16105b15612aa25780612a9a81613972565b915050612a57565b60405191506040820160405280825282602083015250919050565b612ac9816121b46127b4565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610987565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610987565b60008060005b60208160ff161015612bc7576000868260ff1660208110612b9057612b906134a5565b1a90508015801590612ba5575060808160ff16105b15612bbe578560ff168160ff1603612bbe578260010192505b50600101612b6d565b8360ff168260ff1614925050509392505050565b6000610b3e8383612e07565b33612bf0611896565b6001600160a01b03161461180b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610987565b612c4f81612e51565b80612c586127b4565b80546001600160a01b0319166001600160a01b039290921691909117905550565b600054610100900460ff16612ca05760405162461bcd60e51b815260040161098790613991565b61180b612ea3565b6000610b3e836001600160a01b038416612ed3565b6000610b3e836001600160a01b038416612e07565b6000610b3e8383612d14565b6000826000018281548110612cf557612cf56134a5565b9060005260206000200154905092915050565b6000610b3e8383612ed3565b60008181526001830160205260408120548015612dfd576000612d38600183613811565b8554909150600090612d4c90600190613811565b9050818114612db1576000866000018281548110612d6c57612d6c6134a5565b9060005260206000200154905080876000018481548110612d8f57612d8f6134a5565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dc257612dc26139dc565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106f2565b60009150506106f2565b6000612e138383612ed3565b612e49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106f2565b5060006106f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612eca5760405162461bcd60e51b815260040161098790613991565b61180b33612c46565b60009081526001919091016020526040902054151590565b508054612ef790613471565b6000825580601f10612f07575050565b601f0160209004906000526020600020908101906124f691905b80821115612f355760008155600101612f21565b5090565b60008060408385031215612f4c57600080fd5b50508035926020909101359150565b60005b83811015612f76578181015183820152602001612f5e565b50506000910152565b60008151808452612f97816020860160208601612f5b565b601f01601f19169290920160200192915050565b602081526000610b3e6020830184612f7f565b6020808252825182820181905260009190848201906040850190845b81811015612fff5783516001600160a01b031683529284019291840191600101612fda565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156130495761304961300b565b604052919050565b60006001600160401b0382111561306a5761306a61300b565b50601f01601f191660200190565b600082601f83011261308957600080fd5b813561309c61309782613051565b613021565b8181528460208386010111156130b157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156130e357600080fd5b833592506020840135915060408401356001600160401b0381111561310757600080fd5b61311386828701613078565b9150509250925092565b80356001600160a01b038116811461313457600080fd5b919050565b60006020828403121561314b57600080fd5b610b3e8261311d565b6001600160a01b0391909116815260200190565b60008060006060848603121561317d57600080fd5b6131868461311d565b92506131946020850161311d565b915060408401356001600160e01b0319811681146131b157600080fd5b809150509250925092565b6000602082840312156131ce57600080fd5b5035919050565b60006101208083526131e98184018d612f7f565b905082810360208401526131fd818c612f7f565b90508281036040840152613211818b612f7f565b905062ffffff808a1660608501528382036080850152613231828a612f7f565b915080881660a085015283820360c085015261324d8288612f7f565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060006060848603121561328557600080fd5b61328e8461311d565b95602085013595506040909401359392505050565b600080604083850312156132b657600080fd5b6132bf8361311d565b946020939093013593505050565b600080604083850312156132e057600080fd5b823591506132f06020840161311d565b90509250929050565b6000806040838503121561330c57600080fd5b8235915060208301356001600160401b0381111561332957600080fd5b61333585828601613078565b9150509250929050565b600080600080600060a0868803121561335757600080fd5b853594506020860135935060408601356001600160401b038082111561337c57600080fd5b61338889838a01613078565b9450606088013591508082111561339e57600080fd5b6133aa89838a01613078565b935060808801359150808211156133c057600080fd5b506133cd88828901613078565b9150509295509295909350565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561342f57603f1988860301845261341d858351612f7f565b94509285019290850190600101613401565b5092979650505050505050565b60008060006060848603121561345157600080fd5b83359250602084013591506134686040850161311d565b90509250925092565b600181811c9082168061348557607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561350557600081815260208120601f850160051c810160208610156134e25750805b601f850160051c820191505b81811015613501578281556001016134ee565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156135385761353861300b565b61354c816135468454613471565b846134bb565b602080601f83116001811461357b57600084156135695750858301515b613573858261350a565b865550613501565b600085815260208120601f198616915b828110156135aa5788860151825594840194600190910190840161358b565b50858210156135c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006135eb6040830185612f7f565b90508260208301529392505050565b60006020828403121561360c57600080fd5b81518015158114610b3e57600080fd5b600061362a61309784613051565b905082815283838301111561363e57600080fd5b610b3e836020830184612f5b565b600082601f83011261365d57600080fd5b610b3e8383516020850161361c565b60008060006060848603121561368157600080fd5b83516001600160401b038082111561369857600080fd5b6136a48783880161364c565b945060208601519150808211156136ba57600080fd5b506136c78682870161364c565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b62ffffff818116838216019080821115610fa357610fa36136d8565b60006020828403121561371c57600080fd5b5051919050565b60006020828403121561373557600080fd5b81516001600160401b0381111561374b57600080fd5b8201601f8101841361375c57600080fd5b611d258482516020840161361c565b60006020828403121561377d57600080fd5b81516001600160401b0381111561379357600080fd5b611d258482850161364c565b62ffffff828116828216039080821115610fa357610fa36136d8565b808201808211156106f2576106f26136d8565b6060815260006137e16060830186612f7f565b82810360208401526137f38186612f7f565b905082810360408401526138078185612f7f565b9695505050505050565b818103818111156106f2576106f26136d8565b81810361382f575050565b6138398254613471565b6001600160401b038111156138505761385061300b565b61385e816135468454613471565b6000601f82116001811461388c576000831561387a5750848201545b613884848261350a565b8555506138f1565b600085815260209020601f19841690600086815260209020845b838110156138c657828601548255600195860195909101906020016138a6565b50858310156138e45781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60006001820161390a5761390a6136d8565b5060010190565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161396381604c850160208701612f5b565b91909101604c01949350505050565b600060ff821660ff8103613988576139886136d8565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212206bea8239315a7b7d8769e84ac35190ddba4034e098a49387000f6223d3bf88a964736f6c63430008130033",
1298
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102555760003560e01c80639532f2f4116101425780639532f2f414610463578063a0a82bd314610478578063a1a7a47b1461048b578063ad6b414d1461049e578063b1d24cb2146104b1578063b86b69f1146104c4578063ba228512146104cc578063be3d3ee6146104df578063c0739270146104f2578063c0cd565f14610505578063c42ae81414610518578063c4d66de81461052b578063caaa3bb71461053e578063cc86ba4b14610551578063cea2961a14610564578063dbc71ccb14610577578063dc33f4ae1461058a578063dfa3be531461059d578063f0b99382146105b0578063f146f17f146105c3578063f2fde38b146105d6578063f8ac18be146105e9578063f9c0fae6146105fc578063fb5cd19b1461060f578063fed37e821461061757600080fd5b8062e879031461025a57806307f9f78614610283578063137621861461029857806316a1012d146102ad578063199eb8e0146102c05780631a051d49146102d35780631e9bef46146102e6578063230448b1146102fb57806325ffb3761461031e5780633e76919a1461034657806344346a5f14610359578063447b051a1461036f5780634a78a932146103825780634bd1a387146103955780634f5267ef146103a8578063518cb3df146103bb57806352ccc021146103ce5780635668bc5e146103e15780635710f83d146103f4578063613d57fd1461040757806366d549a11461041a5780636dfa9f561461042d578063715018a61461044057806371b70a71146104485780638da5cb5b1461045b575b600080fd5b61026d610268366004612f39565b61061f565b60405161027a9190612fab565b60405180910390f35b61028b6106f8565b60405161027a9190612fbe565b6102ab6102a63660046130ce565b6107ae565b005b6102ab6102bb3660046130ce565b61085f565b6102ab6102ce366004613139565b610907565b6102ab6102e13660046130ce565b6109c7565b6102ee610a78565b60405161027a9190613154565b61030e610309366004613168565b610a91565b604051901515815260200161027a565b61033161032c3660046131bc565b610b45565b60405161027a999897969594939291906131d5565b6102ee6103543660046131bc565b610d80565b610361610daf565b60405190815260200161027a565b6102ab61037d366004613270565b610dc9565b61026d6103903660046132a3565b610e57565b6102ab6103a33660046132cd565b610faa565b6102ab6103b63660046132a3565b61107c565b61026d6103c9366004612f39565b61115e565b6102ab6103dc3660046131bc565b61135c565b6103616103ef3660046131bc565b611481565b6102ab6104023660046132f9565b6114ae565b6103616104153660046131bc565b611578565b6102ab61042836600461333f565b61159e565b6102ab61043b366004612f39565b6116f4565b6102ab6117f9565b61026d610456366004612f39565b61180d565b6102ee611896565b61046b6118aa565b60405161027a91906133da565b6102ab6104863660046132f9565b611968565b6102ab610499366004612f39565b611a30565b6102ab6104ac3660046131bc565b611b0f565b61026d6104bf3660046131bc565b611c14565b610361611c42565b6103616104da366004612f39565b611c57565b6102ab6104ed3660046132f9565b611d2d565b6102ab6105003660046131bc565b611dac565b6102ab61051336600461343c565b611ea2565b6102ab6105263660046132f9565b611f43565b6102ab610539366004613139565b611fb3565b6102ab61054c3660046130ce565b6120ce565b61026d61055f3660046131bc565b612178565b61030e610572366004613139565b6121a6565b6102ab610585366004613139565b6121bd565b6102ab6105983660046132f9565b61226b565b6102ee6105ab366004612f39565b61230a565b61026d6105be366004612f39565b612365565b6102ab6105d13660046132f9565b6123bd565b6102ab6105e4366004613139565b612480565b6102ab6105f73660046131bc565b6124f9565b6102ab61060a3660046132f9565b61267e565b61046b6126f1565b61036161279f565b6060600061062b6127b4565b600085815260059190910160205260409020600781015490915061065590849062ffffff166127d8565b60008381526002820160205260409020805461067090613471565b80601f016020809104026020016040519081016040528092919081815260200182805461069c90613471565b80156106e95780601f106106be576101008083540402835291602001916106e9565b820191906000526020600020905b8154815290600101906020018083116106cc57829003601f168201915b50505050509150505b92915050565b606060006107046127b4565b905060006107148260070161281c565b90506000816001600160401b038111156107305761073061300b565b604051908082528060200260200182016040528015610759578160200160208202803683370190505b50905060005b828110156107a6576107746007850182612826565b828281518110610786576107866134a5565b6001600160a01b039092166020928302919091019091015260010161075f565b509392505050565b6107be6309bb10c360e11b612832565b6107c781612882565b6107d0836128d1565b60006107da6127b4565b600085815260059190910160205260409020600781015490915061080490849062ffffff166127d8565b6000838152600282016020526040902061081e838261351f565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516108519291906135d8565b60405180910390a250505050565b61086f6316a1012d60e01b612832565b61087881612882565b6108818361292e565b600061088b6127b4565b60008581526006919091016020526040902060018101549091506108b590849062ffffff166127d8565b6108be8261298d565b60008481526020839052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206139f383398151915291a250505050565b61091662ccf5c760e51b612832565b61092b816109226127b4565b60070190612a3d565b6109905760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6109d7631a051d4960e01b612832565b6109e081612882565b6109e9836128d1565b60006109f36127b4565b6000858152600591909101602052604090206007810154909150610a24908490600160301b900462ffffff166127d8565b610a2d8261298d565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020613a1383398151915291a250505050565b6000610a826127b4565b546001600160a01b0316919050565b600080610a9c611896565b6001600160a01b031614158015610b3b5750610ab66127b4565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b91906135fa565b90505b9392505050565b606080606060006060600060606000806000610b5f6127b4565b60008c8152600591909101602052604090209050610b7c8b612a52565b8154610b8790612a52565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610bc890613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf490613471565b8015610c415780601f10610c1657610100808354040283529160200191610c41565b820191906000526020600020905b815481529060010190602001808311610c2457829003601f168201915b50505050509650848054610c5490613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8090613471565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b50505050509450828054610ce090613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0c90613471565b8015610d595780601f10610d2e57610100808354040283529160200191610d59565b820191906000526020600020905b815481529060010190602001808311610d3c57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610d8b6127b4565b9050610da283610d9d8360070161281c565b6127d8565b610b3e6007820184612826565b6000610dc4610dbc6127b4565b60010161281c565b905090565b610dd963223d828d60e11b612832565b610de2816128d1565b610deb83612abd565b80610df46127b4565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b6060610e6283612abd565b6000610e6c6127b4565b6001600160a01b03851660009081526009919091016020908152604080832086845290915290205490508015610ead57610ea581612a52565b9150506106f2565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610f1357506040513d6000823e601f3d908101601f19168201604052610f10919081019061366c565b60015b610f975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610987565b829450505050506106f2565b5092915050565b610fba634bd1a38760e01b612832565b610fc381612b13565b610fcc826128d1565b6000610fd66127b4565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b038816179055925492935061103992041660016136ee565b60078201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020613a1383398151915290600090a2505050565b61108c634f5267ef60e01b612832565b60006110966127b4565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506111095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610987565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061116a6127b4565b600085815260059190910160205260409020600781015490915061119b908490600160301b900462ffffff166127d8565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b602060405180830381865af415801561120d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611231919061370a565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036112e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611291908590600401613154565b600060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d69190810190613723565b93505050506106f2565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611317908590600401613154565b600060405180830381865af4158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d6919081019061376b565b61136c6352ccc02160e01b612832565b611375816128d1565b600061137f6127b4565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166113f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610987565b6007810154600682019060009061141690600190600160301b900462ffffff1661379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020613a1383398151915291a25050565b600061148b6127b4565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6114be635710f83d60e01b612832565b6114c781612882565b6114d0826128d1565b60006114da6127b4565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061151a848261351f565b506115268160016137bb565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516108519291906135d8565b60006115826127b4565b600092835260060160205250604090206001015462ffffff1690565b6115ae6366d549a160e01b612832565b6115b78461292e565b6115c48560406001612b67565b61160d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610987565b60006116176127b4565b90506116266001820187612bdb565b61166e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610987565b600086815260058201602052604090208581556001810161168f868261351f565b506003810161169e858261351f565b50600581016116ad848261351f565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516116e3939291906137ce565b60405180910390a350505050505050565b6117046336fd4fab60e11b612832565b61170d826128d1565b60006117176127b4565b600084815260058201602052604090206007810154919250906301000000900462ffffff1661174684826127d8565b6000611753600183613811565b60008781526005860160209081526040808320848452600490810183528184208a855290880190925290912091925061178c9082613824565b50600081815260048401602052604081206117a691612eeb565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611801612be7565b61180b6000612c46565b565b606060006118196127b4565b600085815260069190910160205260409020600181015490915061184390849062ffffff166127d8565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b6000610dc46033546001600160a01b031690565b606060006118b66127b4565b905060006118c68260010161281c565b90506000816001600160401b038111156118e2576118e261300b565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b50905060005b828110156107a6576119386119336001860183612826565b612a52565b82828151811061194a5761194a6134a5565b60200260200101819052508080611960906138f8565b91505061191b565b61197863a0a82bd360e01b612832565b61198181612882565b61198a8261292e565b60006119946127b4565b60008481526006919091016020526040902090506119b18261298d565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b039590951694909417909355546119f89216906136ee565b60018201805462ffffff191662ffffff9290921691909117905560405183906000805160206139f383398151915290600090a2505050565b611a4063a1a7a47b60e01b612832565b611a49826128d1565b6000611a536127b4565b600084815260059190910160205260409020600781015490915062ffffff16611a7c83826127d8565b6000611a89600183613811565b60008181526002850160205260408082208783529120919250611aac9082613824565b5060008181526002840160205260408120611ac691612eeb565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611b1f63ad6b414d60e01b612832565b611b288161292e565b6000611b326127b4565b600083815260069190910160205260409020600181015490915062ffffff1680611ba95760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610987565b816000611bb760018461379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff19166000198601909416939093179092555184916000805160206139f383398151915291a2505050565b60606000611c206127b4565b9050611c3283610d9d8360010161281c565b610b3e6119336001830185612826565b6000610dc4611c4f6127b4565b60070161281c565b600080611c626127b4565b6000858152600591909101602052604090206007810154909150611c93908490600160301b900462ffffff166127d8565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611ce4916001600160a01b031690600401613154565b602060405180830381865af4158015611d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d25919061370a565b949350505050565b611d3d635f1e9f7360e11b612832565b611d46826128d1565b80611d4f6127b4565b60008481526005919091016020526040902060010190611d6f908261351f565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051611da09190612fab565b60405180910390a25050565b611dbc630c07392760e41b612832565b80611e155760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610987565b611e2a81611e216127b4565b60030190612bdb565b611e745760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610987565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b611eb263c0cd565f60e01b612832565b611ebb81612b13565b611ec4836128d1565b6000611ece6127b4565b6000858152600591909101602052604090206007810154909150611eff908490600160301b900462ffffff166127d8565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b038616179055518591600080516020613a1383398151915291a250505050565b611f5363310aba0560e21b612832565b611f5c826128d1565b80611f656127b4565b60008481526005918201602052604090200190611f82908261351f565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b82604051611da09190612fab565b600054610100900460ff1615808015611fd35750600054600160ff909116105b80611fed5750303b158015611fed575060005460ff166001145b6120505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610987565b6000805460ff191660011790558015612073576000805461ff0019166101001790555b61207b612c79565b61208482612c46565b80156120ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6120de63caaa3bb760e01b612832565b6120e781612882565b6120f0836128d1565b60006120fa6127b4565b600085815260059190910160205260409020600781015490915061212b9084906301000000900462ffffff166127d8565b60008381526004820160205260409020612145838261351f565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516108519291906135d8565b606060006121846127b4565b905061219683610d9d8360030161281c565b610b3e6119336003830185612826565b60006106f2826121b46127b4565b60070190612ca8565b6121cd63dbc71ccb60e01b612832565b6121d681612b13565b6121eb816121e26127b4565b60070190612cbd565b6122345760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610987565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61227b636e19fa5760e11b612832565b61228481612882565b61228d826128d1565b60006122976127b4565b60008481526005919091016020526040902090506122b48261298d565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054611039929190041660016136ee565b6000806123156127b4565b6000858152600591909101602052604090206007810154909150612346908490600160301b900462ffffff166127d8565b60009283526006016020525060409020546001600160a01b0316919050565b606060006123716127b4565b60008581526005919091016020526040902060078101549091506123a29084906301000000900462ffffff166127d8565b60008381526004820160205260409020805461067090613471565b6123cd63f146f17f60e01b612832565b6123d681612882565b6123df826128d1565b60006123e96127b4565b600084815260059190910160209081526040808320600781015462ffffff1680855260028201909352922091925090612422848261351f565b5061242e8160016137bb565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516108519291906135d8565b612488612be7565b6001600160a01b0381166124ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610987565b6124f681612c46565b50565b612509637c560c5f60e11b612832565b612512816128d1565b600061251c6127b4565b6000838152600582016020526040902060078101549192509062ffffff16158015612555575060078101546301000000900462ffffff16155b801561256f57506007810154600160301b900462ffffff16155b6125f15760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610987565b6125fe6001830184612cd2565b5060008381526005830160205260408120818155906126206001830182612eeb565b61262e600383016000612eeb565b61263c600583016000612eeb565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b61268e637ce07d7360e11b612832565b612697826128d1565b806126a06127b4565b600084815260059190910160205260409020600301906126c0908261351f565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051611da09190612fab565b606060006126fd6127b4565b9050600061270d8260030161281c565b90506000816001600160401b038111156127295761272961300b565b60405190808252806020026020018201604052801561275c57816020015b60608152602001906001900390816127475790505b50905060005b828110156107a65761277a6119336003860183612826565b82828151811061278c5761278c6134a5565b6020908102919091010152600101612762565b6000610dc46127ac6127b4565b60030161281c565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b8082106120ca5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610987565b60006106f2825490565b6000610b3e8383612cde565b61283d333083610a91565b6124f65760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610987565b80516000036124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610987565b6128e6816128dd6127b4565b60010190612d08565b6124f65760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610987565b6129438161293a6127b4565b60030190612d08565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610987565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016129c593929190613911565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612a375760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610987565b50919050565b6000610b3e836001600160a01b038416612d14565b606060005b828160ff1660208110612a6c57612a6c6134a5565b1a60f81b6001600160f81b03191615801590612a8b575060208160ff16105b15612aa25780612a9a81613972565b915050612a57565b60405191506040820160405280825282602083015250919050565b612ac9816121b46127b4565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610987565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610987565b60008060005b60208160ff161015612bc7576000868260ff1660208110612b9057612b906134a5565b1a90508015801590612ba5575060808160ff16105b15612bbe578560ff168160ff1603612bbe578260010192505b50600101612b6d565b8360ff168260ff1614925050509392505050565b6000610b3e8383612e07565b33612bf0611896565b6001600160a01b03161461180b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610987565b612c4f81612e51565b80612c586127b4565b80546001600160a01b0319166001600160a01b039290921691909117905550565b600054610100900460ff16612ca05760405162461bcd60e51b815260040161098790613991565b61180b612ea3565b6000610b3e836001600160a01b038416612ed3565b6000610b3e836001600160a01b038416612e07565b6000610b3e8383612d14565b6000826000018281548110612cf557612cf56134a5565b9060005260206000200154905092915050565b6000610b3e8383612ed3565b60008181526001830160205260408120548015612dfd576000612d38600183613811565b8554909150600090612d4c90600190613811565b9050818114612db1576000866000018281548110612d6c57612d6c6134a5565b9060005260206000200154905080876000018481548110612d8f57612d8f6134a5565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dc257612dc26139dc565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106f2565b60009150506106f2565b6000612e138383612ed3565b612e49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106f2565b5060006106f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612eca5760405162461bcd60e51b815260040161098790613991565b61180b33612c46565b60009081526001919091016020526040902054151590565b508054612ef790613471565b6000825580601f10612f07575050565b601f0160209004906000526020600020908101906124f691905b80821115612f355760008155600101612f21565b5090565b60008060408385031215612f4c57600080fd5b50508035926020909101359150565b60005b83811015612f76578181015183820152602001612f5e565b50506000910152565b60008151808452612f97816020860160208601612f5b565b601f01601f19169290920160200192915050565b602081526000610b3e6020830184612f7f565b6020808252825182820181905260009190848201906040850190845b81811015612fff5783516001600160a01b031683529284019291840191600101612fda565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156130495761304961300b565b604052919050565b60006001600160401b0382111561306a5761306a61300b565b50601f01601f191660200190565b600082601f83011261308957600080fd5b813561309c61309782613051565b613021565b8181528460208386010111156130b157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156130e357600080fd5b833592506020840135915060408401356001600160401b0381111561310757600080fd5b61311386828701613078565b9150509250925092565b80356001600160a01b038116811461313457600080fd5b919050565b60006020828403121561314b57600080fd5b610b3e8261311d565b6001600160a01b0391909116815260200190565b60008060006060848603121561317d57600080fd5b6131868461311d565b92506131946020850161311d565b915060408401356001600160e01b0319811681146131b157600080fd5b809150509250925092565b6000602082840312156131ce57600080fd5b5035919050565b60006101208083526131e98184018d612f7f565b905082810360208401526131fd818c612f7f565b90508281036040840152613211818b612f7f565b905062ffffff808a1660608501528382036080850152613231828a612f7f565b915080881660a085015283820360c085015261324d8288612f7f565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060006060848603121561328557600080fd5b61328e8461311d565b95602085013595506040909401359392505050565b600080604083850312156132b657600080fd5b6132bf8361311d565b946020939093013593505050565b600080604083850312156132e057600080fd5b823591506132f06020840161311d565b90509250929050565b6000806040838503121561330c57600080fd5b8235915060208301356001600160401b0381111561332957600080fd5b61333585828601613078565b9150509250929050565b600080600080600060a0868803121561335757600080fd5b853594506020860135935060408601356001600160401b038082111561337c57600080fd5b61338889838a01613078565b9450606088013591508082111561339e57600080fd5b6133aa89838a01613078565b935060808801359150808211156133c057600080fd5b506133cd88828901613078565b9150509295509295909350565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561342f57603f1988860301845261341d858351612f7f565b94509285019290850190600101613401565b5092979650505050505050565b60008060006060848603121561345157600080fd5b83359250602084013591506134686040850161311d565b90509250925092565b600181811c9082168061348557607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561350557600081815260208120601f850160051c810160208610156134e25750805b601f850160051c820191505b81811015613501578281556001016134ee565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156135385761353861300b565b61354c816135468454613471565b846134bb565b602080601f83116001811461357b57600084156135695750858301515b613573858261350a565b865550613501565b600085815260208120601f198616915b828110156135aa5788860151825594840194600190910190840161358b565b50858210156135c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006135eb6040830185612f7f565b90508260208301529392505050565b60006020828403121561360c57600080fd5b81518015158114610b3e57600080fd5b600061362a61309784613051565b905082815283838301111561363e57600080fd5b610b3e836020830184612f5b565b600082601f83011261365d57600080fd5b610b3e8383516020850161361c565b60008060006060848603121561368157600080fd5b83516001600160401b038082111561369857600080fd5b6136a48783880161364c565b945060208601519150808211156136ba57600080fd5b506136c78682870161364c565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b62ffffff818116838216019080821115610fa357610fa36136d8565b60006020828403121561371c57600080fd5b5051919050565b60006020828403121561373557600080fd5b81516001600160401b0381111561374b57600080fd5b8201601f8101841361375c57600080fd5b611d258482516020840161361c565b60006020828403121561377d57600080fd5b81516001600160401b0381111561379357600080fd5b611d258482850161364c565b62ffffff828116828216039080821115610fa357610fa36136d8565b808201808211156106f2576106f26136d8565b6060815260006137e16060830186612f7f565b82810360208401526137f38186612f7f565b905082810360408401526138078185612f7f565b9695505050505050565b818103818111156106f2576106f26136d8565b81810361382f575050565b6138398254613471565b6001600160401b038111156138505761385061300b565b61385e816135468454613471565b6000601f82116001811461388c576000831561387a5750848201545b613884848261350a565b8555506138f1565b600085815260209020601f19841690600086815260209020845b838110156138c657828601548255600195860195909101906020016138a6565b50858310156138e45781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60006001820161390a5761390a6136d8565b5060010190565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161396381604c850160208701612f5b565b91909101604c01949350505050565b600060ff821660ff8103613988576139886136d8565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212206bea8239315a7b7d8769e84ac35190ddba4034e098a49387000f6223d3bf88a964736f6c63430008130033",
1189
1299
  "linkReferences": {
1190
1300
  "contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
1191
1301
  "BytecodeStorageReader": [
1192
1302
  {
1193
1303
  "length": 20,
1194
- "start": 3852
1304
+ "start": 4584
1195
1305
  },
1196
1306
  {
1197
1307
  "length": 20,
1198
- "start": 4013
1308
+ "start": 4745
1199
1309
  },
1200
1310
  {
1201
1311
  "length": 20,
1202
- "start": 4147
1312
+ "start": 4879
1203
1313
  },
1204
1314
  {
1205
1315
  "length": 20,
1206
- "start": 5823
1316
+ "start": 6286
1317
+ },
1318
+ {
1319
+ "length": 20,
1320
+ "start": 7380
1207
1321
  }
1208
1322
  ]
1209
1323
  }
@@ -1213,19 +1327,23 @@
1213
1327
  "BytecodeStorageReader": [
1214
1328
  {
1215
1329
  "length": 20,
1216
- "start": 3820
1330
+ "start": 4552
1331
+ },
1332
+ {
1333
+ "length": 20,
1334
+ "start": 4713
1217
1335
  },
1218
1336
  {
1219
1337
  "length": 20,
1220
- "start": 3981
1338
+ "start": 4847
1221
1339
  },
1222
1340
  {
1223
1341
  "length": 20,
1224
- "start": 4115
1342
+ "start": 6254
1225
1343
  },
1226
1344
  {
1227
1345
  "length": 20,
1228
- "start": 5791
1346
+ "start": 7348
1229
1347
  }
1230
1348
  ]
1231
1349
  }