@etherisc/gif-next 0.0.2-f1e0c66-773 → 0.0.2-f1e6957-384

Sign up to get free protection for your applications and to get access to all the features.
Files changed (559) hide show
  1. package/README.md +137 -333
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +485 -26
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +588 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +183 -497
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -397
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -131
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -201
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +587 -64
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +405 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +625 -182
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1645 -849
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1842
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -365
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -143
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -333
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -448
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +502 -364
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +212 -112
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +340 -112
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -246
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -426
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +266 -435
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +405 -102
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +511 -303
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  183. package/artifacts/contracts/product/Product.sol/Product.json +258 -427
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +495 -253
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -128
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -143
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -332
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  278. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +134 -79
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +401 -313
  360. package/contracts/authorization/AccessAdminLib.sol +678 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  362. package/contracts/authorization/Authorization.sol +179 -207
  363. package/contracts/authorization/IAccess.sol +29 -11
  364. package/contracts/authorization/IAccessAdmin.sol +89 -83
  365. package/contracts/authorization/IAuthorization.sol +9 -37
  366. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  367. package/contracts/authorization/ServiceAuthorization.sol +235 -25
  368. package/contracts/distribution/BasicDistribution.sol +21 -19
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  370. package/contracts/distribution/Distribution.sol +46 -96
  371. package/contracts/distribution/DistributionService.sol +243 -132
  372. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  373. package/contracts/distribution/IDistributionComponent.sol +4 -11
  374. package/contracts/distribution/IDistributionService.sol +47 -29
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BaseStore.sol +93 -0
  389. package/contracts/instance/BundleSet.sol +42 -38
  390. package/contracts/instance/IBaseStore.sol +37 -0
  391. package/contracts/instance/IInstance.sol +113 -43
  392. package/contracts/instance/IInstanceService.sol +61 -34
  393. package/contracts/instance/Instance.sol +201 -104
  394. package/contracts/instance/InstanceAdmin.sol +218 -177
  395. package/contracts/instance/InstanceAuthorizationV3.sol +154 -83
  396. package/contracts/instance/InstanceReader.sol +456 -255
  397. package/contracts/instance/InstanceService.sol +333 -262
  398. package/contracts/instance/InstanceServiceManager.sol +6 -7
  399. package/contracts/instance/InstanceStore.sol +153 -107
  400. package/contracts/instance/ProductStore.sol +290 -0
  401. package/contracts/instance/RiskSet.sol +126 -0
  402. package/contracts/instance/TargetNames.sol +10 -0
  403. package/contracts/instance/base/BalanceStore.sol +4 -6
  404. package/contracts/instance/base/ObjectCounter.sol +1 -2
  405. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  406. package/contracts/instance/base/ObjectSet.sol +31 -33
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +6 -5
  409. package/contracts/instance/module/IComponents.sol +29 -20
  410. package/contracts/instance/module/IDistribution.sol +21 -8
  411. package/contracts/instance/module/IPolicy.sol +50 -29
  412. package/contracts/instance/module/IRisk.sol +5 -0
  413. package/contracts/mock/Dip.sol +1 -1
  414. package/contracts/oracle/BasicOracle.sol +3 -7
  415. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  416. package/contracts/oracle/IOracle.sol +9 -4
  417. package/contracts/oracle/IOracleService.sol +2 -1
  418. package/contracts/oracle/Oracle.sol +11 -25
  419. package/contracts/oracle/OracleService.sol +119 -87
  420. package/contracts/oracle/OracleServiceManager.sol +6 -6
  421. package/contracts/pool/BasicPool.sol +40 -43
  422. package/contracts/pool/BasicPoolAuthorization.sol +39 -13
  423. package/contracts/pool/BundleService.sol +200 -155
  424. package/contracts/pool/BundleServiceManager.sol +6 -6
  425. package/contracts/pool/IBundleService.sol +42 -46
  426. package/contracts/pool/IPoolComponent.sol +19 -15
  427. package/contracts/pool/IPoolService.sol +97 -77
  428. package/contracts/pool/Pool.sol +145 -142
  429. package/contracts/pool/PoolLib.sol +341 -0
  430. package/contracts/pool/PoolService.sol +413 -233
  431. package/contracts/pool/PoolServiceManager.sol +4 -4
  432. package/contracts/product/ApplicationService.sol +144 -47
  433. package/contracts/product/ApplicationServiceManager.sol +4 -4
  434. package/contracts/product/BasicProduct.sol +11 -15
  435. package/contracts/product/BasicProductAuthorization.sol +32 -12
  436. package/contracts/product/ClaimService.sol +394 -185
  437. package/contracts/product/ClaimServiceManager.sol +4 -4
  438. package/contracts/product/IApplicationService.sol +29 -3
  439. package/contracts/product/IClaimService.sol +48 -11
  440. package/contracts/product/IPolicyService.sol +61 -39
  441. package/contracts/product/IPricingService.sol +11 -10
  442. package/contracts/product/IProductComponent.sol +27 -5
  443. package/contracts/product/IRiskService.sol +48 -0
  444. package/contracts/product/PolicyService.sol +434 -288
  445. package/contracts/product/PolicyServiceLib.sol +139 -0
  446. package/contracts/product/PolicyServiceManager.sol +4 -4
  447. package/contracts/product/PricingService.sol +90 -84
  448. package/contracts/product/PricingServiceManager.sol +4 -4
  449. package/contracts/product/Product.sol +198 -108
  450. package/contracts/product/RiskService.sol +189 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +72 -40
  453. package/contracts/registry/IRegistry.sol +70 -32
  454. package/contracts/registry/IRegistryService.sol +5 -12
  455. package/contracts/registry/IRelease.sol +29 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -2
  457. package/contracts/registry/Registry.sol +367 -207
  458. package/contracts/registry/RegistryAdmin.sol +99 -291
  459. package/contracts/registry/RegistryAuthorization.sol +337 -0
  460. package/contracts/registry/RegistryService.sol +38 -49
  461. package/contracts/registry/RegistryServiceManager.sol +3 -3
  462. package/contracts/registry/ReleaseAdmin.sol +199 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  464. package/contracts/registry/ReleaseRegistry.sol +279 -239
  465. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  466. package/contracts/registry/TokenRegistry.sol +61 -59
  467. package/contracts/shared/Component.sol +72 -142
  468. package/contracts/shared/ComponentService.sol +428 -388
  469. package/contracts/shared/ComponentServiceManager.sol +8 -5
  470. package/contracts/shared/ContractLib.sol +312 -0
  471. package/contracts/shared/IComponent.sol +6 -18
  472. package/contracts/shared/IComponentService.sol +43 -40
  473. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  474. package/contracts/shared/ILifecycle.sol +3 -1
  475. package/contracts/shared/INftOwnable.sol +4 -0
  476. package/contracts/shared/IPolicyHolder.sol +12 -22
  477. package/contracts/shared/IRegisterable.sol +22 -1
  478. package/contracts/shared/IService.sol +3 -5
  479. package/contracts/shared/InitializableERC165.sol +10 -2
  480. package/contracts/shared/InstanceLinkedComponent.sol +74 -54
  481. package/contracts/shared/Lifecycle.sol +15 -4
  482. package/contracts/shared/NftOwnable.sol +31 -9
  483. package/contracts/shared/PolicyHolder.sol +18 -54
  484. package/contracts/shared/Registerable.sol +52 -21
  485. package/contracts/shared/RegistryLinked.sol +9 -14
  486. package/contracts/shared/Service.sol +20 -35
  487. package/contracts/shared/TokenHandler.sol +310 -26
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +270 -71
  490. package/contracts/staking/IStakingService.sol +45 -78
  491. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  492. package/contracts/staking/Staking.sol +526 -245
  493. package/contracts/staking/StakingLib.sol +195 -0
  494. package/contracts/staking/StakingManager.sol +12 -9
  495. package/contracts/staking/StakingReader.sol +70 -82
  496. package/contracts/staking/StakingService.sol +62 -152
  497. package/contracts/staking/StakingServiceManager.sol +7 -5
  498. package/contracts/staking/StakingStore.sol +1093 -330
  499. package/contracts/staking/TargetHandler.sol +132 -0
  500. package/contracts/staking/TargetManagerLib.sol +73 -46
  501. package/contracts/type/Amount.sol +19 -0
  502. package/contracts/type/Blocknumber.sol +24 -23
  503. package/contracts/type/ChainId.sol +101 -0
  504. package/contracts/type/ClaimId.sol +6 -1
  505. package/contracts/type/Fee.sol +8 -8
  506. package/contracts/type/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/type/NftId.sol +7 -0
  509. package/contracts/type/ObjectType.sol +73 -37
  510. package/contracts/type/PayoutId.sol +10 -10
  511. package/contracts/type/RiskId.sol +38 -6
  512. package/contracts/type/RoleId.sol +61 -55
  513. package/contracts/type/Seconds.sol +40 -1
  514. package/contracts/type/Selector.sol +5 -0
  515. package/contracts/type/StateId.sol +15 -1
  516. package/contracts/type/String.sol +12 -0
  517. package/contracts/type/Timestamp.sol +14 -7
  518. package/contracts/type/UFixed.sol +38 -126
  519. package/contracts/type/Version.sol +54 -5
  520. package/contracts/upgradeability/IVersionable.sol +3 -0
  521. package/contracts/upgradeability/ProxyManager.sol +94 -46
  522. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  523. package/contracts/upgradeability/Versionable.sol +8 -5
  524. package/package.json +5 -4
  525. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  527. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  528. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  529. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  531. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  532. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  533. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  535. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  537. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  538. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  540. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  541. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  543. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  544. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  546. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  547. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  548. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  549. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  550. package/contracts/instance/module/IAccess.sol +0 -46
  551. package/contracts/product/IProductService.sol +0 -33
  552. package/contracts/product/ProductService.sol +0 -99
  553. package/contracts/product/ProductServiceManager.sol +0 -39
  554. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  555. package/contracts/shared/IKeyValueStore.sol +0 -54
  556. package/contracts/shared/InitializableCustom.sol +0 -177
  557. package/contracts/shared/KeyValueStore.sol +0 -131
  558. package/contracts/staking/StakeManagerLib.sol +0 -231
  559. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,1429 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SimpleDistribution",
