@artblocks/contracts 0.0.1

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 (196) hide show
  1. package/.env.example +10 -0
  2. package/LICENSE +165 -0
  3. package/README.md +286 -0
  4. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
  5. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
  6. package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
  7. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
  9. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
  10. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
  11. package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
  12. package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
  13. package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
  14. package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
  15. package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
  16. package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
  17. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
  18. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
  19. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
  20. package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
  21. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
  22. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
  23. package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
  24. package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
  25. package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
  26. package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
  27. package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
  28. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
  29. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
  30. package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
  31. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
  32. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
  33. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
  34. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
  35. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
  36. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
  37. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
  38. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
  39. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
  40. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
  50. package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
  52. package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
  53. package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
  54. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
  55. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
  56. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
  57. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
  58. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
  59. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
  60. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
  61. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
  62. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
  63. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
  64. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
  65. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
  66. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
  67. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
  68. package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
  69. package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
  70. package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
  71. package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
  72. package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
  73. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
  74. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
  75. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
  76. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
  77. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
  78. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
  79. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
  80. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
  81. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
  82. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
  83. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
  84. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
  85. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
  86. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
  87. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
  88. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
  89. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
  90. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
  91. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
  92. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
  93. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
  94. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
  95. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
  96. package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
  97. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
  98. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
  99. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
  100. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
  101. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
  102. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
  103. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
  104. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
  105. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
  106. package/contracts/AdminACLV0.sol +103 -0
  107. package/contracts/AdminACLV1.sol +193 -0
  108. package/contracts/BasicRandomizer.sol +23 -0
  109. package/contracts/BasicRandomizerV2.sol +36 -0
  110. package/contracts/DependencyRegistryV0.sol +893 -0
  111. package/contracts/GenArt721CoreV3.sol +2001 -0
  112. package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
  113. package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
  114. package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
  115. package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
  116. package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
  117. package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
  118. package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
  119. package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
  120. package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
  121. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
  122. package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
  123. package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
  124. package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
  125. package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
  126. package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
  127. package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
  128. package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
  129. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
  130. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
  131. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
  132. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
  133. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
  134. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
  135. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
  136. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
  137. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
  138. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
  139. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
  140. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
  141. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
  142. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
  143. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
  144. package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
  145. package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
  146. package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
  149. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
  150. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
  151. package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
  152. package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
  153. package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
  154. package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
  155. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
  156. package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
  157. package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
  158. package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
  159. package/contracts/libs/0.5.x/IERC20.sol +96 -0
  160. package/contracts/libs/0.5.x/SafeMath.sol +98 -0
  161. package/contracts/libs/0.5.x/Strings.sol +92 -0
  162. package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
  163. package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
  164. package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
  165. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
  166. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
  167. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
  168. package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
  169. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
  170. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
  171. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
  172. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
  173. package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
  174. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
  175. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
  176. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
  177. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
  178. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
  179. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
  180. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
  181. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
  182. package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
  183. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
  184. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
  185. package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
  186. package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
  187. package/contracts/mock/DeadReceiverMock.sol +13 -0
  188. package/contracts/mock/ERC20Mock.sol +11 -0
  189. package/contracts/mock/MockAdminACLV0.sol +65 -0
  190. package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
  191. package/contracts/mock/ReentrancyHolderMock.sol +50 -0
  192. package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
  193. package/contracts/mock/ReentrancyMock.sol +44 -0
  194. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
  195. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
  196. package/package.json +83 -0