4
+ "sourceName": "contracts/examples/unpermissioned/SimpleDistribution.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "productNftId",
16
+ "type": "uint96"
17
+ },
18
+ {
19
+ "internalType": "contract IAuthorization",
20
+ "name": "authorization",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "initialOwner",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "authority",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "name": "AccessManagedInvalidAuthority",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "caller",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "delay",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "AccessManagedRequiredDelay",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "caller",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "AccessManagedUnauthorized",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "authority",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ErrorAuthorityInvalid",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "ErrorComponentNameLengthZero",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "caller",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ErrorComponentNotChainNft",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "ErrorComponentProductNftIdNonzero",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "ErrorComponentProductNftIdZero",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "ErrorComponentWalletAddressIsSameAsCurrent",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "ErrorComponentWalletAddressZero",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "ErrorComponentWalletNotComponent",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "NftId",
126
+ "name": "nftId",
127
+ "type": "uint96"
128
+ },
129
+ {
130
+ "internalType": "ObjectType",
131
+ "name": "objectType",
132
+ "type": "uint8"
133
+ }
134
+ ],
135
+ "name": "ErrorInstanceLinkedComponentNotProduct",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [
140
+ {
141
+ "internalType": "ObjectType",
142
+ "name": "requiredType",
143
+ "type": "uint8"
144
+ },
145
+ {
146
+ "internalType": "ObjectType",
147
+ "name": "objectType",
148
+ "type": "uint8"
149
+ }
150
+ ],
151
+ "name": "ErrorInstanceLinkedComponentTypeMismatch",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "NftId",
158
+ "name": "nftId",
159
+ "type": "uint96"
160
+ }
161
+ ],
162
+ "name": "ErrorNftOwnableAlreadyLinked",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "address",
169
+ "name": "contractAddress",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "ErrorNftOwnableContractNotRegistered",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "ErrorNftOwnableInitialOwnerZero",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [
183
+ {
184
+ "internalType": "NftId",
185
+ "name": "nftId",
186
+ "type": "uint96"
187
+ },
188
+ {
189
+ "internalType": "ObjectType",
190
+ "name": "expectedObjectType",
191
+ "type": "uint8"
192
+ }
193
+ ],
194
+ "name": "ErrorNftOwnableInvalidType",
195
+ "type": "error"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "address",
201
+ "name": "account",
202
+ "type": "address"
203
+ }
204
+ ],
205
+ "name": "ErrorNftOwnableNotOwner",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [
210
+ {
211
+ "internalType": "address",
212
+ "name": "registryAddress",
213
+ "type": "address"
214
+ }
215
+ ],
216
+ "name": "ErrorNotRegistry",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "ErrorRegisterableNotActive",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [],
226
+ "name": "InvalidInitialization",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [],
231
+ "name": "NotInitializing",
232
+ "type": "error"
233
+ },
234
+ {
235
+ "anonymous": false,
236
+ "inputs": [
237
+ {
238
+ "indexed": false,
239
+ "internalType": "address",
240
+ "name": "authority",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "AuthorityUpdated",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "anonymous": false,
249
+ "inputs": [
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint64",
253
+ "name": "version",
254
+ "type": "uint64"
255
+ }
256
+ ],
257
+ "name": "Initialized",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": false,
265
+ "internalType": "address",
266
+ "name": "tokenHandler",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "address",
272
+ "name": "token",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "indexed": false,
277
+ "internalType": "Amount",
278
+ "name": "limit",
279
+ "type": "uint96"
280
+ },
281
+ {
282
+ "indexed": false,
283
+ "internalType": "bool",
284
+ "name": "isMaxAmount",
285
+ "type": "bool"
286
+ }
287
+ ],
288
+ "name": "LogComponentTokenHandlerApproved",
289
+ "type": "event"
290
+ },
291
+ {
292
+ "anonymous": false,
293
+ "inputs": [
294
+ {
295
+ "indexed": false,
296
+ "internalType": "address",
297
+ "name": "oldWallet",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "address",
303
+ "name": "newWallet",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "name": "LogComponentWalletAddressChanged",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": false,
315
+ "internalType": "address",
316
+ "name": "from",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "address",
322
+ "name": "to",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "uint256",
328
+ "name": "amount",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "name": "LogComponentWalletTokensTransferred",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "address",
341
+ "name": "to",
342
+ "type": "address"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "internalType": "address",
347
+ "name": "operator",
348
+ "type": "address"
349
+ }
350
+ ],
351
+ "name": "LogDistributorUpdated",
352
+ "type": "event"
353
+ },
354
+ {
355
+ "anonymous": false,
356
+ "inputs": [
357
+ {
358
+ "indexed": false,
359
+ "internalType": "NftId",
360
+ "name": "nftId",
361
+ "type": "uint96"
362
+ },
363
+ {
364
+ "indexed": false,
365
+ "internalType": "address",
366
+ "name": "owner",
367
+ "type": "address"
368
+ }
369
+ ],
370
+ "name": "LogNftOwnableNftLinkedToAddress",
371
+ "type": "event"
372
+ },
373
+ {
374
+ "inputs": [],
375
+ "name": "COMPONENT_LOCATION_V1",
376
+ "outputs": [
377
+ {
378
+ "internalType": "bytes32",
379
+ "name": "",
380
+ "type": "bytes32"
381
+ }
382
+ ],
383
+ "stateMutability": "view",
384
+ "type": "function"
385
+ },
386
+ {
387
+ "inputs": [],
388
+ "name": "DISTRIBUTION_STORAGE_LOCATION_V1",
389
+ "outputs": [
390
+ {
391
+ "internalType": "bytes32",
392
+ "name": "",
393
+ "type": "bytes32"
394
+ }
395
+ ],
396
+ "stateMutability": "view",
397
+ "type": "function"
398
+ },
399
+ {
400
+ "inputs": [],
401
+ "name": "INSTANCE_LINKED_COMPONENT_LOCATION_V1",
402
+ "outputs": [
403
+ {
404
+ "internalType": "bytes32",
405
+ "name": "",
406
+ "type": "bytes32"
407
+ }
408
+ ],
409
+ "stateMutability": "view",
410
+ "type": "function"
411
+ },
412
+ {
413
+ "inputs": [],
414
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
415
+ "outputs": [
416
+ {
417
+ "internalType": "bytes32",
418
+ "name": "",
419
+ "type": "bytes32"
420
+ }
421
+ ],
422
+ "stateMutability": "view",
423
+ "type": "function"
424
+ },
425
+ {
426
+ "inputs": [],
427
+ "name": "REGISTERABLE_LOCATION_V1",
428
+ "outputs": [
429
+ {
430
+ "internalType": "bytes32",
431
+ "name": "",
432
+ "type": "bytes32"
433
+ }
434
+ ],
435
+ "stateMutability": "view",
436
+ "type": "function"
437
+ },
438
+ {
439
+ "inputs": [
440
+ {
441
+ "internalType": "contract IERC20Metadata",
442
+ "name": "token",
443
+ "type": "address"
444
+ },
445
+ {
446
+ "internalType": "Amount",
447
+ "name": "amount",
448
+ "type": "uint96"
449
+ }
450
+ ],
451
+ "name": "approveTokenHandler",
452
+ "outputs": [],
453
+ "stateMutability": "nonpayable",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [],
458
+ "name": "authority",
459
+ "outputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [
471
+ {
472
+ "internalType": "ReferralId",
473
+ "name": "",
474
+ "type": "bytes8"
475
+ },
476
+ {
477
+ "internalType": "uint256",
478
+ "name": "netPremiumAmount",
479
+ "type": "uint256"
480
+ }
481
+ ],
482
+ "name": "calculateRenewalFeeAmount",
483
+ "outputs": [
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "feeAmount",
487
+ "type": "uint256"
488
+ }
489
+ ],
490
+ "stateMutability": "view",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "NftId",
497
+ "name": "distributorNftId",
498
+ "type": "uint96"
499
+ },
500
+ {
501
+ "internalType": "DistributorType",
502
+ "name": "distributorType",
503
+ "type": "bytes8"
504
+ },
505
+ {
506
+ "internalType": "bytes",
507
+ "name": "data",
508
+ "type": "bytes"
509
+ }
510
+ ],
511
+ "name": "changeDistributorType",
512
+ "outputs": [],
513
+ "stateMutability": "nonpayable",
514
+ "type": "function"
515
+ },
516
+ {
517
+ "inputs": [
518
+ {
519
+ "internalType": "address",
520
+ "name": "distributor",
521
+ "type": "address"
522
+ },
523
+ {
524
+ "internalType": "DistributorType",
525
+ "name": "distributorType",
526
+ "type": "bytes8"
527
+ },
528
+ {
529
+ "internalType": "bytes",
530
+ "name": "data",
531
+ "type": "bytes"
532
+ }
533
+ ],
534
+ "name": "createDistributor",
535
+ "outputs": [
536
+ {
537
+ "internalType": "NftId",
538
+ "name": "distributorNftId",
539
+ "type": "uint96"
540
+ }
541
+ ],
542
+ "stateMutability": "nonpayable",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [
547
+ {
548
+ "internalType": "string",
549
+ "name": "name",
550
+ "type": "string"
551
+ },
552
+ {
553
+ "internalType": "UFixed",
554
+ "name": "minDiscountPercentage",
555
+ "type": "uint160"
556
+ },
557
+ {
558
+ "internalType": "UFixed",
559
+ "name": "maxDiscountPercentage",
560
+ "type": "uint160"
561
+ },
562
+ {
563
+ "internalType": "UFixed",
564
+ "name": "commissionPercentage",
565
+ "type": "uint160"
566
+ },
567
+ {
568
+ "internalType": "uint32",
569
+ "name": "maxReferralCount",
570
+ "type": "uint32"
571
+ },
572
+ {
573
+ "internalType": "Seconds",
574
+ "name": "maxReferralLifetime",
575
+ "type": "uint40"
576
+ },
577
+ {
578
+ "internalType": "bool",
579
+ "name": "allowSelfReferrals",
580
+ "type": "bool"
581
+ },
582
+ {
583
+ "internalType": "bool",
584
+ "name": "allowRenewals",
585
+ "type": "bool"
586
+ },
587
+ {
588
+ "internalType": "bytes",
589
+ "name": "data",
590
+ "type": "bytes"
591
+ }
592
+ ],
593
+ "name": "createDistributorType",
594
+ "outputs": [
595
+ {
596
+ "internalType": "DistributorType",
597
+ "name": "distributorType",
598
+ "type": "bytes8"
599
+ }
600
+ ],
601
+ "stateMutability": "nonpayable",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [
606
+ {
607
+ "internalType": "NftId",
608
+ "name": "distributorNftId",
609
+ "type": "uint96"
610
+ },
611
+ {
612
+ "internalType": "string",
613
+ "name": "code",
614
+ "type": "string"
615
+ },
616
+ {
617
+ "internalType": "UFixed",
618
+ "name": "discountPercentage",
619
+ "type": "uint160"
620
+ },
621
+ {
622
+ "internalType": "uint32",
623
+ "name": "maxReferrals",
624
+ "type": "uint32"
625
+ },
626
+ {
627
+ "internalType": "Timestamp",
628
+ "name": "expiryAt",
629
+ "type": "uint40"
630
+ },
631
+ {
632
+ "internalType": "bytes",
633
+ "name": "data",
634
+ "type": "bytes"
635
+ }
636
+ ],
637
+ "name": "createReferral",
638
+ "outputs": [
639
+ {
640
+ "internalType": "ReferralId",
641
+ "name": "referralId",
642
+ "type": "bytes8"
643
+ }
644
+ ],
645
+ "stateMutability": "nonpayable",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [
650
+ {
651
+ "internalType": "NftId",
652
+ "name": "distributorNftId",
653
+ "type": "uint96"
654
+ },
655
+ {
656
+ "internalType": "string",
657
+ "name": "code",
658
+ "type": "string"
659
+ },
660
+ {
661
+ "internalType": "UFixed",
662
+ "name": "discountPercentage",
663
+ "type": "uint160"
664
+ },
665
+ {
666
+ "internalType": "uint32",
667
+ "name": "maxReferrals",
668
+ "type": "uint32"
669
+ },
670
+ {
671
+ "internalType": "Timestamp",
672
+ "name": "expiryAt",
673
+ "type": "uint40"
674
+ },
675
+ {
676
+ "internalType": "bytes",
677
+ "name": "data",
678
+ "type": "bytes"
679
+ }
680
+ ],
681
+ "name": "createReferral2",
682
+ "outputs": [
683
+ {
684
+ "internalType": "ReferralId",
685
+ "name": "referralId",
686
+ "type": "bytes8"
687
+ }
688
+ ],
689
+ "stateMutability": "nonpayable",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [],
694
+ "name": "getAuthorization",
695
+ "outputs": [
696
+ {
697
+ "internalType": "contract IAuthorization",
698
+ "name": "authorization",
699
+ "type": "address"
700
+ }
701
+ ],
702
+ "stateMutability": "view",
703
+ "type": "function"
704
+ },
705
+ {
706
+ "inputs": [],
707
+ "name": "getComponentInfo",
708
+ "outputs": [
709
+ {
710
+ "components": [
711
+ {
712
+ "internalType": "string",
713
+ "name": "name",
714
+ "type": "string"
715
+ },
716
+ {
717
+ "internalType": "contract TokenHandler",
718
+ "name": "tokenHandler",
719
+ "type": "address"
720
+ }
721
+ ],
722
+ "internalType": "struct IComponents.ComponentInfo",
723
+ "name": "info",
724
+ "type": "tuple"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "string",
734
+ "name": "referralCode",
735
+ "type": "string"
736
+ }
737
+ ],
738
+ "name": "getDiscountPercentage",
739
+ "outputs": [
740
+ {
741
+ "internalType": "UFixed",
742
+ "name": "discountPercentage",
743
+ "type": "uint160"
744
+ },
745
+ {
746
+ "internalType": "ReferralStatus",
747
+ "name": "status",
748
+ "type": "uint8"
749
+ }
750
+ ],
751
+ "stateMutability": "view",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [],
756
+ "name": "getInitialComponentInfo",
757
+ "outputs": [
758
+ {
759
+ "components": [
760
+ {
761
+ "internalType": "string",
762
+ "name": "name",
763
+ "type": "string"
764
+ },
765
+ {
766
+ "internalType": "contract TokenHandler",
767
+ "name": "tokenHandler",
768
+ "type": "address"
769
+ }
770
+ ],
771
+ "internalType": "struct IComponents.ComponentInfo",
772
+ "name": "info",
773
+ "type": "tuple"
774
+ }
775
+ ],
776
+ "stateMutability": "view",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [],
781
+ "name": "getInitialInfo",
782
+ "outputs": [
783
+ {
784
+ "components": [
785
+ {
786
+ "internalType": "NftId",
787
+ "name": "nftId",
788
+ "type": "uint96"
789
+ },
790
+ {
791
+ "internalType": "NftId",
792
+ "name": "parentNftId",
793
+ "type": "uint96"
794
+ },
795
+ {
796
+ "internalType": "ObjectType",
797
+ "name": "objectType",
798
+ "type": "uint8"
799
+ },
800
+ {
801
+ "internalType": "bool",
802
+ "name": "isInterceptor",
803
+ "type": "bool"
804
+ },
805
+ {
806
+ "internalType": "address",
807
+ "name": "objectAddress",
808
+ "type": "address"
809
+ },
810
+ {
811
+ "internalType": "address",
812
+ "name": "initialOwner",
813
+ "type": "address"
814
+ },
815
+ {
816
+ "internalType": "bytes",
817
+ "name": "data",
818
+ "type": "bytes"
819
+ }
820
+ ],
821
+ "internalType": "struct IRegistry.ObjectInfo",
822
+ "name": "info",
823
+ "type": "tuple"
824
+ }
825
+ ],
826
+ "stateMutability": "view",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "inputs": [],
831
+ "name": "getInstance",
832
+ "outputs": [
833
+ {
834
+ "internalType": "contract IInstance",
835
+ "name": "instance",
836
+ "type": "address"
837
+ }
838
+ ],
839
+ "stateMutability": "view",
840
+ "type": "function"
841
+ },
842
+ {
843
+ "inputs": [],
844
+ "name": "getName",
845
+ "outputs": [
846
+ {
847
+ "internalType": "string",
848
+ "name": "name",
849
+ "type": "string"
850
+ }
851
+ ],
852
+ "stateMutability": "view",
853
+ "type": "function"
854
+ },
855
+ {
856
+ "inputs": [],
857
+ "name": "getNftId",
858
+ "outputs": [
859
+ {
860
+ "internalType": "NftId",
861
+ "name": "",
862
+ "type": "uint96"
863
+ }
864
+ ],
865
+ "stateMutability": "view",
866
+ "type": "function"
867
+ },
868
+ {
869
+ "inputs": [],
870
+ "name": "getOwner",
871
+ "outputs": [
872
+ {
873
+ "internalType": "address",
874
+ "name": "",
875
+ "type": "address"
876
+ }
877
+ ],
878
+ "stateMutability": "view",
879
+ "type": "function"
880
+ },
881
+ {
882
+ "inputs": [
883
+ {
884
+ "internalType": "string",
885
+ "name": "referralCode",
886
+ "type": "string"
887
+ }
888
+ ],
889
+ "name": "getReferralId",
890
+ "outputs": [
891
+ {
892
+ "internalType": "ReferralId",
893
+ "name": "referralId",
894
+ "type": "bytes8"
895
+ }
896
+ ],
897
+ "stateMutability": "view",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [],
902
+ "name": "getRegistry",
903
+ "outputs": [
904
+ {
905
+ "internalType": "contract IRegistry",
906
+ "name": "",
907
+ "type": "address"
908
+ }
909
+ ],
910
+ "stateMutability": "view",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [],
915
+ "name": "getRelease",
916
+ "outputs": [
917
+ {
918
+ "internalType": "VersionPart",
919
+ "name": "release",
920
+ "type": "uint8"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [],
928
+ "name": "getToken",
929
+ "outputs": [
930
+ {
931
+ "internalType": "contract IERC20Metadata",
932
+ "name": "token",
933
+ "type": "address"
934
+ }
935
+ ],
936
+ "stateMutability": "view",
937
+ "type": "function"
938
+ },
939
+ {
940
+ "inputs": [],
941
+ "name": "getTokenHandler",
942
+ "outputs": [
943
+ {
944
+ "internalType": "contract TokenHandler",
945
+ "name": "tokenHandler",
946
+ "type": "address"
947
+ }
948
+ ],
949
+ "stateMutability": "view",
950
+ "type": "function"
951
+ },
952
+ {
953
+ "inputs": [],
954
+ "name": "getVersion",
955
+ "outputs": [
956
+ {
957
+ "internalType": "Version",
958
+ "name": "version",
959
+ "type": "uint24"
960
+ }
961
+ ],
962
+ "stateMutability": "view",
963
+ "type": "function"
964
+ },
965
+ {
966
+ "inputs": [],
967
+ "name": "getWallet",
968
+ "outputs": [
969
+ {
970
+ "internalType": "address",
971
+ "name": "walletAddress",
972
+ "type": "address"
973
+ }
974
+ ],
975
+ "stateMutability": "view",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "address",
982
+ "name": "registry",
983
+ "type": "address"
984
+ },
985
+ {
986
+ "internalType": "NftId",
987
+ "name": "productNftId",
988
+ "type": "uint96"
989
+ },
990
+ {
991
+ "internalType": "contract IAuthorization",
992
+ "name": "authorization",
993
+ "type": "address"
994
+ },
995
+ {
996
+ "internalType": "address",
997
+ "name": "initialOwner",
998
+ "type": "address"
999
+ },
1000
+ {
1001
+ "internalType": "string",
1002
+ "name": "name",
1003
+ "type": "string"
1004
+ }
1005
+ ],
1006
+ "name": "initialize",
1007
+ "outputs": [],
1008
+ "stateMutability": "nonpayable",
1009
+ "type": "function"
1010
+ },
1011
+ {
1012
+ "inputs": [],
1013
+ "name": "isActive",
1014
+ "outputs": [
1015
+ {
1016
+ "internalType": "bool",
1017
+ "name": "active",
1018
+ "type": "bool"
1019
+ }
1020
+ ],
1021
+ "stateMutability": "view",
1022
+ "type": "function"
1023
+ },
1024
+ {
1025
+ "inputs": [],
1026
+ "name": "isConsumingScheduledOp",
1027
+ "outputs": [
1028
+ {
1029
+ "internalType": "bytes4",
1030
+ "name": "",
1031
+ "type": "bytes4"
1032
+ }
1033
+ ],
1034
+ "stateMutability": "view",
1035
+ "type": "function"
1036
+ },
1037
+ {
1038
+ "inputs": [],
1039
+ "name": "isNftInterceptor",
1040
+ "outputs": [
1041
+ {
1042
+ "internalType": "bool",
1043
+ "name": "isInterceptor",
1044
+ "type": "bool"
1045
+ }
1046
+ ],
1047
+ "stateMutability": "view",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [],
1052
+ "name": "isRegistered",
1053
+ "outputs": [
1054
+ {
1055
+ "internalType": "bool",
1056
+ "name": "",
1057
+ "type": "bool"
1058
+ }
1059
+ ],
1060
+ "stateMutability": "view",
1061
+ "type": "function"
1062
+ },
1063
+ {
1064
+ "inputs": [],
1065
+ "name": "isVerifying",
1066
+ "outputs": [
1067
+ {
1068
+ "internalType": "bool",
1069
+ "name": "verifying",
1070
+ "type": "bool"
1071
+ }
1072
+ ],
1073
+ "stateMutability": "pure",
1074
+ "type": "function"
1075
+ },
1076
+ {
1077
+ "inputs": [],
1078
+ "name": "linkToRegisteredNftId",
1079
+ "outputs": [
1080
+ {
1081
+ "internalType": "NftId",
1082
+ "name": "nftId",
1083
+ "type": "uint96"
1084
+ }
1085
+ ],
1086
+ "stateMutability": "nonpayable",
1087
+ "type": "function"
1088
+ },
1089
+ {
1090
+ "inputs": [
1091
+ {
1092
+ "internalType": "address",
1093
+ "name": "from",
1094
+ "type": "address"
1095
+ },
1096
+ {
1097
+ "internalType": "address",
1098
+ "name": "to",
1099
+ "type": "address"
1100
+ },
1101
+ {
1102
+ "internalType": "uint256",
1103
+ "name": "tokenId",
1104
+ "type": "uint256"
1105
+ },
1106
+ {
1107
+ "internalType": "address",
1108
+ "name": "operator",
1109
+ "type": "address"
1110
+ }
1111
+ ],
1112
+ "name": "nftTransferFrom",
1113
+ "outputs": [],
1114
+ "stateMutability": "nonpayable",
1115
+ "type": "function"
1116
+ },
1117
+ {
1118
+ "inputs": [
1119
+ {
1120
+ "internalType": "ReferralId",
1121
+ "name": "referralId",
1122
+ "type": "bytes8"
1123
+ },
1124
+ {
1125
+ "internalType": "uint256",
1126
+ "name": "feeAmount",
1127
+ "type": "uint256"
1128
+ }
1129
+ ],
1130
+ "name": "processRenewal",
1131
+ "outputs": [],
1132
+ "stateMutability": "nonpayable",
1133
+ "type": "function"
1134
+ },
1135
+ {
1136
+ "inputs": [
1137
+ {
1138
+ "internalType": "address",
1139
+ "name": "newAuthority",
1140
+ "type": "address"
1141
+ }
1142
+ ],
1143
+ "name": "setAuthority",
1144
+ "outputs": [],
1145
+ "stateMutability": "nonpayable",
1146
+ "type": "function"
1147
+ },
1148
+ {
1149
+ "inputs": [
1150
+ {
1151
+ "components": [
1152
+ {
1153
+ "internalType": "UFixed",
1154
+ "name": "fractionalFee",
1155
+ "type": "uint160"
1156
+ },
1157
+ {
1158
+ "internalType": "Amount",
1159
+ "name": "fixedFee",
1160
+ "type": "uint96"
1161
+ }
1162
+ ],
1163
+ "internalType": "struct Fee",
1164
+ "name": "distributionFee",
1165
+ "type": "tuple"
1166
+ },
1167
+ {
1168
+ "components": [
1169
+ {
1170
+ "internalType": "UFixed",
1171
+ "name": "fractionalFee",
1172
+ "type": "uint160"
1173
+ },
1174
+ {
1175
+ "internalType": "Amount",
1176
+ "name": "fixedFee",
1177
+ "type": "uint96"
1178
+ }
1179
+ ],
1180
+ "internalType": "struct Fee",
1181
+ "name": "minDistributionOwnerFee",
1182
+ "type": "tuple"
1183
+ }
1184
+ ],
1185
+ "name": "setFees",
1186
+ "outputs": [],
1187
+ "stateMutability": "nonpayable",
1188
+ "type": "function"
1189
+ },
1190
+ {
1191
+ "inputs": [
1192
+ {
1193
+ "internalType": "bool",
1194
+ "name": "locked",
1195
+ "type": "bool"
1196
+ }
1197
+ ],
1198
+ "name": "setLocked",
1199
+ "outputs": [],
1200
+ "stateMutability": "nonpayable",
1201
+ "type": "function"
1202
+ },
1203
+ {
1204
+ "inputs": [
1205
+ {
1206
+ "internalType": "address",
1207
+ "name": "newWallet",
1208
+ "type": "address"
1209
+ }
1210
+ ],
1211
+ "name": "setWallet",
1212
+ "outputs": [],
1213
+ "stateMutability": "nonpayable",
1214
+ "type": "function"
1215
+ },
1216
+ {
1217
+ "inputs": [
1218
+ {
1219
+ "internalType": "bytes4",
1220
+ "name": "interfaceId",
1221
+ "type": "bytes4"
1222
+ }
1223
+ ],
1224
+ "name": "supportsInterface",
1225
+ "outputs": [
1226
+ {
1227
+ "internalType": "bool",
1228
+ "name": "",
1229
+ "type": "bool"
1230
+ }
1231
+ ],
1232
+ "stateMutability": "view",
1233
+ "type": "function"
1234
+ },
1235
+ {
1236
+ "inputs": [
1237
+ {
1238
+ "internalType": "NftId",
1239
+ "name": "distributorNftId",
1240
+ "type": "uint96"
1241
+ },
1242
+ {
1243
+ "internalType": "Amount",
1244
+ "name": "amount",
1245
+ "type": "uint96"
1246
+ }
1247
+ ],
1248
+ "name": "withdrawCommission",
1249
+ "outputs": [
1250
+ {
1251
+ "internalType": "Amount",
1252
+ "name": "withdrawnAmount",
1253
+ "type": "uint96"
1254
+ }
1255
+ ],
1256
+ "stateMutability": "nonpayable",
1257
+ "type": "function"
1258
+ },
1259
+ {
1260
+ "inputs": [
1261
+ {
1262
+ "internalType": "Amount",
1263
+ "name": "amount",
1264
+ "type": "uint96"
1265
+ }
1266
+ ],
1267
+ "name": "withdrawFees",
1268
+ "outputs": [
1269
+ {
1270
+ "internalType": "Amount",
1271
+ "name": "withdrawnAmount",
1272
+ "type": "uint96"
1273
+ }
1274
+ ],
1275
+ "stateMutability": "nonpayable",
1276
+ "type": "function"
1277
+ }
1278
+ ],
1279
+ "bytecode": "0x608060405234801561000f575f80fd5b50604051614c2d380380614c2d83398101604081905261002e91610c3c565b61006b848484846040518060400160405280601281526020017129b4b6b83632a234b9ba3934b13aba34b7b760711b81525061007460201b60201c565b50505050610ff4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156100bd5750825b90505f826001600160401b031660011480156100d85750303b155b9050811580156100e6575080155b156101045760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561013257845460ff60401b1916680100000000000000001785555b61013f8a8a8a8a8a610191565b831561018557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6101996101ae565b6101a78585855f86866101fe565b5050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101fc57604051631afcd79f60e31b815260040160405180910390fd5b565b6102066101ae565b610216868683600e8888886102a7565b7faab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900610246600e6104d5565b6104d5565b6001820180546001600160a01b0319166001600160a01b0392909216919091179055610273610241600b90565b81546001600160a01b0319166001600160a01b039190911617815561029e6303c09ad960e41b61056c565b50505050505050565b6102af6101ae565b5f6102bb88888761059f565b90505f7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0060405163bf8e179760e01b81526001600160601b03841660048201529091506001600160a01b038a169063bf8e179790602401602060405180830381865afa15801561032d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103519190610c94565b81546001600160a01b0319166001600160a01b039190911690811782556040805163bf7e214f60e01b815290516103ef929163bf7e214f9160048083019260209291908290030181865afa1580156103ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cf9190610c94565b8a8a8a8a898960405180602001604052805f81525061064a60201b60201c565b8054604080516302cd307160e01b815290516001600160a01b03909216916302cd3071916004808201926020929091908290030181865afa158015610436573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045a9190610c94565b6001820180546001600160a01b03199081166001600160a01b0393841617909155600283018054909116918716919091179055610498610241600b90565b6003820180546001600160a01b0319166001600160a01b03929092169190911790556104ca63a9c1bc6f60e01b61056c565b505050505050505050565b5f6104e86001546001600160a01b031690565b6001600160a01b031663d39e6043836104ff610713565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015610542573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105669190610c94565b92915050565b6105746101ae565b61059c816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b5f60ff8216600c036105c0576105b78484600a6107a9565b50829050610643565b5f6105cd8585600c6107a9565b60405163677d3feb60e11b81526001600160601b03861660048201529091506001600160a01b0382169063cefa7fd690602401602060405180830381865afa15801561061b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063f9190610caf565b9150505b9392505050565b6106526101ae565b84515f036106735760405163591eebf360e11b815260040160405180910390fd5b61068288888887878787610873565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00806106ae8782610d5d565b5060018101805460ff19168515151790556106ca610241600b90565b6001820180546001600160a01b039290921661010002610100600160a81b0319909216919091179055610703634a531f3360e01b61056c565b6104ca6306e9e5ff60e31b61056c565b5f6107457ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610780573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a49190610e30565b905090565b6040516305247a1760e51b81526001600160601b038316600482015283905f906001600160a01b0383169063a48f42e0906024015f60405180830381865afa1580156107f7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261081e9190810190610f0b565b905061083581604001518460ff9081169116141590565b1561086b57604080820151905163b0c1f6eb60e01b815260ff808616600483015290911660248201526044015b60405180910390fd5b509392505050565b61087b6101ae565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af41580156108d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f59190610fdb565b61091d5760405163cf6935e560e01b81526001600160a01b0388166004820152602401610862565b610926876109c7565b61093086836109d8565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d0100000000000000000000000000861515021781559050600181016109ac8382610d5d565b506109bd634a531f3360e01b61056c565b5050505050505050565b6109cf6101ae565b61059c81610a6a565b6109e06101ae565b6109e8610a7b565b6109f182610ac3565b6001600160a01b038116610a185760405163f17ef42d60e01b815260040160405180910390fd5b7f07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f0080546001600160601b03166c010000000000000000000000006001600160a01b039093169290920291909117905550565b610a726101ae565b61059c81610b8f565b610a836101ae565b6101fc6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610acb6101ae565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af4158015610b21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b459190610fdb565b610b6d5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610862565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6001600160a01b038116811461059c575f80fd5b8051610c2181610c02565b919050565b80516001600160601b0381168114610c21575f80fd5b5f805f8060808587031215610c4f575f80fd5b8451610c5a81610c02565b9350610c6860208601610c26565b92506040850151610c7881610c02565b6060860151909250610c8981610c02565b939692955090935050565b5f60208284031215610ca4575f80fd5b815161064381610c02565b5f60208284031215610cbf575f80fd5b61064382610c26565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610cf057607f821691505b602082108103610d0e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d5857805f5260205f20601f840160051c81016020851015610d395750805b601f840160051c820191505b818110156101a7575f8155600101610d45565b505050565b81516001600160401b03811115610d7657610d76610cc8565b610d8a81610d848454610cdc565b84610d14565b6020601f821160018114610dbc575f8315610da55750848201515b5f19600385901b1c1916600184901b1784556101a7565b5f84815260208120601f198516915b82811015610deb5787850151825560209485019460019092019101610dcb565b5084821015610e0857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60ff8116811461059c575f80fd5b8051610c2181610e17565b5f60208284031215610e40575f80fd5b815161064381610e17565b60405160e081016001600160401b0381118282101715610e6d57610e6d610cc8565b60405290565b80518015158114610c21575f80fd5b5f82601f830112610e91575f80fd5b81516001600160401b03811115610eaa57610eaa610cc8565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610ed857610ed8610cc8565b604052818152838201602001851015610eef575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215610f1b575f80fd5b81516001600160401b03811115610f30575f80fd5b820160e08185031215610f41575f80fd5b610f49610e4b565b610f5282610c26565b8152610f6060208301610c26565b6020820152610f7160408301610e25565b6040820152610f8260608301610e73565b6060820152610f9360808301610c16565b6080820152610fa460a08301610c16565b60a082015260c08201516001600160401b03811115610fc1575f80fd5b610fcd86828501610e82565b60c083015250949350505050565b5f60208284031215610feb575f80fd5b61064382610e73565b613c2c806110015f395ff3fe608060405234801561000f575f80fd5b5060043610610276575f3560e01c80637427d7a811610156578063ada9652e116100ca578063deaa59df11610084578063deaa59df146105c0578063e145d46c146105d3578063ea15869f14610607578063f322c70a1461061b578063f5860e1a1461062e578063f80e207214610642575f80fd5b8063ada9652e14610559578063b423086c1461056d578063bf7e214f14610575578063d16d0fe81461057d578063d89873b114610590578063de7b5d14146105a3575f80fd5b80638fb360371161011b5780638fb36037146104d757806390edbd35146104f8578063963cb0671461050d578063987cb16114610520578063ab3fc75f14610533578063ad12ad6014610546575f80fd5b80637427d7a81461048857806376b707b71461049b5780637a9e5e4b146104b557806387ef9ba0146104c8578063893d20e8146104cf575f80fd5b806321df0da7116101ed57806343d752d3116101b257806343d752d31461041c5780635741e5e9146104245780635ab1bd531461042c5780635dcb3bae1461043d578063644c45e0146104505780636bd1c0eb14610458575f80fd5b806321df0da7146103dd57806322366844146103e557806322f3e2d4146103ed5780632eb3e6f4146103f5578063419197fe14610409575f80fd5b8063138461e01161023e578063138461e01461033757806317d7de7c1461033f5780631bda5efa146103545780631c6b2190146103805780631eff4b2214610393578063211e28b6146103c8575f80fd5b806301ffc9a71461027a57806307e71a6e146102bb5780630d8e6e2c146102e65780630fec111c146103025780631329960414610317575b5f80fd5b6102a6610288366004612d2b565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102ce6102c9366004612d66565b610655565b6040516001600160601b0390911681526020016102b2565b6102ee610726565b60405162ffffff90911681526020016102b2565b61030a6107ad565b6040516102b29190612dcb565b61031f610967565b6040516001600160a01b0390911681526020016102b2565b6102ce6109cf565b6103476109d9565b6040516102b29190612e5f565b610367610362366004612fe9565b6109e9565b6040516001600160c01b031990911681526020016102b2565b6102ce61038e3660046130bf565b610a4d565b6103ba7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016102b2565b6103db6103d63660046130da565b610aa3565b005b61031f610aea565b6102a6610b2e565b6102a6610c24565b6103ba5f80516020613bd783398151915281565b6103db6104173660046130f5565b610c9b565b61031f610cee565b6102a6610d00565b6001546001600160a01b031661031f565b6102ce61044b366004613126565b610db6565b6102ce610e10565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b031661031f565b610367610496366004613183565b610e2b565b6104a3610eab565b60405160ff90911681526020016102b2565b6103db6104c33660046131b4565b610f13565b60016102a6565b61031f610f99565b6104df6110ca565b6040516001600160e01b031990911681526020016102b2565b6105006110ff565b6040516102b291906131cf565b6103db61051b36600461320b565b611130565b61036761052e36600461328d565b611244565b6103db610541366004613337565b611311565b6103db610554366004613354565b611374565b6103ba5f80516020613b3783398151915281565b610500611417565b61031f611433565b6103ba61058b3660046133a4565b61144e565b61036761059e36600461328d565b611462565b5f80516020613bd7833981519152546001600160a01b031661031f565b6103db6105ce3660046131b4565b61147c565b6105e66105e1366004613183565b6114c9565b604080516001600160a01b03909316835260ff9091166020830152016102b2565b6103ba5f80516020613b5783398151915281565b6103db61062936600461340e565b611583565b6103ba5f80516020613bb783398151915281565b6103db6106503660046133a4565b6115d1565b5f610662335b5f366115da565b82601761066f82826116d8565b846106826001546001600160a01b031690565b6001600160a01b031663b303aaf882336040518363ffffffff1660e01b81526004016106af929190613441565b602060405180830381865afa1580156106ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ee919061346e565b6107125760405163086391f760e31b81523360048201526024015b60405180910390fd5b61071c868661180c565b9695505050505050565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610784573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a89190613489565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d91906134b6565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016108c5610f99565b6001600160a01b031681526020018260010180546108e2906134d1565b80601f016020809104026020016040519081016040528092919081815260200182805461090e906134d1565b80156109595780601f1061093057610100808354040283529160200191610959565b820191905f5260205f20905b81548152906001019060200180831161093c57829003601f168201915b505050505081525091505090565b5f610970610cee565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a89190613514565b5f6107a830611898565b60606109e36110ff565b51919050565b5f6109f33361065b565b6109fb610f99565b6001600160a01b0316336001600160a01b031614610a2e5760405163086391f760e31b8152336004820152602401610709565b610a3f8a8a8a8a8a8a8a8a8a611ada565b9a9950505050505050505050565b5f610a573361065b565b610a5f610f99565b6001600160a01b0316336001600160a01b031614610a925760405163086391f760e31b8152336004820152602401610709565b610a9b82611b86565b90505b919050565b610aab610f99565b6001600160a01b0316336001600160a01b031614610ade5760405163086391f760e31b8152336004820152602401610709565b610ae781611c0a565b50565b5f610af3610cee565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d5f803e3d5ffd5b5f610b416001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba991906134b6565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610c00573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a8919061346e565b5f610c2d611433565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610c71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c95919061346e565b15905090565b610ca43361065b565b610cac610f99565b6001600160a01b0316336001600160a01b031614610cdf5760405163086391f760e31b8152336004820152602401610709565b610ce98282611c74565b505050565b5f610cf76110ff565b60200151905090565b5f610d09610b2e565b15610d8d576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015610d5d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d84919081019061359c565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b5f610dc03361065b565b610dc8610f99565b6001600160a01b0316336001600160a01b031614610dfb5760405163086391f760e31b8152336004820152602401610709565b610e06848484611df5565b90505b9392505050565b5f80516020613b37833981519152546001600160601b031690565b5f73__$05887d5853069c88bcd4c0a2107db45f29$__633f093cd6610e4e610e10565b846040518363ffffffff1660e01b8152600401610e6c92919061366c565b602060405180830381865af4158015610e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b919061368d565b5f610eb4611433565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a891906136a8565b33610f1c611433565b6001600160a01b0316816001600160a01b031614610f575760405162d1953b60e31b81526001600160a01b0382166004820152602401610709565b816001600160a01b03163b5f03610f8c576040516361798f2f60e11b81526001600160a01b0383166004820152602401610709565b610f9582611e8f565b5050565b5f805f80516020613b3783398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611005573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611029919061346e565b156110b4576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae9190613514565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020613b7783398151915280545f9190600160a01b900460ff166110f1575f6110ae565b638fb3603760e01b91505090565b60408051808201909152606081525f602082015261111b610b2e565b15611128576107a8611eef565b6107a8611417565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156111745750825b90505f826001600160401b0316600114801561118f5750303b155b90508115801561119d575080155b156111bb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156111e557845460ff60401b1916600160401b1785555b6111f28a8a8a8a8a6120c2565b831561123857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b5f61124e3361065b565b866112616001546001600160a01b031690565b6001600160a01b031663b303aaf882336040518363ffffffff1660e01b815260040161128e929190613441565b602060405180830381865afa1580156112a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cd919061346e565b6112ec5760405163086391f760e31b8152336004820152602401610709565b6112f78860176116d8565b6113058888888888886120d8565b98975050505050505050565b61131a3361065b565b611322610f99565b6001600160a01b0316336001600160a01b0316146113555760405163086391f760e31b8152336004820152602401610709565b82601761136282826116d8565b61136d85858561216f565b5050505050565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113df9190613514565b6001600160a01b0316336001600160a01b0316146114115760405162f0630960e01b8152336004820152602401610709565b50505050565b60408051808201909152606081525f60208201526107a8611eef565b5f80516020613b77833981519152546001600160a01b031690565b5f61145982826136c3565b90505b92915050565b5f6114718787878787876120d8565b979650505050505050565b6114853361065b565b61148d610f99565b6001600160a01b0316336001600160a01b0316146114c05760405163086391f760e31b8152336004820152602401610709565b610ae7816121ef565b5f805f6114d584610e2b565b90506115087fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60405163b82d7ef560e01b81526001600160c01b0319831660048201526001600160a01b03919091169063b82d7ef5906024016040805180830381865afa158015611555573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157991906136e6565b9250925050915091565b61158b610f99565b6001600160a01b0316336001600160a01b0316146115be5760405163086391f760e31b8152336004820152602401610709565b6115c73361065b565b610f958282612264565b610f953361065b565b5f80516020613b778339815191525f806116126115f5611433565b873061160460045f8a8c613713565b61160d9161373a565b6122cb565b91509150816116d05763ffffffff8116156116ad57825460ff60a01b1916600160a01b178355611640611433565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161166f93929190613772565b5f604051808303815f87803b158015611686575f80fd5b505af1158015611698573d5f803e3d5ffd5b5050845460ff60a01b19168555506116d09050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610709565b505050505050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015611728573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174c919061346e565b806117da57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d8919061346e565b155b15610f955760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610709565b5f5f80516020613bb7833981519152600101546040516303f38d3760e11b81526001600160601b038086166004830152841660248201526001600160a01b03909116906307e71a6e906044016020604051808303815f875af1158015611874573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145991906134b6565b5f805f80516020613b3783398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611904573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611928919061346e565b156119545780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610709565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156119a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ca919061346e565b6119f25760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610709565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6891906134b6565b81546bffffffffffffffffffffffff19166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b5490611ab4610f99565b604051611ac2929190613441565b60405180910390a1546001600160601b031692915050565b5f80516020613b9783398151915254604051630ded2f7d60e11b81525f915f80516020613bb7833981519152916001600160a01b0390911690631bda5efa90611b37908e908e908e908e908e908e908e908e908e906004016137b1565b6020604051808303815f875af1158015611b53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b77919061368d565b9b9a5050505050505050505050565b5f5f80516020613bd7833981519152600301546040516301c6b21960e41b81526001600160601b03841660048201526001600160a01b0390911690631c6b2190906024016020604051808303815f875af1158015611be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b91906134b6565b5f80516020613b578339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015611c62575f80fd5b505af115801561136d573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e611ca6610cee565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015611cee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d129190613830565b6040518263ffffffff1660e01b8152600401611d3091815260200190565b602060405180830381865af4158015611d4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6f91906134b6565b90505f80516020613b57833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b158015611dd9575f80fd5b505af1158015611deb573d5f803e3d5ffd5b5050505092915050565b5f80516020613b9783398151915254604051632ee59dd760e11b81525f915f80516020613bb7833981519152916001600160a01b0390911690635dcb3bae90611e4690889088908890600401613847565b6020604051808303815f875af1158015611e62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8691906134b6565b95945050505050565b5f80516020613b7783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60408051808201909152606081525f60208201525f611f166001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7e91906134b6565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffb919061346e565b156120ba577fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031663f0ea17c3612038610e10565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015612079573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120a0919081019061387a565b60208101519092506001600160a01b0316156120ba575090565b6110ae6123d3565b6120ca61249d565b61136d8585855f86866124e8565b5f80516020613b978339815191525460405163987cb16160e01b81525f915f80516020613bb7833981519152916001600160a01b039091169063987cb1619061212f908b908b908b908b908b908b9060040161390e565b6020604051808303815f875af115801561214b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611305919061368d565b5f80516020613b978339815191525460405163ab3fc75f60e01b81525f80516020613bb7833981519152916001600160a01b03169063ab3fc75f906121bc90879087908790600401613976565b5f604051808303815f87803b1580156121d3575f80fd5b505af11580156121e5573d5f803e3d5ffd5b5050505050505050565b6121f7610f99565b6001600160a01b0316336001600160a01b03161461222a5760405163086391f760e31b8152336004820152602401610709565b612234600b612578565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df90602401611c4b565b5f80516020613bb78339815191525460405163feff0c9160e01b81526001600160a01b039091169063feff0c91906122a290859085906004016139a9565b5f604051808303815f87803b1580156122b9575f80fd5b505af11580156116d0573d5f803e3d5ffd5b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161233991906139f5565b5f60405180830381855afa9150503d805f8114612371576040519150601f19603f3d011682016040523d82523d5f602084013e612376565b606091505b509150915081156123c85760408151106123a8578080602001905181019061239e9190613a0b565b90945092506123c8565b60208151106123c857808060200190518101906123c5919061346e565b93505b505094509492505050565b60408051808201909152606081525f60208201525f5f80516020613b5783398151915290506040518060400160405280825f018054612411906134d1565b80601f016020809104026020016040519081016040528092919081815260200182805461243d906134d1565b80156124885780601f1061245f57610100808354040283529160200191612488565b820191905f5260205f20905b81548152906001019060200180831161246b57829003601f168201915b50505091835250505f60209091015292915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166124e657604051631afcd79f60e31b815260040160405180910390fd5b565b6124f061249d565b612500868683600e888888612609565b5f80516020613bb7833981519152612518600e612578565b6001820180546001600160a01b0319166001600160a01b0392909216919091179055612544600b612578565b81546001600160a01b0319166001600160a01b039190911617815561256f6303c09ad960e41b61281d565b50505050505050565b5f61258b6001546001600160a01b031690565b6001600160a01b031663d39e6043836125a2610eab565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156125e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190613514565b61261161249d565b5f61261d88888761284d565b90505f5f80516020613bd783398151915260405163bf8e179760e01b81526001600160601b03841660048201529091506001600160a01b038a169063bf8e179790602401602060405180830381865afa15801561267c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a09190613514565b81546001600160a01b0319166001600160a01b039190911690811782556040805163bf7e214f60e01b81529051612738929163bf7e214f9160048083019260209291908290030181865afa1580156126fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061271e9190613514565b8a8a8a8a898960405180602001604052805f8152506128c9565b8054604080516302cd307160e01b815290516001600160a01b03909216916302cd3071916004808201926020929091908290030181865afa15801561277f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a39190613514565b6001820180546001600160a01b03199081166001600160a01b03938416179091556002830180549091169187169190911790556127e0600b612578565b6003820180546001600160a01b0319166001600160a01b039290921691909117905561281263a9c1bc6f60e01b61281d565b505050505050505050565b61282561249d565b610ae7816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f60ff8216600c0361286e576128658484600a61297d565b50829050610e09565b5f61287b8585600c61297d565b60405163677d3feb60e11b81526001600160601b03861660048201529091506001600160a01b0382169063cefa7fd690602401602060405180830381865afa158015611e62573d5f803e3d5ffd5b6128d161249d565b84515f036128f25760405163591eebf360e11b815260040160405180910390fd5b61290188888887878787612a42565b5f80516020613b578339815191528061291a8782613a7c565b5060018101805460ff1916851515179055612935600b612578565b8160010160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555061296d634a531f3360e01b61281d565b6128126306e9e5ff60e31b61281d565b6040516305247a1760e51b81526001600160601b038316600482015283905f906001600160a01b0383169063a48f42e0906024015f60405180830381865afa1580156129cb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129f2919081019061359c565b9050612a0981604001518460ff9081169116141590565b15612a3a57604080820151905163b0c1f6eb60e01b815260ff80861660048301529091166024820152604401610709565b509392505050565b612a4a61249d565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af4158015612aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac4919061346e565b612aec5760405163cf6935e560e01b81526001600160a01b0388166004820152602401610709565b612af587612b7f565b612aff8683612b90565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101612b6e8382613a7c565b506121e5634a531f3360e01b61281d565b612b8761249d565b610ae781612c06565b612b9861249d565b612ba0612c17565b612ba982612c5f565b6001600160a01b038116612bd05760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020613b3783398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b612c0e61249d565b610ae781611e8f565b612c1f61249d565b6124e66301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b612c6761249d565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af4158015612cbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ce1919061346e565b612d095760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610709565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215612d3b575f80fd5b81356001600160e01b031981168114610e09575f80fd5b6001600160601b0381168114610ae7575f80fd5b5f8060408385031215612d77575f80fd5b8235612d8281612d52565b91506020830135612d9281612d52565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612e13608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612e57610100840182612d9d565b949350505050565b602081525f6114596020830184612d9d565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612ea757612ea7612e71565b60405290565b60405160e081016001600160401b0381118282101715612ea757612ea7612e71565b604051601f8201601f191681016001600160401b0381118282101715612ef757612ef7612e71565b604052919050565b5f6001600160401b03821115612f1757612f17612e71565b50601f01601f191660200190565b5f82601f830112612f34575f80fd5b8135602083015f612f4c612f4784612eff565b612ecf565b9050828152858383011115612f5f575f80fd5b828260208301375f92810160200192909252509392505050565b6001600160a01b0381168114610ae7575f80fd5b8035610a9e81612f79565b63ffffffff81168114610ae7575f80fd5b8035610a9e81612f98565b64ffffffffff81168114610ae7575f80fd5b8035610a9e81612fb4565b8015158114610ae7575f80fd5b8035610a9e81612fd1565b5f805f805f805f805f6101208a8c031215613002575f80fd5b89356001600160401b03811115613017575f80fd5b6130238c828d01612f25565b99505060208a013561303481612f79565b975061304260408b01612f8d565b965061305060608b01612f8d565b955061305e60808b01612fa9565b945061306c60a08b01612fc6565b935061307a60c08b01612fde565b925061308860e08b01612fde565b91506101008a01356001600160401b038111156130a3575f80fd5b6130af8c828d01612f25565b9150509295985092959850929598565b5f602082840312156130cf575f80fd5b8135610e0981612d52565b5f602082840312156130ea575f80fd5b8135610e0981612fd1565b5f8060408385031215613106575f80fd5b8235612d8281612f79565b6001600160c01b031981168114610ae7575f80fd5b5f805f60608486031215613138575f80fd5b833561314381612f79565b9250602084013561315381613111565b915060408401356001600160401b0381111561316d575f80fd5b61317986828701612f25565b9150509250925092565b5f60208284031215613193575f80fd5b81356001600160401b038111156131a8575f80fd5b612e5784828501612f25565b5f602082840312156131c4575f80fd5b8135610e0981612f79565b602081525f8251604060208401526131ea6060840182612d9d565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f805f60a0868803121561321f575f80fd5b853561322a81612f79565b9450602086013561323a81612d52565b9350604086013561324a81612f79565b9250606086013561325a81612f79565b915060808601356001600160401b03811115613274575f80fd5b61328088828901612f25565b9150509295509295909350565b5f805f805f8060c087890312156132a2575f80fd5b86356132ad81612d52565b955060208701356001600160401b038111156132c7575f80fd5b6132d389828a01612f25565b95505060408701356132e481612f79565b935060608701356132f481612f98565b9250608087013561330481612fb4565b915060a08701356001600160401b0381111561331e575f80fd5b61332a89828a01612f25565b9150509295509295509295565b5f805f60608486031215613349575f80fd5b833561314381612d52565b5f805f8060808587031215613367575f80fd5b843561337281612f79565b9350602085013561338281612f79565b925060408501359150606085013561339981612f79565b939692955090935050565b5f80604083850312156133b5575f80fd5b82356133c081613111565b946020939093013593505050565b5f604082840312156133de575f80fd5b6133e6612e85565b905081356133f381612f79565b8152602082013561340381612d52565b602082015292915050565b5f806080838503121561341f575f80fd5b61342984846133ce565b915061343884604085016133ce565b90509250929050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b8051610a9e81612fd1565b5f6020828403121561347e575f80fd5b8151610e0981612fd1565b5f60208284031215613499575f80fd5b815162ffffff81168114610e09575f80fd5b8051610a9e81612d52565b5f602082840312156134c6575f80fd5b8151610e0981612d52565b600181811c908216806134e557607f821691505b60208210810361350357634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610a9e81612f79565b5f60208284031215613524575f80fd5b8151610e0981612f79565b60ff81168114610ae7575f80fd5b8051610a9e8161352f565b5f613555612f4784612eff565b9050828152838383011115613568575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261358d575f80fd5b61145983835160208501613548565b5f602082840312156135ac575f80fd5b81516001600160401b038111156135c1575f80fd5b820160e081850312156135d2575f80fd5b6135da612ead565b6135e3826134ab565b81526135f1602083016134ab565b60208201526136026040830161353d565b604082015261361360608301613463565b606082015261362460808301613509565b608082015261363560a08301613509565b60a082015260c08201516001600160401b03811115613652575f80fd5b61365e8682850161357e565b60c083015250949350505050565b6001600160601b0383168152604060208201525f610e066040830184612d9d565b5f6020828403121561369d575f80fd5b8151610e0981613111565b5f602082840312156136b8575f80fd5b8151610e098161352f565b808202811582820484141761145c57634e487b7160e01b5f52601160045260245ffd5b5f80604083850312156136f7575f80fd5b825161370281612f79565b6020840151909250612d928161352f565b5f8085851115613721575f80fd5b8386111561372d575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561376b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b61012081525f6137c561012083018c612d9d565b6001600160a01b038b811660208501528a811660408501528916606084015263ffffffff8816608084015264ffffffffff871660a084015285151560c084015284151560e08401528281036101008401526138208185612d9d565b9c9b505050505050505050505050565b5f60208284031215613840575f80fd5b5051919050565b6001600160a01b03841681526001600160c01b0319831660208201526060604082018190525f90611e8690830184612d9d565b5f6020828403121561388a575f80fd5b81516001600160401b0381111561389f575f80fd5b8201604081850312156138b0575f80fd5b6138b8612e85565b81516001600160401b038111156138cd575f80fd5b8201601f810186136138dd575f80fd5b6138ec86825160208401613548565b825250602082015191506138ff82612f79565b60208101919091529392505050565b6001600160601b038716815260c060208201525f61392f60c0830188612d9d565b6001600160a01b038716604084015263ffffffff8616606084015264ffffffffff8516608084015282810360a08401526139698185612d9d565b9998505050505050505050565b6001600160601b03841681526001600160401b0360c01b83166020820152606060408201525f611e866060830184612d9d565b82516001600160a01b031681526020808401516001600160601b0316908201526080810182516001600160a01b0316604083015260208301516001600160601b03166060830152610e09565b5f82518060208501845e5f920191825250919050565b5f8060408385031215613a1c575f80fd5b8251613a2781612fd1565b6020840151909250612d9281612f98565b601f821115610ce957805f5260205f20601f840160051c81016020851015613a5d5750805b601f840160051c820191505b8181101561136d575f8155600101613a69565b81516001600160401b03811115613a9557613a95612e71565b613aa981613aa384546134d1565b84613a38565b6020601f821160018114613adb575f8315613ac45750848201515b5f19600385901b1c1916600184901b17845561136d565b5f84815260208120601f198516915b82811015613b0a5787850151825560209485019460019092019101613aea565b5084821015613b2757868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00aab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f901aab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900ffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00a2646970667358221220aacfe4fc84e689fa609e40fd9f96d951bbf9b47c10a36dd542451795c940c91b64736f6c634300081a0033",
1280
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610276575f3560e01c80637427d7a811610156578063ada9652e116100ca578063deaa59df11610084578063deaa59df146105c0578063e145d46c146105d3578063ea15869f14610607578063f322c70a1461061b578063f5860e1a1461062e578063f80e207214610642575f80fd5b8063ada9652e14610559578063b423086c1461056d578063bf7e214f14610575578063d16d0fe81461057d578063d89873b114610590578063de7b5d14146105a3575f80fd5b80638fb360371161011b5780638fb36037146104d757806390edbd35146104f8578063963cb0671461050d578063987cb16114610520578063ab3fc75f14610533578063ad12ad6014610546575f80fd5b80637427d7a81461048857806376b707b71461049b5780637a9e5e4b146104b557806387ef9ba0146104c8578063893d20e8146104cf575f80fd5b806321df0da7116101ed57806343d752d3116101b257806343d752d31461041c5780635741e5e9146104245780635ab1bd531461042c5780635dcb3bae1461043d578063644c45e0146104505780636bd1c0eb14610458575f80fd5b806321df0da7146103dd57806322366844146103e557806322f3e2d4146103ed5780632eb3e6f4146103f5578063419197fe14610409575f80fd5b8063138461e01161023e578063138461e01461033757806317d7de7c1461033f5780631bda5efa146103545780631c6b2190146103805780631eff4b2214610393578063211e28b6146103c8575f80fd5b806301ffc9a71461027a57806307e71a6e146102bb5780630d8e6e2c146102e65780630fec111c146103025780631329960414610317575b5f80fd5b6102a6610288366004612d2b565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102ce6102c9366004612d66565b610655565b6040516001600160601b0390911681526020016102b2565b6102ee610726565b60405162ffffff90911681526020016102b2565b61030a6107ad565b6040516102b29190612dcb565b61031f610967565b6040516001600160a01b0390911681526020016102b2565b6102ce6109cf565b6103476109d9565b6040516102b29190612e5f565b610367610362366004612fe9565b6109e9565b6040516001600160c01b031990911681526020016102b2565b6102ce61038e3660046130bf565b610a4d565b6103ba7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016102b2565b6103db6103d63660046130da565b610aa3565b005b61031f610aea565b6102a6610b2e565b6102a6610c24565b6103ba5f80516020613bd783398151915281565b6103db6104173660046130f5565b610c9b565b61031f610cee565b6102a6610d00565b6001546001600160a01b031661031f565b6102ce61044b366004613126565b610db6565b6102ce610e10565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b031661031f565b610367610496366004613183565b610e2b565b6104a3610eab565b60405160ff90911681526020016102b2565b6103db6104c33660046131b4565b610f13565b60016102a6565b61031f610f99565b6104df6110ca565b6040516001600160e01b031990911681526020016102b2565b6105006110ff565b6040516102b291906131cf565b6103db61051b36600461320b565b611130565b61036761052e36600461328d565b611244565b6103db610541366004613337565b611311565b6103db610554366004613354565b611374565b6103ba5f80516020613b3783398151915281565b610500611417565b61031f611433565b6103ba61058b3660046133a4565b61144e565b61036761059e36600461328d565b611462565b5f80516020613bd7833981519152546001600160a01b031661031f565b6103db6105ce3660046131b4565b61147c565b6105e66105e1366004613183565b6114c9565b604080516001600160a01b03909316835260ff9091166020830152016102b2565b6103ba5f80516020613b5783398151915281565b6103db61062936600461340e565b611583565b6103ba5f80516020613bb783398151915281565b6103db6106503660046133a4565b6115d1565b5f610662335b5f366115da565b82601761066f82826116d8565b846106826001546001600160a01b031690565b6001600160a01b031663b303aaf882336040518363ffffffff1660e01b81526004016106af929190613441565b602060405180830381865afa1580156106ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ee919061346e565b6107125760405163086391f760e31b81523360048201526024015b60405180910390fd5b61071c868661180c565b9695505050505050565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610784573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a89190613489565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d91906134b6565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016108c5610f99565b6001600160a01b031681526020018260010180546108e2906134d1565b80601f016020809104026020016040519081016040528092919081815260200182805461090e906134d1565b80156109595780601f1061093057610100808354040283529160200191610959565b820191905f5260205f20905b81548152906001019060200180831161093c57829003601f168201915b505050505081525091505090565b5f610970610cee565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a89190613514565b5f6107a830611898565b60606109e36110ff565b51919050565b5f6109f33361065b565b6109fb610f99565b6001600160a01b0316336001600160a01b031614610a2e5760405163086391f760e31b8152336004820152602401610709565b610a3f8a8a8a8a8a8a8a8a8a611ada565b9a9950505050505050505050565b5f610a573361065b565b610a5f610f99565b6001600160a01b0316336001600160a01b031614610a925760405163086391f760e31b8152336004820152602401610709565b610a9b82611b86565b90505b919050565b610aab610f99565b6001600160a01b0316336001600160a01b031614610ade5760405163086391f760e31b8152336004820152602401610709565b610ae781611c0a565b50565b5f610af3610cee565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ab573d5f803e3d5ffd5b5f610b416001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba991906134b6565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610c00573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a8919061346e565b5f610c2d611433565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610c71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c95919061346e565b15905090565b610ca43361065b565b610cac610f99565b6001600160a01b0316336001600160a01b031614610cdf5760405163086391f760e31b8152336004820152602401610709565b610ce98282611c74565b505050565b5f610cf76110ff565b60200151905090565b5f610d09610b2e565b15610d8d576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015610d5d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d84919081019061359c565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b5f610dc03361065b565b610dc8610f99565b6001600160a01b0316336001600160a01b031614610dfb5760405163086391f760e31b8152336004820152602401610709565b610e06848484611df5565b90505b9392505050565b5f80516020613b37833981519152546001600160601b031690565b5f73__$05887d5853069c88bcd4c0a2107db45f29$__633f093cd6610e4e610e10565b846040518363ffffffff1660e01b8152600401610e6c92919061366c565b602060405180830381865af4158015610e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b919061368d565b5f610eb4611433565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a891906136a8565b33610f1c611433565b6001600160a01b0316816001600160a01b031614610f575760405162d1953b60e31b81526001600160a01b0382166004820152602401610709565b816001600160a01b03163b5f03610f8c576040516361798f2f60e11b81526001600160a01b0383166004820152602401610709565b610f9582611e8f565b5050565b5f805f80516020613b3783398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611005573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611029919061346e565b156110b4576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae9190613514565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020613b7783398151915280545f9190600160a01b900460ff166110f1575f6110ae565b638fb3603760e01b91505090565b60408051808201909152606081525f602082015261111b610b2e565b15611128576107a8611eef565b6107a8611417565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156111745750825b90505f826001600160401b0316600114801561118f5750303b155b90508115801561119d575080155b156111bb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156111e557845460ff60401b1916600160401b1785555b6111f28a8a8a8a8a6120c2565b831561123857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b5f61124e3361065b565b866112616001546001600160a01b031690565b6001600160a01b031663b303aaf882336040518363ffffffff1660e01b815260040161128e929190613441565b602060405180830381865afa1580156112a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cd919061346e565b6112ec5760405163086391f760e31b8152336004820152602401610709565b6112f78860176116d8565b6113058888888888886120d8565b98975050505050505050565b61131a3361065b565b611322610f99565b6001600160a01b0316336001600160a01b0316146113555760405163086391f760e31b8152336004820152602401610709565b82601761136282826116d8565b61136d85858561216f565b5050505050565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113df9190613514565b6001600160a01b0316336001600160a01b0316146114115760405162f0630960e01b8152336004820152602401610709565b50505050565b60408051808201909152606081525f60208201526107a8611eef565b5f80516020613b77833981519152546001600160a01b031690565b5f61145982826136c3565b90505b92915050565b5f6114718787878787876120d8565b979650505050505050565b6114853361065b565b61148d610f99565b6001600160a01b0316336001600160a01b0316146114c05760405163086391f760e31b8152336004820152602401610709565b610ae7816121ef565b5f805f6114d584610e2b565b90506115087fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60405163b82d7ef560e01b81526001600160c01b0319831660048201526001600160a01b03919091169063b82d7ef5906024016040805180830381865afa158015611555573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157991906136e6565b9250925050915091565b61158b610f99565b6001600160a01b0316336001600160a01b0316146115be5760405163086391f760e31b8152336004820152602401610709565b6115c73361065b565b610f958282612264565b610f953361065b565b5f80516020613b778339815191525f806116126115f5611433565b873061160460045f8a8c613713565b61160d9161373a565b6122cb565b91509150816116d05763ffffffff8116156116ad57825460ff60a01b1916600160a01b178355611640611433565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161166f93929190613772565b5f604051808303815f87803b158015611686575f80fd5b505af1158015611698573d5f803e3d5ffd5b5050845460ff60a01b19168555506116d09050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610709565b505050505050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015611728573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174c919061346e565b806117da57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa1580156117b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117d8919061346e565b155b15610f955760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610709565b5f5f80516020613bb7833981519152600101546040516303f38d3760e11b81526001600160601b038086166004830152841660248201526001600160a01b03909116906307e71a6e906044016020604051808303815f875af1158015611874573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145991906134b6565b5f805f80516020613b3783398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611904573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611928919061346e565b156119545780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610709565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156119a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ca919061346e565b6119f25760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610709565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611a44573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6891906134b6565b81546bffffffffffffffffffffffff19166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b5490611ab4610f99565b604051611ac2929190613441565b60405180910390a1546001600160601b031692915050565b5f80516020613b9783398151915254604051630ded2f7d60e11b81525f915f80516020613bb7833981519152916001600160a01b0390911690631bda5efa90611b37908e908e908e908e908e908e908e908e908e906004016137b1565b6020604051808303815f875af1158015611b53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b77919061368d565b9b9a5050505050505050505050565b5f5f80516020613bd7833981519152600301546040516301c6b21960e41b81526001600160601b03841660048201526001600160a01b0390911690631c6b2190906024016020604051808303815f875af1158015611be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b91906134b6565b5f80516020613b578339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015611c62575f80fd5b505af115801561136d573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e611ca6610cee565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015611cee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d129190613830565b6040518263ffffffff1660e01b8152600401611d3091815260200190565b602060405180830381865af4158015611d4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6f91906134b6565b90505f80516020613b57833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b158015611dd9575f80fd5b505af1158015611deb573d5f803e3d5ffd5b5050505092915050565b5f80516020613b9783398151915254604051632ee59dd760e11b81525f915f80516020613bb7833981519152916001600160a01b0390911690635dcb3bae90611e4690889088908890600401613847565b6020604051808303815f875af1158015611e62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8691906134b6565b95945050505050565b5f80516020613b7783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60408051808201909152606081525f60208201525f611f166001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f7e91906134b6565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ffb919061346e565b156120ba577fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031663f0ea17c3612038610e10565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015612079573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120a0919081019061387a565b60208101519092506001600160a01b0316156120ba575090565b6110ae6123d3565b6120ca61249d565b61136d8585855f86866124e8565b5f80516020613b978339815191525460405163987cb16160e01b81525f915f80516020613bb7833981519152916001600160a01b039091169063987cb1619061212f908b908b908b908b908b908b9060040161390e565b6020604051808303815f875af115801561214b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611305919061368d565b5f80516020613b978339815191525460405163ab3fc75f60e01b81525f80516020613bb7833981519152916001600160a01b03169063ab3fc75f906121bc90879087908790600401613976565b5f604051808303815f87803b1580156121d3575f80fd5b505af11580156121e5573d5f803e3d5ffd5b5050505050505050565b6121f7610f99565b6001600160a01b0316336001600160a01b03161461222a5760405163086391f760e31b8152336004820152602401610709565b612234600b612578565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df90602401611c4b565b5f80516020613bb78339815191525460405163feff0c9160e01b81526001600160a01b039091169063feff0c91906122a290859085906004016139a9565b5f604051808303815f87803b1580156122b9575f80fd5b505af11580156116d0573d5f803e3d5ffd5b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161233991906139f5565b5f60405180830381855afa9150503d805f8114612371576040519150601f19603f3d011682016040523d82523d5f602084013e612376565b606091505b509150915081156123c85760408151106123a8578080602001905181019061239e9190613a0b565b90945092506123c8565b60208151106123c857808060200190518101906123c5919061346e565b93505b505094509492505050565b60408051808201909152606081525f60208201525f5f80516020613b5783398151915290506040518060400160405280825f018054612411906134d1565b80601f016020809104026020016040519081016040528092919081815260200182805461243d906134d1565b80156124885780601f1061245f57610100808354040283529160200191612488565b820191905f5260205f20905b81548152906001019060200180831161246b57829003601f168201915b50505091835250505f60209091015292915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166124e657604051631afcd79f60e31b815260040160405180910390fd5b565b6124f061249d565b612500868683600e888888612609565b5f80516020613bb7833981519152612518600e612578565b6001820180546001600160a01b0319166001600160a01b0392909216919091179055612544600b612578565b81546001600160a01b0319166001600160a01b039190911617815561256f6303c09ad960e41b61281d565b50505050505050565b5f61258b6001546001600160a01b031690565b6001600160a01b031663d39e6043836125a2610eab565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156125e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190613514565b61261161249d565b5f61261d88888761284d565b90505f5f80516020613bd783398151915260405163bf8e179760e01b81526001600160601b03841660048201529091506001600160a01b038a169063bf8e179790602401602060405180830381865afa15801561267c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a09190613514565b81546001600160a01b0319166001600160a01b039190911690811782556040805163bf7e214f60e01b81529051612738929163bf7e214f9160048083019260209291908290030181865afa1580156126fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061271e9190613514565b8a8a8a8a898960405180602001604052805f8152506128c9565b8054604080516302cd307160e01b815290516001600160a01b03909216916302cd3071916004808201926020929091908290030181865afa15801561277f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127a39190613514565b6001820180546001600160a01b03199081166001600160a01b03938416179091556002830180549091169187169190911790556127e0600b612578565b6003820180546001600160a01b0319166001600160a01b039290921691909117905561281263a9c1bc6f60e01b61281d565b505050505050505050565b61282561249d565b610ae7816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f60ff8216600c0361286e576128658484600a61297d565b50829050610e09565b5f61287b8585600c61297d565b60405163677d3feb60e11b81526001600160601b03861660048201529091506001600160a01b0382169063cefa7fd690602401602060405180830381865afa158015611e62573d5f803e3d5ffd5b6128d161249d565b84515f036128f25760405163591eebf360e11b815260040160405180910390fd5b61290188888887878787612a42565b5f80516020613b578339815191528061291a8782613a7c565b5060018101805460ff1916851515179055612935600b612578565b8160010160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555061296d634a531f3360e01b61281d565b6128126306e9e5ff60e31b61281d565b6040516305247a1760e51b81526001600160601b038316600482015283905f906001600160a01b0383169063a48f42e0906024015f60405180830381865afa1580156129cb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129f2919081019061359c565b9050612a0981604001518460ff9081169116141590565b15612a3a57604080820151905163b0c1f6eb60e01b815260ff80861660048301529091166024820152604401610709565b509392505050565b612a4a61249d565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af4158015612aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac4919061346e565b612aec5760405163cf6935e560e01b81526001600160a01b0388166004820152602401610709565b612af587612b7f565b612aff8683612b90565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101612b6e8382613a7c565b506121e5634a531f3360e01b61281d565b612b8761249d565b610ae781612c06565b612b9861249d565b612ba0612c17565b612ba982612c5f565b6001600160a01b038116612bd05760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020613b3783398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b612c0e61249d565b610ae781611e8f565b612c1f61249d565b6124e66301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b612c6761249d565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af4158015612cbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ce1919061346e565b612d095760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610709565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f60208284031215612d3b575f80fd5b81356001600160e01b031981168114610e09575f80fd5b6001600160601b0381168114610ae7575f80fd5b5f8060408385031215612d77575f80fd5b8235612d8281612d52565b91506020830135612d9281612d52565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612e13608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612e57610100840182612d9d565b949350505050565b602081525f6114596020830184612d9d565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715612ea757612ea7612e71565b60405290565b60405160e081016001600160401b0381118282101715612ea757612ea7612e71565b604051601f8201601f191681016001600160401b0381118282101715612ef757612ef7612e71565b604052919050565b5f6001600160401b03821115612f1757612f17612e71565b50601f01601f191660200190565b5f82601f830112612f34575f80fd5b8135602083015f612f4c612f4784612eff565b612ecf565b9050828152858383011115612f5f575f80fd5b828260208301375f92810160200192909252509392505050565b6001600160a01b0381168114610ae7575f80fd5b8035610a9e81612f79565b63ffffffff81168114610ae7575f80fd5b8035610a9e81612f98565b64ffffffffff81168114610ae7575f80fd5b8035610a9e81612fb4565b8015158114610ae7575f80fd5b8035610a9e81612fd1565b5f805f805f805f805f6101208a8c031215613002575f80fd5b89356001600160401b03811115613017575f80fd5b6130238c828d01612f25565b99505060208a013561303481612f79565b975061304260408b01612f8d565b965061305060608b01612f8d565b955061305e60808b01612fa9565b945061306c60a08b01612fc6565b935061307a60c08b01612fde565b925061308860e08b01612fde565b91506101008a01356001600160401b038111156130a3575f80fd5b6130af8c828d01612f25565b9150509295985092959850929598565b5f602082840312156130cf575f80fd5b8135610e0981612d52565b5f602082840312156130ea575f80fd5b8135610e0981612fd1565b5f8060408385031215613106575f80fd5b8235612d8281612f79565b6001600160c01b031981168114610ae7575f80fd5b5f805f60608486031215613138575f80fd5b833561314381612f79565b9250602084013561315381613111565b915060408401356001600160401b0381111561316d575f80fd5b61317986828701612f25565b9150509250925092565b5f60208284031215613193575f80fd5b81356001600160401b038111156131a8575f80fd5b612e5784828501612f25565b5f602082840312156131c4575f80fd5b8135610e0981612f79565b602081525f8251604060208401526131ea6060840182612d9d565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f805f60a0868803121561321f575f80fd5b853561322a81612f79565b9450602086013561323a81612d52565b9350604086013561324a81612f79565b9250606086013561325a81612f79565b915060808601356001600160401b03811115613274575f80fd5b61328088828901612f25565b9150509295509295909350565b5f805f805f8060c087890312156132a2575f80fd5b86356132ad81612d52565b955060208701356001600160401b038111156132c7575f80fd5b6132d389828a01612f25565b95505060408701356132e481612f79565b935060608701356132f481612f98565b9250608087013561330481612fb4565b915060a08701356001600160401b0381111561331e575f80fd5b61332a89828a01612f25565b9150509295509295509295565b5f805f60608486031215613349575f80fd5b833561314381612d52565b5f805f8060808587031215613367575f80fd5b843561337281612f79565b9350602085013561338281612f79565b925060408501359150606085013561339981612f79565b939692955090935050565b5f80604083850312156133b5575f80fd5b82356133c081613111565b946020939093013593505050565b5f604082840312156133de575f80fd5b6133e6612e85565b905081356133f381612f79565b8152602082013561340381612d52565b602082015292915050565b5f806080838503121561341f575f80fd5b61342984846133ce565b915061343884604085016133ce565b90509250929050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b8051610a9e81612fd1565b5f6020828403121561347e575f80fd5b8151610e0981612fd1565b5f60208284031215613499575f80fd5b815162ffffff81168114610e09575f80fd5b8051610a9e81612d52565b5f602082840312156134c6575f80fd5b8151610e0981612d52565b600181811c908216806134e557607f821691505b60208210810361350357634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610a9e81612f79565b5f60208284031215613524575f80fd5b8151610e0981612f79565b60ff81168114610ae7575f80fd5b8051610a9e8161352f565b5f613555612f4784612eff565b9050828152838383011115613568575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261358d575f80fd5b61145983835160208501613548565b5f602082840312156135ac575f80fd5b81516001600160401b038111156135c1575f80fd5b820160e081850312156135d2575f80fd5b6135da612ead565b6135e3826134ab565b81526135f1602083016134ab565b60208201526136026040830161353d565b604082015261361360608301613463565b606082015261362460808301613509565b608082015261363560a08301613509565b60a082015260c08201516001600160401b03811115613652575f80fd5b61365e8682850161357e565b60c083015250949350505050565b6001600160601b0383168152604060208201525f610e066040830184612d9d565b5f6020828403121561369d575f80fd5b8151610e0981613111565b5f602082840312156136b8575f80fd5b8151610e098161352f565b808202811582820484141761145c57634e487b7160e01b5f52601160045260245ffd5b5f80604083850312156136f7575f80fd5b825161370281612f79565b6020840151909250612d928161352f565b5f8085851115613721575f80fd5b8386111561372d575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561376b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b61012081525f6137c561012083018c612d9d565b6001600160a01b038b811660208501528a811660408501528916606084015263ffffffff8816608084015264ffffffffff871660a084015285151560c084015284151560e08401528281036101008401526138208185612d9d565b9c9b505050505050505050505050565b5f60208284031215613840575f80fd5b5051919050565b6001600160a01b03841681526001600160c01b0319831660208201526060604082018190525f90611e8690830184612d9d565b5f6020828403121561388a575f80fd5b81516001600160401b0381111561389f575f80fd5b8201604081850312156138b0575f80fd5b6138b8612e85565b81516001600160401b038111156138cd575f80fd5b8201601f810186136138dd575f80fd5b6138ec86825160208401613548565b825250602082015191506138ff82612f79565b60208101919091529392505050565b6001600160601b038716815260c060208201525f61392f60c0830188612d9d565b6001600160a01b038716604084015263ffffffff8616606084015264ffffffffff8516608084015282810360a08401526139698185612d9d565b9998505050505050505050565b6001600160601b03841681526001600160401b0360c01b83166020820152606060408201525f611e866060830184612d9d565b82516001600160a01b031681526020808401516001600160601b0316908201526080810182516001600160a01b0316604083015260208301516001600160601b03166060830152610e09565b5f82518060208501845e5f920191825250919050565b5f8060408385031215613a1c575f80fd5b8251613a2781612fd1565b6020840151909250612d9281612f98565b601f821115610ce957805f5260205f20601f840160051c81016020851015613a5d5750805b601f840160051c820191505b8181101561136d575f8155600101613a69565b81516001600160401b03811115613a9557613a95612e71565b613aa981613aa384546134d1565b84613a38565b6020601f821160018114613adb575f8315613ac45750848201515b5f19600385901b1c1916600184901b17845561136d565b5f84815260208120601f198516915b82811015613b0a5787850151825560209485019460019092019101613aea565b5084821015613b2757868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00aab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f901aab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900ffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00a2646970667358221220aacfe4fc84e689fa609e40fd9f96d951bbf9b47c10a36dd542451795c940c91b64736f6c634300081a0033",
1281
+ "linkReferences": {
1282
+ "contracts/shared/ContractLib.sol": {
1283
+ "ContractLib": [
1284
+ {
1285
+ "length": 20,
1286
+ "start": 2201
1287
+ },
1288
+ {
1289
+ "length": 20,
1290
+ "start": 2793
1291
+ },
1292
+ {
1293
+ "length": 20,
1294
+ "start": 14953
1295
+ },
1296
+ {
1297
+ "length": 20,
1298
+ "start": 15494
1299
+ }
1300
+ ]
1301
+ },
1302
+ "contracts/type/Amount.sol": {
1303
+ "AmountLib": [
1304
+ {
1305
+ "length": 20,
1306
+ "start": 11384
1307
+ }
1308
+ ]
1309
+ },
1310
+ "contracts/type/NftId.sol": {
1311
+ "NftIdLib": [
1312
+ {
1313
+ "length": 20,
1314
+ "start": 6165
1315
+ },
1316
+ {
1317
+ "length": 20,
1318
+ "start": 7113
1319
+ },
1320
+ {
1321
+ "length": 20,
1322
+ "start": 8142
1323
+ },
1324
+ {
1325
+ "length": 20,
1326
+ "start": 10445
1327
+ },
1328
+ {
1329
+ "length": 20,
1330
+ "start": 12192
1331
+ }
1332
+ ]
1333
+ },
1334
+ "contracts/type/ObjectType.sol": {
1335
+ "ObjectTypeLib": [
1336
+ {
1337
+ "length": 20,
1338
+ "start": 9969
1339
+ }
1340
+ ]
1341
+ },
1342
+ "contracts/type/Referral.sol": {
1343
+ "ReferralLib": [
1344
+ {
1345
+ "length": 20,
1346
+ "start": 7727
1347
+ }
1348
+ ]
1349
+ },
1350
+ "contracts/type/Version.sol": {
1351
+ "VersionLib": [
1352
+ {
1353
+ "length": 20,
1354
+ "start": 5965
1355
+ }
1356
+ ]
1357
+ }
1358
+ },
1359
+ "deployedLinkReferences": {
1360
+ "contracts/shared/ContractLib.sol": {
1361
+ "ContractLib": [
1362
+ {
1363
+ "length": 20,
1364
+ "start": 10856
1365
+ },
1366
+ {
1367
+ "length": 20,
1368
+ "start": 11397
1369
+ }
1370
+ ]
1371
+ },
1372
+ "contracts/type/Amount.sol": {
1373
+ "AmountLib": [
1374
+ {
1375
+ "length": 20,
1376
+ "start": 7287
1377
+ }
1378
+ ]
1379
+ },
1380
+ "contracts/type/NftId.sol": {
1381
+ "NftIdLib": [
1382
+ {
1383
+ "length": 20,
1384
+ "start": 2068
1385
+ },
1386
+ {
1387
+ "length": 20,
1388
+ "start": 3016
1389
+ },
1390
+ {
1391
+ "length": 20,
1392
+ "start": 4045
1393
+ },
1394
+ {
1395
+ "length": 20,
1396
+ "start": 6348
1397
+ },
1398
+ {
1399
+ "length": 20,
1400
+ "start": 8095
1401
+ }
1402
+ ]
1403
+ },
1404
+ "contracts/type/ObjectType.sol": {
1405
+ "ObjectTypeLib": [
1406
+ {
1407
+ "length": 20,
1408
+ "start": 5872
1409
+ }
1410
+ ]
1411
+ },
1412
+ "contracts/type/Referral.sol": {
1413
+ "ReferralLib": [
1414
+ {
1415
+ "length": 20,
1416
+ "start": 3630
1417
+ }
1418
+ ]
1419
+ },
1420
+ "contracts/type/Version.sol": {
1421
+ "VersionLib": [
1422
+ {
1423
+ "length": 20,
1424
+ "start": 1868
1425
+ }
1426
+ ]
1427
+ }
1428
+ }
1429
+ }