@@ -0,0 +1,794 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterHolderV2",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_genArt721Address",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_minterFilter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_delegationRegistryAddress",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "uint256",
33
+ "name": "_projectId",
34
+ "type": "uint256"
35
+ },
36
+ {
37
+ "indexed": false,
38
+ "internalType": "address[]",
39
+ "name": "_ownedNFTAddresses",
40
+ "type": "address[]"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256[]",
45
+ "name": "_ownedNFTProjectIds",
46
+ "type": "uint256[]"
47
+ }
48
+ ],
49
+ "name": "AllowedHoldersOfProjects",
50
+ "type": "event"
51
+ },
52
+ {
53
+ "anonymous": false,
54
+ "inputs": [
55
+ {
56
+ "indexed": false,
57
+ "internalType": "address",
58
+ "name": "delegationRegistryAddress",
59
+ "type": "address"
60
+ }
61
+ ],
62
+ "name": "DelegationRegistryUpdated",
63
+ "type": "event"
64
+ },
65
+ {
66
+ "anonymous": false,
67
+ "inputs": [
68
+ {
69
+ "indexed": true,
70
+ "internalType": "uint256",
71
+ "name": "_projectId",
72
+ "type": "uint256"
73
+ },
74
+ {
75
+ "indexed": true,
76
+ "internalType": "uint256",
77
+ "name": "_pricePerTokenInWei",
78
+ "type": "uint256"
79
+ }
80
+ ],
81
+ "name": "PricePerTokenInWeiUpdated",
82
+ "type": "event"
83
+ },
84
+ {
85
+ "anonymous": false,
86
+ "inputs": [
87
+ {
88
+ "indexed": true,
89
+ "internalType": "uint256",
90
+ "name": "_projectId",
91
+ "type": "uint256"
92
+ },
93
+ {
94
+ "indexed": true,
95
+ "internalType": "address",
96
+ "name": "_currencyAddress",
97
+ "type": "address"
98
+ },
99
+ {
100
+ "indexed": false,
101
+ "internalType": "string",
102
+ "name": "_currencySymbol",
103
+ "type": "string"
104
+ }
105
+ ],
106
+ "name": "ProjectCurrencyInfoUpdated",
107
+ "type": "event"
108
+ },
109
+ {
110
+ "anonymous": false,
111
+ "inputs": [
112
+ {
113
+ "indexed": true,
114
+ "internalType": "uint256",
115
+ "name": "_projectId",
116
+ "type": "uint256"
117
+ },
118
+ {
119
+ "indexed": false,
120
+ "internalType": "bool",
121
+ "name": "_purchaseToDisabled",
122
+ "type": "bool"
123
+ }
124
+ ],
125
+ "name": "PurchaseToDisabledUpdated",
126
+ "type": "event"
127
+ },
128
+ {
129
+ "anonymous": false,
130
+ "inputs": [
131
+ {
132
+ "indexed": true,
133
+ "internalType": "address",
134
+ "name": "_NFTAddress",
135
+ "type": "address"
136
+ }
137
+ ],
138
+ "name": "RegisteredNFTAddress",
139
+ "type": "event"
140
+ },
141
+ {
142
+ "anonymous": false,
143
+ "inputs": [
144
+ {
145
+ "indexed": true,
146
+ "internalType": "uint256",
147
+ "name": "_projectId",
148
+ "type": "uint256"
149
+ },
150
+ {
151
+ "indexed": false,
152
+ "internalType": "address[]",
153
+ "name": "_ownedNFTAddresses",
154
+ "type": "address[]"
155
+ },
156
+ {
157
+ "indexed": false,
158
+ "internalType": "uint256[]",
159
+ "name": "_ownedNFTProjectIds",
160
+ "type": "uint256[]"
161
+ }
162
+ ],
163
+ "name": "RemovedHoldersOfProjects",
164
+ "type": "event"
165
+ },
166
+ {
167
+ "anonymous": false,
168
+ "inputs": [
169
+ {
170
+ "indexed": true,
171
+ "internalType": "address",
172
+ "name": "_NFTAddress",
173
+ "type": "address"
174
+ }
175
+ ],
176
+ "name": "UnregisteredNFTAddress",
177
+ "type": "event"
178
+ },
179
+ {
180
+ "inputs": [
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "_projectId",
184
+ "type": "uint256"
185
+ },
186
+ {
187
+ "internalType": "address[]",
188
+ "name": "_ownedNFTAddresses",
189
+ "type": "address[]"
190
+ },
191
+ {
192
+ "internalType": "uint256[]",
193
+ "name": "_ownedNFTProjectIds",
194
+ "type": "uint256[]"
195
+ }
196
+ ],
197
+ "name": "allowHoldersOfProjects",
198
+ "outputs": [],
199
+ "stateMutability": "nonpayable",
200
+ "type": "function"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "uint256",
206
+ "name": "_projectId",
207
+ "type": "uint256"
208
+ },
209
+ {
210
+ "internalType": "address[]",
211
+ "name": "_ownedNFTAddressesAdd",
212
+ "type": "address[]"
213
+ },
214
+ {
215
+ "internalType": "uint256[]",
216
+ "name": "_ownedNFTProjectIdsAdd",
217
+ "type": "uint256[]"
218
+ },
219
+ {
220
+ "internalType": "address[]",
221
+ "name": "_ownedNFTAddressesRemove",
222
+ "type": "address[]"
223
+ },
224
+ {
225
+ "internalType": "uint256[]",
226
+ "name": "_ownedNFTProjectIdsRemove",
227
+ "type": "uint256[]"
228
+ }
229
+ ],
230
+ "name": "allowRemoveHoldersOfProjects",
231
+ "outputs": [],
232
+ "stateMutability": "nonpayable",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [
237
+ {
238
+ "internalType": "uint256",
239
+ "name": "",
240
+ "type": "uint256"
241
+ },
242
+ {
243
+ "internalType": "address",
244
+ "name": "",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "internalType": "uint256",
249
+ "name": "",
250
+ "type": "uint256"
251
+ }
252
+ ],
253
+ "name": "allowedProjectHolders",
254
+ "outputs": [
255
+ {
256
+ "internalType": "bool",
257
+ "name": "",
258
+ "type": "bool"
259
+ }
260
+ ],
261
+ "stateMutability": "view",
262
+ "type": "function"
263
+ },
264
+ {
265
+ "inputs": [],
266
+ "name": "delegationRegistryAddress",
267
+ "outputs": [
268
+ {
269
+ "internalType": "address",
270
+ "name": "",
271
+ "type": "address"
272
+ }
273
+ ],
274
+ "stateMutability": "view",
275
+ "type": "function"
276
+ },
277
+ {
278
+ "inputs": [],
279
+ "name": "genArt721CoreAddress",
280
+ "outputs": [
281
+ {
282
+ "internalType": "address",
283
+ "name": "",
284
+ "type": "address"
285
+ }
286
+ ],
287
+ "stateMutability": "view",
288
+ "type": "function"
289
+ },
290
+ {
291
+ "inputs": [],
292
+ "name": "getNumRegisteredNFTAddresses",
293
+ "outputs": [
294
+ {
295
+ "internalType": "uint256",
296
+ "name": "",
297
+ "type": "uint256"
298
+ }
299
+ ],
300
+ "stateMutability": "view",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
305
+ {
306
+ "internalType": "uint256",
307
+ "name": "_projectId",
308
+ "type": "uint256"
309
+ }
310
+ ],
311
+ "name": "getPriceInfo",
312
+ "outputs": [
313
+ {
314
+ "internalType": "bool",
315
+ "name": "isConfigured",
316
+ "type": "bool"
317
+ },
318
+ {
319
+ "internalType": "uint256",
320
+ "name": "tokenPriceInWei",
321
+ "type": "uint256"
322
+ },
323
+ {
324
+ "internalType": "string",
325
+ "name": "currencySymbol",
326
+ "type": "string"
327
+ },
328
+ {
329
+ "internalType": "address",
330
+ "name": "currencyAddress",
331
+ "type": "address"
332
+ }
333
+ ],
334
+ "stateMutability": "view",
335
+ "type": "function"
336
+ },
337
+ {
338
+ "inputs": [
339
+ {
340
+ "internalType": "uint256",
341
+ "name": "_index",
342
+ "type": "uint256"
343
+ }
344
+ ],
345
+ "name": "getRegisteredNFTAddressAt",
346
+ "outputs": [
347
+ {
348
+ "internalType": "address",
349
+ "name": "NFTAddress",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [
358
+ {
359
+ "internalType": "uint256",
360
+ "name": "_projectId",
361
+ "type": "uint256"
362
+ },
363
+ {
364
+ "internalType": "address",
365
+ "name": "_ownedNFTAddress",
366
+ "type": "address"
367
+ },
368
+ {
369
+ "internalType": "uint256",
370
+ "name": "_ownedNFTTokenId",
371
+ "type": "uint256"
372
+ }
373
+ ],
374
+ "name": "isAllowlistedNFT",
375
+ "outputs": [
376
+ {
377
+ "internalType": "bool",
378
+ "name": "",
379
+ "type": "bool"
380
+ }
381
+ ],
382
+ "stateMutability": "view",
383
+ "type": "function"
384
+ },
385
+ {
386
+ "inputs": [],
387
+ "name": "minterFilterAddress",
388
+ "outputs": [
389
+ {
390
+ "internalType": "address",
391
+ "name": "",
392
+ "type": "address"
393
+ }
394
+ ],
395
+ "stateMutability": "view",
396
+ "type": "function"
397
+ },
398
+ {
399
+ "inputs": [],
400
+ "name": "minterType",
401
+ "outputs": [
402
+ {
403
+ "internalType": "string",
404
+ "name": "",
405
+ "type": "string"
406
+ }
407
+ ],
408
+ "stateMutability": "view",
409
+ "type": "function"
410
+ },
411
+ {
412
+ "inputs": [
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "",
416
+ "type": "uint256"
417
+ }
418
+ ],
419
+ "name": "projectConfig",
420
+ "outputs": [
421
+ {
422
+ "internalType": "bool",
423
+ "name": "maxHasBeenInvoked",
424
+ "type": "bool"
425
+ },
426
+ {
427
+ "internalType": "bool",
428
+ "name": "priceIsConfigured",
429
+ "type": "bool"
430
+ },
431
+ {
432
+ "internalType": "uint24",
433
+ "name": "maxInvocations",
434
+ "type": "uint24"
435
+ },
436
+ {
437
+ "internalType": "uint256",
438
+ "name": "pricePerTokenInWei",
439
+ "type": "uint256"
440
+ }
441
+ ],
442
+ "stateMutability": "view",
443
+ "type": "function"
444
+ },
445
+ {
446
+ "inputs": [
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "_projectId",
450
+ "type": "uint256"
451
+ }
452
+ ],
453
+ "name": "projectMaxHasBeenInvoked",
454
+ "outputs": [
455
+ {
456
+ "internalType": "bool",
457
+ "name": "",
458
+ "type": "bool"
459
+ }
460
+ ],
461
+ "stateMutability": "view",
462
+ "type": "function"
463
+ },
464
+ {
465
+ "inputs": [
466
+ {
467
+ "internalType": "uint256",
468
+ "name": "_projectId",
469
+ "type": "uint256"
470
+ }
471
+ ],
472
+ "name": "projectMaxInvocations",
473
+ "outputs": [
474
+ {
475
+ "internalType": "uint256",
476
+ "name": "",
477
+ "type": "uint256"
478
+ }
479
+ ],
480
+ "stateMutability": "view",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [
485
+ {
486
+ "internalType": "uint256",
487
+ "name": "_projectId",
488
+ "type": "uint256"
489
+ },
490
+ {
491
+ "internalType": "address",
492
+ "name": "_ownedNFTAddress",
493
+ "type": "address"
494
+ },
495
+ {
496
+ "internalType": "uint256",
497
+ "name": "_ownedNFTTokenId",
498
+ "type": "uint256"
499
+ }
500
+ ],
501
+ "name": "purchase",
502
+ "outputs": [
503
+ {
504
+ "internalType": "uint256",
505
+ "name": "tokenId",
506
+ "type": "uint256"
507
+ }
508
+ ],
509
+ "stateMutability": "payable",
510
+ "type": "function"
511
+ },
512
+ {
513
+ "inputs": [
514
+ {
515
+ "internalType": "uint256",
516
+ "name": "",
517
+ "type": "uint256"
518
+ }
519
+ ],
520
+ "name": "purchase",
521
+ "outputs": [
522
+ {
523
+ "internalType": "uint256",
524
+ "name": "",
525
+ "type": "uint256"
526
+ }
527
+ ],
528
+ "stateMutability": "payable",
529
+ "type": "function"
530
+ },
531
+ {
532
+ "inputs": [
533
+ {
534
+ "internalType": "address",
535
+ "name": "_to",
536
+ "type": "address"
537
+ },
538
+ {
539
+ "internalType": "uint256",
540
+ "name": "_projectId",
541
+ "type": "uint256"
542
+ },
543
+ {
544
+ "internalType": "address",
545
+ "name": "_ownedNFTAddress",
546
+ "type": "address"
547
+ },
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "_ownedNFTTokenId",
551
+ "type": "uint256"
552
+ },
553
+ {
554
+ "internalType": "address",
555
+ "name": "_vault",
556
+ "type": "address"
557
+ }
558
+ ],
559
+ "name": "purchaseTo",
560
+ "outputs": [
561
+ {
562
+ "internalType": "uint256",
563
+ "name": "tokenId",
564
+ "type": "uint256"
565
+ }
566
+ ],
567
+ "stateMutability": "payable",
568
+ "type": "function"
569
+ },
570
+ {
571
+ "inputs": [
572
+ {
573
+ "internalType": "address",
574
+ "name": "",
575
+ "type": "address"
576
+ },
577
+ {
578
+ "internalType": "uint256",
579
+ "name": "",
580
+ "type": "uint256"
581
+ }
582
+ ],
583
+ "name": "purchaseTo",
584
+ "outputs": [
585
+ {
586
+ "internalType": "uint256",
587
+ "name": "",
588
+ "type": "uint256"
589
+ }
590
+ ],
591
+ "stateMutability": "payable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "_to",
599
+ "type": "address"
600
+ },
601
+ {
602
+ "internalType": "uint256",
603
+ "name": "_projectId",
604
+ "type": "uint256"
605
+ },
606
+ {
607
+ "internalType": "address",
608
+ "name": "_ownedNFTAddress",
609
+ "type": "address"
610
+ },
611
+ {
612
+ "internalType": "uint256",
613
+ "name": "_ownedNFTTokenId",
614
+ "type": "uint256"
615
+ }
616
+ ],
617
+ "name": "purchaseTo",
618
+ "outputs": [
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "tokenId",
622
+ "type": "uint256"
623
+ }
624
+ ],
625
+ "stateMutability": "payable",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "_to",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "uint256",
637
+ "name": "_projectId",
638
+ "type": "uint256"
639
+ },
640
+ {
641
+ "internalType": "address",
642
+ "name": "_ownedNFTAddress",
643
+ "type": "address"
644
+ },
645
+ {
646
+ "internalType": "uint256",
647
+ "name": "_ownedNFTTokenId",
648
+ "type": "uint256"
649
+ },
650
+ {
651
+ "internalType": "address",
652
+ "name": "_vault",
653
+ "type": "address"
654
+ }
655
+ ],
656
+ "name": "purchaseTo_dlc",
657
+ "outputs": [
658
+ {
659
+ "internalType": "uint256",
660
+ "name": "tokenId",
661
+ "type": "uint256"
662
+ }
663
+ ],
664
+ "stateMutability": "payable",
665
+ "type": "function"
666
+ },
667
+ {
668
+ "inputs": [
669
+ {
670
+ "internalType": "uint256",
671
+ "name": "_projectId",
672
+ "type": "uint256"
673
+ },
674
+ {
675
+ "internalType": "address",
676
+ "name": "_ownedNFTAddress",
677
+ "type": "address"
678
+ },
679
+ {
680
+ "internalType": "uint256",
681
+ "name": "_ownedNFTTokenId",
682
+ "type": "uint256"
683
+ }
684
+ ],
685
+ "name": "purchase_nnf",
686
+ "outputs": [
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "tokenId",
690
+ "type": "uint256"
691
+ }
692
+ ],
693
+ "stateMutability": "payable",
694
+ "type": "function"
695
+ },
696
+ {
697
+ "inputs": [
698
+ {
699
+ "internalType": "address",
700
+ "name": "_NFTAddress",
701
+ "type": "address"
702
+ }
703
+ ],
704
+ "name": "registerNFTAddress",
705
+ "outputs": [],
706
+ "stateMutability": "nonpayable",
707
+ "type": "function"
708
+ },
709
+ {
710
+ "inputs": [
711
+ {
712
+ "internalType": "uint256",
713
+ "name": "_projectId",
714
+ "type": "uint256"
715
+ },
716
+ {
717
+ "internalType": "address[]",
718
+ "name": "_ownedNFTAddresses",
719
+ "type": "address[]"
720
+ },
721
+ {
722
+ "internalType": "uint256[]",
723
+ "name": "_ownedNFTProjectIds",
724
+ "type": "uint256[]"
725
+ }
726
+ ],
727
+ "name": "removeHoldersOfProjects",
728
+ "outputs": [],
729
+ "stateMutability": "nonpayable",
730
+ "type": "function"
731
+ },
732
+ {
733
+ "inputs": [
734
+ {
735
+ "internalType": "uint256",
736
+ "name": "_projectId",
737
+ "type": "uint256"
738
+ }
739
+ ],
740
+ "name": "setProjectMaxInvocations",
741
+ "outputs": [],
742
+ "stateMutability": "nonpayable",
743
+ "type": "function"
744
+ },
745
+ {
746
+ "inputs": [
747
+ {
748
+ "internalType": "uint256",
749
+ "name": "_projectId",
750
+ "type": "uint256"
751
+ }
752
+ ],
753
+ "name": "togglePurchaseToDisabled",
754
+ "outputs": [],
755
+ "stateMutability": "view",
756
+ "type": "function"
757
+ },
758
+ {
759
+ "inputs": [
760
+ {
761
+ "internalType": "address",
762
+ "name": "_NFTAddress",
763
+ "type": "address"
764
+ }
765
+ ],
766
+ "name": "unregisterNFTAddress",
767
+ "outputs": [],
768
+ "stateMutability": "nonpayable",
769
+ "type": "function"
770
+ },
771
+ {
772
+ "inputs": [
773
+ {
774
+ "internalType": "uint256",
775
+ "name": "_projectId",
776
+ "type": "uint256"
777
+ },
778
+ {
779
+ "internalType": "uint256",
780
+ "name": "_pricePerTokenInWei",
781
+ "type": "uint256"
782
+ }
783
+ ],
784
+ "name": "updatePricePerTokenInWei",
785
+ "outputs": [],
786
+ "stateMutability": "nonpayable",
787
+ "type": "function"
788
+ }
789
+ ],
790
+ "bytecode": "0x6101406040523480156200001257600080fd5b50604051620024263803806200242683398101604081905262000035916200018d565b60016000556001600160a01b0383811660c081905260e052811660808190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a16001600160a01b0380821660a052828116610100819052610120819052604080516392a10f8360e01b81529051928616926392a10f839160048082019260209290919082900301816000875af1158015620000e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010c9190620001d7565b6001600160a01b031614620001675760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e670000000000000000604482015260640160405180910390fd5b505050620001fc565b80516001600160a01b03811681146200018857600080fd5b919050565b600080600060608486031215620001a357600080fd5b620001ae8462000170565b9250620001be6020850162000170565b9150620001ce6040850162000170565b90509250925092565b600060208284031215620001ea57600080fd5b620001f58262000170565b9392505050565b60805160a05160c05160e05161010051610120516121a26200028460003960006108b201526000610508015260008181610a5801528181610b6501528181610c5f01528181610d4001528181610e3401528181610f420152818161120d0152818161147501526115cc015260006103a3015260006107c30152600061045701526121a26000f3fe6080604052600436106101485760003560e01c8063891407c0116100bc578063891407c01461033d57806390d355b71461035057806392a10f831461039157806399c0bbdc146103dd578063a647300c146103f2578063b00abb6414610412578063bc8ff00114610425578063bf5bf5f814610445578063c71b1b7114610479578063dd85582f146104f6578063e2849bd51461052a578063e9d1e8ac1461054a578063efef39a114610591578063f7bd4b881461059f57600080fd5b806111cd1461014d578061aa52146101735780630ed79c4e1461018657806328c5c4e5146101a857806340d1397e146101bb578063462add46146101db5780634fd1b70e1461021b5780634ff5759d1461023b57806356690aaf1461025b578063650e5d6d146101735780636cb9b7ff14610293578063774159c6146102b35780637994db091461031d575b600080fd5b61016061015b366004611a54565b6105bf565b6040519081526020015b60405180910390f35b610160610181366004611ab3565b610a20565b34801561019257600080fd5b506101a66101a1366004611aeb565b610a38565b005b6101606101b6366004611a54565b610b34565b3480156101c757600080fd5b506101a66101d6366004611b08565b610b4d565b3480156101e757600080fd5b5061020b6101f6366004611b08565b60009081526001602052604090205460ff1690565b604051901515815260200161016a565b34801561022757600080fd5b506101a6610236366004611c59565b610c47565b34801561024757600080fd5b506101a6610256366004611aeb565b610d20565b34801561026757600080fd5b50610160610276366004611b08565b60009081526001602052604090205462010000900462ffffff1690565b34801561029f57600080fd5b506101a66102ae366004611d0f565b610e1c565b3480156102bf57600080fd5b5061030d6102ce366004611b08565b600090815260016020818152604080842080549301548151808301909252600382526208aa8960eb1b9282019290925261010090920460ff1693909290565b60405161016a9493929190611d77565b34801561032957600080fd5b506101a6610338366004611db1565b610f2a565b61016061034b366004611e1d565b61119e565b34801561035c57600080fd5b5061020b61036b366004611ab3565b600460209081526000938452604080852082529284528284209052825290205460ff1681565b34801561039d57600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016a565b3480156103e957600080fd5b506101606111e4565b3480156103fe57600080fd5b506101a661040d366004611db1565b6111f5565b610160610420366004611e49565b6113eb565b34801561043157600080fd5b506103c5610440366004611b08565b611404565b34801561045157600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561048557600080fd5b506104c9610494366004611b08565b6001602081905260009182526040909120805491015460ff808316926101008104909116916201000090910462ffffff169084565b60405161016a94939291909315158452911515602084015262ffffff166040830152606082015260800190565b34801561050257600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561053657600080fd5b5061020b610545366004611ab3565b611417565b34801561055657600080fd5b506105846040518060400160405280600e81526020016d26b4b73a32b92437b63232b92b1960911b81525081565b60405161016a9190611e91565b61016061034b366004611b08565b3480156105ab57600080fd5b506101a66105ba366004611b08565b61145c565b60006002600054036106185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155858152600160205260409020805460ff161561068b5760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b606482015260840161060f565b6001810154348111156106e05760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e7421604482015260640161060f565b8154610100900460ff1661072d5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161060f565b610738878787611417565b61077c5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161060f565b336001600160a01b0385161561088457604051631574d39f60e31b81523360048201526001600160a01b0386811660248301528881166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108309190611eb9565b90508061087f5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161060f565b859150505b604051630d4d151360e01b81526001600160a01b038a81166004830152602482018a905282811660448301527f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190611ed4565b835490945060001962ffffff6201000090920482160116620f424085060361094d57825460ff191660011783555b6040516331a9108f60e11b8152600481018790526001600160a01b038083169190891690636352211e90602401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611eed565b6001600160a01b031614610a055760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161060f565b610a0f888361151e565b505050600160005595945050505050565b6000610a303385858560006105bf565b949350505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610a9190339030908690600401611f0a565b6020604051808303816000875af1158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad49190611eb9565b610af05760405162461bcd60e51b815260040161060f90611f37565b610afb600283611867565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b6000610b4386868686866105bf565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd89190611eed565b6001600160a01b0316336001600160a01b031614610c085760405162461bcd60e51b815260040161060f90611f6b565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b604482015260640161060f565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610cae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd29190611eed565b6001600160a01b0316336001600160a01b031614610d025760405162461bcd60e51b815260040161060f90611f6b565b610d0d868686610f2a565b610d188684846111f5565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610d7990339030908690600401611f0a565b6020604051808303816000875af1158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611eb9565b610dd85760405162461bcd60e51b815260040161060f90611f37565b610de3600283611883565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea79190611eed565b6001600160a01b0316336001600160a01b031614610ed75760405162461bcd60e51b815260040161060f90611f6b565b6000838152600160208190526040808320918201859055815461ff0019166101001790915551839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c9190a3505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611eed565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b815260040161060f90611f6b565b81518351146110365760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d6174636800604482015260640161060f565b60005b835181101561115d5761106f84828151811061105757611057611f90565b6020026020010151600261189890919063ffffffff16565b6110bb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e465420416464726573736573000000604482015260640161060f565b60008581526004602052604081208551600192908790859081106110e1576110e1611f90565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061111d5761111d611f90565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061115590611fbc565b915050611039565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611190929190611fd5565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b604482015260009060640161060f565b60006111f060026118ba565b905090565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190611eed565b6001600160a01b0316336001600160a01b0316146112b05760405162461bcd60e51b815260040161060f90611f6b565b815183511461130c5760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b606482015260840161060f565b60005b83518110156113b85760008581526004602052604081208551829087908590811061133c5761133c611f90565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061137857611378611f90565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113b090611fbc565b91505061130f565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611190929190611fd5565b60006113fb8585858560006105bf565b95945050505050565b60006114116002836118c4565b92915050565b600080611427620f424084612059565b60009586526004602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b604051630ea5613f60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e8919061207b565b50505060009485525060016020526040909320805462ffffff909416620100000264ffffff000019909416939093179092555050565b34156118635760008061153183346120da565b905080156115c15760405133908290600081818185875af1925050503d8060008114611579576040519150601f19603f3d011682016040523d82523d6000602084013e61157e565b606091505b505080925050816115c15760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161060f565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638639415b8b8b6040518363ffffffff1660e01b8152600401611621929190918252602082015260400190565b60c060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166291906120ed565b9550955095509550955095506000861115611714576040516001600160a01b038616908790600081818185875af1925050503d80600081146116c0576040519150601f19603f3d011682016040523d82523d6000602084013e6116c5565b606091505b505080985050876117145760405162461bcd60e51b8152602060048201526019602482015278105c9d08109b1bd8dadcc81c185e5b595b9d0819985a5b1959603a1b604482015260640161060f565b83156117b3576040516001600160a01b038416908590600081818185875af1925050503d8060008114611763576040519150601f19603f3d011682016040523d82523d6000602084013e611768565b606091505b505080985050876117b35760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161060f565b811561185a576040516001600160a01b038216908390600081818185875af1925050503d8060008114611802576040519150601f19603f3d011682016040523d82523d6000602084013e611807565b606091505b5050809850508761185a5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161060f565b50505050505050505b5050565b600061187c836001600160a01b0384166118d0565b9392505050565b600061187c836001600160a01b03841661191f565b6001600160a01b0381166000908152600183016020526040812054151561187c565b6000611411825490565b600061187c8383611a12565b600081815260018301602052604081205461191757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611411565b506000611411565b60008181526001830160205260408120548015611a085760006119436001836120da565b8554909150600090611957906001906120da565b90508181146119bc57600086600001828154811061197757611977611f90565b906000526020600020015490508087600001848154811061199a5761199a611f90565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119cd576119cd612156565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611411565b6000915050611411565b6000826000018281548110611a2957611a29611f90565b9060005260206000200154905092915050565b6001600160a01b0381168114611a5157600080fd5b50565b600080600080600060a08688031215611a6c57600080fd5b8535611a7781611a3c565b9450602086013593506040860135611a8e81611a3c565b9250606086013591506080860135611aa581611a3c565b809150509295509295909350565b600080600060608486031215611ac857600080fd5b833592506020840135611ada81611a3c565b929592945050506040919091013590565b600060208284031215611afd57600080fd5b813561187c81611a3c565b600060208284031215611b1a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b5f57611b5f611b21565b604052919050565b60006001600160401b03821115611b8057611b80611b21565b5060051b60200190565b600082601f830112611b9b57600080fd5b81356020611bb0611bab83611b67565b611b37565b82815260059290921b84018101918181019086841115611bcf57600080fd5b8286015b84811015611bf3578035611be681611a3c565b8352918301918301611bd3565b509695505050505050565b600082601f830112611c0f57600080fd5b81356020611c1f611bab83611b67565b82815260059290921b84018101918181019086841115611c3e57600080fd5b8286015b84811015611bf35780358352918301918301611c42565b600080600080600060a08688031215611c7157600080fd5b8535945060208601356001600160401b0380821115611c8f57600080fd5b611c9b89838a01611b8a565b95506040880135915080821115611cb157600080fd5b611cbd89838a01611bfe565b94506060880135915080821115611cd357600080fd5b611cdf89838a01611b8a565b93506080880135915080821115611cf557600080fd5b50611d0288828901611bfe565b9150509295509295909350565b60008060408385031215611d2257600080fd5b50508035926020909101359150565b6000815180845260005b81811015611d5757602081850181015186830182015201611d3b565b506000602082860101526020601f19601f83011685010191505092915050565b8415158152836020820152608060408201526000611d986080830185611d31565b905060018060a01b038316606083015295945050505050565b600080600060608486031215611dc657600080fd5b8335925060208401356001600160401b0380821115611de457600080fd5b611df087838801611b8a565b93506040860135915080821115611e0657600080fd5b50611e1386828701611bfe565b9150509250925092565b60008060408385031215611e3057600080fd5b8235611e3b81611a3c565b946020939093013593505050565b60008060008060808587031215611e5f57600080fd5b8435611e6a81611a3c565b9350602085013592506040850135611e8181611a3c565b9396929550929360600135925050565b60208152600061187c6020830184611d31565b80518015158114611eb457600080fd5b919050565b600060208284031215611ecb57600080fd5b61187c82611ea4565b600060208284031215611ee657600080fd5b5051919050565b600060208284031215611eff57600080fd5b815161187c81611a3c565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fce57611fce611fa6565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156120175781516001600160a01b031684529284019290840190600101611ff2565b5050508381038285015284518082528583019183019060005b8181101561204c57835183529284019291840191600101612030565b5090979650505050505050565b60008261207657634e487b7160e01b600052601260045260246000fd5b500490565b60008060008060008060c0878903121561209457600080fd5b86519550602087015194506120ab60408801611ea4565b93506120b960608801611ea4565b9250608087015191506120ce60a08801611ea4565b90509295509295509295565b8181038181111561141157611411611fa6565b60008060008060008060c0878903121561210657600080fd5b86519550602087015161211881611a3c565b60408801516060890151919650945061213081611a3c565b608088015160a0890151919450925061214881611a3c565b809150509295509295509295565b634e487b7160e01b600052603160045260246000fdfea264697066735822122071d52b66956e3002459ded1d7aa722bb42aa772720323cbdceee6f0671c1d2a564736f6c63430008110033",
791
+ "deployedBytecode": "0x6080604052600436106101485760003560e01c8063891407c0116100bc578063891407c01461033d57806390d355b71461035057806392a10f831461039157806399c0bbdc146103dd578063a647300c146103f2578063b00abb6414610412578063bc8ff00114610425578063bf5bf5f814610445578063c71b1b7114610479578063dd85582f146104f6578063e2849bd51461052a578063e9d1e8ac1461054a578063efef39a114610591578063f7bd4b881461059f57600080fd5b806111cd1461014d578061aa52146101735780630ed79c4e1461018657806328c5c4e5146101a857806340d1397e146101bb578063462add46146101db5780634fd1b70e1461021b5780634ff5759d1461023b57806356690aaf1461025b578063650e5d6d146101735780636cb9b7ff14610293578063774159c6146102b35780637994db091461031d575b600080fd5b61016061015b366004611a54565b6105bf565b6040519081526020015b60405180910390f35b610160610181366004611ab3565b610a20565b34801561019257600080fd5b506101a66101a1366004611aeb565b610a38565b005b6101606101b6366004611a54565b610b34565b3480156101c757600080fd5b506101a66101d6366004611b08565b610b4d565b3480156101e757600080fd5b5061020b6101f6366004611b08565b60009081526001602052604090205460ff1690565b604051901515815260200161016a565b34801561022757600080fd5b506101a6610236366004611c59565b610c47565b34801561024757600080fd5b506101a6610256366004611aeb565b610d20565b34801561026757600080fd5b50610160610276366004611b08565b60009081526001602052604090205462010000900462ffffff1690565b34801561029f57600080fd5b506101a66102ae366004611d0f565b610e1c565b3480156102bf57600080fd5b5061030d6102ce366004611b08565b600090815260016020818152604080842080549301548151808301909252600382526208aa8960eb1b9282019290925261010090920460ff1693909290565b60405161016a9493929190611d77565b34801561032957600080fd5b506101a6610338366004611db1565b610f2a565b61016061034b366004611e1d565b61119e565b34801561035c57600080fd5b5061020b61036b366004611ab3565b600460209081526000938452604080852082529284528284209052825290205460ff1681565b34801561039d57600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016a565b3480156103e957600080fd5b506101606111e4565b3480156103fe57600080fd5b506101a661040d366004611db1565b6111f5565b610160610420366004611e49565b6113eb565b34801561043157600080fd5b506103c5610440366004611b08565b611404565b34801561045157600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561048557600080fd5b506104c9610494366004611b08565b6001602081905260009182526040909120805491015460ff808316926101008104909116916201000090910462ffffff169084565b60405161016a94939291909315158452911515602084015262ffffff166040830152606082015260800190565b34801561050257600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561053657600080fd5b5061020b610545366004611ab3565b611417565b34801561055657600080fd5b506105846040518060400160405280600e81526020016d26b4b73a32b92437b63232b92b1960911b81525081565b60405161016a9190611e91565b61016061034b366004611b08565b3480156105ab57600080fd5b506101a66105ba366004611b08565b61145c565b60006002600054036106185760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155858152600160205260409020805460ff161561068b5760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b606482015260840161060f565b6001810154348111156106e05760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e7421604482015260640161060f565b8154610100900460ff1661072d5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b604482015260640161060f565b610738878787611417565b61077c5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161060f565b336001600160a01b0385161561088457604051631574d39f60e31b81523360048201526001600160a01b0386811660248301528881166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108309190611eb9565b90508061087f5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161060f565b859150505b604051630d4d151360e01b81526001600160a01b038a81166004830152602482018a905282811660448301527f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af11580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190611ed4565b835490945060001962ffffff6201000090920482160116620f424085060361094d57825460ff191660011783555b6040516331a9108f60e11b8152600481018790526001600160a01b038083169190891690636352211e90602401602060405180830381865afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611eed565b6001600160a01b031614610a055760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161060f565b610a0f888361151e565b505050600160005595945050505050565b6000610a303385858560006105bf565b949350505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610a9190339030908690600401611f0a565b6020604051808303816000875af1158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad49190611eb9565b610af05760405162461bcd60e51b815260040161060f90611f37565b610afb600283611867565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b6000610b4386868686866105bf565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd89190611eed565b6001600160a01b0316336001600160a01b031614610c085760405162461bcd60e51b815260040161060f90611f6b565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b604482015260640161060f565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610cae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd29190611eed565b6001600160a01b0316336001600160a01b031614610d025760405162461bcd60e51b815260040161060f90611f6b565b610d0d868686610f2a565b610d188684846111f5565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610d7990339030908690600401611f0a565b6020604051808303816000875af1158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611eb9565b610dd85760405162461bcd60e51b815260040161060f90611f37565b610de3600283611883565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea79190611eed565b6001600160a01b0316336001600160a01b031614610ed75760405162461bcd60e51b815260040161060f90611f6b565b6000838152600160208190526040808320918201859055815461ff0019166101001790915551839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c9190a3505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190611eed565b6001600160a01b0316336001600160a01b031614610fe55760405162461bcd60e51b815260040161060f90611f6b565b81518351146110365760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d6174636800604482015260640161060f565b60005b835181101561115d5761106f84828151811061105757611057611f90565b6020026020010151600261189890919063ffffffff16565b6110bb5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e465420416464726573736573000000604482015260640161060f565b60008581526004602052604081208551600192908790859081106110e1576110e1611f90565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061111d5761111d611f90565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061115590611fbc565b915050611039565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611190929190611fd5565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b604482015260009060640161060f565b60006111f060026118ba565b905090565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190611eed565b6001600160a01b0316336001600160a01b0316146112b05760405162461bcd60e51b815260040161060f90611f6b565b815183511461130c5760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b606482015260840161060f565b60005b83518110156113b85760008581526004602052604081208551829087908590811061133c5761133c611f90565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061137857611378611f90565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113b090611fbc565b91505061130f565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611190929190611fd5565b60006113fb8585858560006105bf565b95945050505050565b60006114116002836118c4565b92915050565b600080611427620f424084612059565b60009586526004602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b604051630ea5613f60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e8919061207b565b50505060009485525060016020526040909320805462ffffff909416620100000264ffffff000019909416939093179092555050565b34156118635760008061153183346120da565b905080156115c15760405133908290600081818185875af1925050503d8060008114611579576040519150601f19603f3d011682016040523d82523d6000602084013e61157e565b606091505b505080925050816115c15760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161060f565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638639415b8b8b6040518363ffffffff1660e01b8152600401611621929190918252602082015260400190565b60c060405180830381865afa15801561163e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166291906120ed565b9550955095509550955095506000861115611714576040516001600160a01b038616908790600081818185875af1925050503d80600081146116c0576040519150601f19603f3d011682016040523d82523d6000602084013e6116c5565b606091505b505080985050876117145760405162461bcd60e51b8152602060048201526019602482015278105c9d08109b1bd8dadcc81c185e5b595b9d0819985a5b1959603a1b604482015260640161060f565b83156117b3576040516001600160a01b038416908590600081818185875af1925050503d8060008114611763576040519150601f19603f3d011682016040523d82523d6000602084013e611768565b606091505b505080985050876117b35760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161060f565b811561185a576040516001600160a01b038216908390600081818185875af1925050503d8060008114611802576040519150601f19603f3d011682016040523d82523d6000602084013e611807565b606091505b5050809850508761185a5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161060f565b50505050505050505b5050565b600061187c836001600160a01b0384166118d0565b9392505050565b600061187c836001600160a01b03841661191f565b6001600160a01b0381166000908152600183016020526040812054151561187c565b6000611411825490565b600061187c8383611a12565b600081815260018301602052604081205461191757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611411565b506000611411565b60008181526001830160205260408120548015611a085760006119436001836120da565b8554909150600090611957906001906120da565b90508181146119bc57600086600001828154811061197757611977611f90565b906000526020600020015490508087600001848154811061199a5761199a611f90565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119cd576119cd612156565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611411565b6000915050611411565b6000826000018281548110611a2957611a29611f90565b9060005260206000200154905092915050565b6001600160a01b0381168114611a5157600080fd5b50565b600080600080600060a08688031215611a6c57600080fd5b8535611a7781611a3c565b9450602086013593506040860135611a8e81611a3c565b9250606086013591506080860135611aa581611a3c565b809150509295509295909350565b600080600060608486031215611ac857600080fd5b833592506020840135611ada81611a3c565b929592945050506040919091013590565b600060208284031215611afd57600080fd5b813561187c81611a3c565b600060208284031215611b1a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b5f57611b5f611b21565b604052919050565b60006001600160401b03821115611b8057611b80611b21565b5060051b60200190565b600082601f830112611b9b57600080fd5b81356020611bb0611bab83611b67565b611b37565b82815260059290921b84018101918181019086841115611bcf57600080fd5b8286015b84811015611bf3578035611be681611a3c565b8352918301918301611bd3565b509695505050505050565b600082601f830112611c0f57600080fd5b81356020611c1f611bab83611b67565b82815260059290921b84018101918181019086841115611c3e57600080fd5b8286015b84811015611bf35780358352918301918301611c42565b600080600080600060a08688031215611c7157600080fd5b8535945060208601356001600160401b0380821115611c8f57600080fd5b611c9b89838a01611b8a565b95506040880135915080821115611cb157600080fd5b611cbd89838a01611bfe565b94506060880135915080821115611cd357600080fd5b611cdf89838a01611b8a565b93506080880135915080821115611cf557600080fd5b50611d0288828901611bfe565b9150509295509295909350565b60008060408385031215611d2257600080fd5b50508035926020909101359150565b6000815180845260005b81811015611d5757602081850181015186830182015201611d3b565b506000602082860101526020601f19601f83011685010191505092915050565b8415158152836020820152608060408201526000611d986080830185611d31565b905060018060a01b038316606083015295945050505050565b600080600060608486031215611dc657600080fd5b8335925060208401356001600160401b0380821115611de457600080fd5b611df087838801611b8a565b93506040860135915080821115611e0657600080fd5b50611e1386828701611bfe565b9150509250925092565b60008060408385031215611e3057600080fd5b8235611e3b81611a3c565b946020939093013593505050565b60008060008060808587031215611e5f57600080fd5b8435611e6a81611a3c565b9350602085013592506040850135611e8181611a3c565b9396929550929360600135925050565b60208152600061187c6020830184611d31565b80518015158114611eb457600080fd5b919050565b600060208284031215611ecb57600080fd5b61187c82611ea4565b600060208284031215611ee657600080fd5b5051919050565b600060208284031215611eff57600080fd5b815161187c81611a3c565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611fce57611fce611fa6565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156120175781516001600160a01b031684529284019290840190600101611ff2565b5050508381038285015284518082528583019183019060005b8181101561204c57835183529284019291840191600101612030565b5090979650505050505050565b60008261207657634e487b7160e01b600052601260045260246000fd5b500490565b60008060008060008060c0878903121561209457600080fd5b86519550602087015194506120ab60408801611ea4565b93506120b960608801611ea4565b9250608087015191506120ce60a08801611ea4565b90509295509295509295565b8181038181111561141157611411611fa6565b60008060008060008060c0878903121561210657600080fd5b86519550602087015161211881611a3c565b60408801516060890151919650945061213081611a3c565b608088015160a0890151919450925061214881611a3c565b809150509295509295509295565b634e487b7160e01b600052603160045260246000fdfea264697066735822122071d52b66956e3002459ded1d7aa722bb42aa772720323cbdceee6f0671c1d2a564736f6c63430008110033",
792
+ "linkReferences": {},
793
+ "deployedLinkReferences": {}
794
+ }