@etherisc/gif-next 0.0.2-b9e9dc3-713 → 0.0.2-bad23b9-926

Sign up to get free protection for your applications and to get access to all the features.
Files changed (583) hide show
  1. package/README.md +76 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -246
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +384 -155
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2918
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +742 -298
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +591 -241
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -76
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +233 -200
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +132 -166
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +521 -59
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +438 -200
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +828 -311
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -352
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +339 -134
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -167
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  177. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +97 -78
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +193 -180
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +126 -0
  278. package/contracts/instance/IInstance.sol +70 -16
  279. package/contracts/instance/IInstanceService.sol +72 -8
  280. package/contracts/instance/Instance.sol +158 -358
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +175 -65
  284. package/contracts/instance/InstanceService.sol +318 -58
  285. package/contracts/instance/InstanceServiceManager.sol +12 -24
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/base/Cloneable.sol +51 -0
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/base/ObjectManager.sol +82 -0
  291. package/contracts/instance/module/IAccess.sol +29 -21
  292. package/contracts/instance/module/IBundle.sol +8 -7
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +32 -0
  300. package/contracts/oracle/IOracleService.sol +65 -0
  301. package/contracts/oracle/Oracle.sol +145 -0
  302. package/contracts/oracle/OracleService.sol +277 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +99 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +15 -0
  330. package/contracts/registry/IRegistry.sol +79 -12
  331. package/contracts/registry/IRegistryService.sol +54 -20
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +397 -244
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +124 -298
  336. package/contracts/registry/RegistryServiceManager.sol +26 -32
  337. package/contracts/registry/ReleaseManager.sol +600 -0
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +315 -0
  340. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +277 -223
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  349. package/contracts/shared/ERC165.sol +15 -9
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +4 -6
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +18 -0
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +60 -89
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +26 -40
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +77 -0
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/type/NftIdSet.sol +62 -0
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +38 -4
  402. package/contracts/{types → type}/Timestamp.sol +23 -14
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +6 -2
  405. package/package.json +5 -5
  406. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  414. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  417. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  418. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  419. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  420. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  460. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  463. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  466. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  469. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  476. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  481. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  484. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  486. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  488. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  489. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  490. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  491. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  492. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  493. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  494. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  495. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  496. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  497. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  498. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  499. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  500. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  501. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  502. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  503. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  504. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  505. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  507. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  508. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  509. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  512. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  513. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  515. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  516. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  517. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  519. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  521. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  523. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  528. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  529. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  533. package/contracts/components/BaseComponent.sol +0 -86
  534. package/contracts/components/Distribution.sol +0 -166
  535. package/contracts/components/IBaseComponent.sol +0 -24
  536. package/contracts/components/IDistributionComponent.sol +0 -43
  537. package/contracts/components/IPoolComponent.sol +0 -62
  538. package/contracts/components/IProductComponent.sol +0 -35
  539. package/contracts/components/Pool.sol +0 -259
  540. package/contracts/components/Product.sol +0 -297
  541. package/contracts/experiment/cloning/Cloner.sol +0 -47
  542. package/contracts/experiment/errors/Require.sol +0 -38
  543. package/contracts/experiment/errors/Revert.sol +0 -44
  544. package/contracts/experiment/inheritance/A.sol +0 -53
  545. package/contracts/experiment/inheritance/B.sol +0 -28
  546. package/contracts/experiment/inheritance/C.sol +0 -34
  547. package/contracts/experiment/inheritance/IA.sol +0 -13
  548. package/contracts/experiment/inheritance/IB.sol +0 -10
  549. package/contracts/experiment/inheritance/IC.sol +0 -12
  550. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  551. package/contracts/experiment/statemachine/ISM.sol +0 -25
  552. package/contracts/experiment/statemachine/SM.sol +0 -57
  553. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  554. package/contracts/experiment/types/TypeA.sol +0 -47
  555. package/contracts/experiment/types/TypeB.sol +0 -29
  556. package/contracts/instance/AccessManagedSimple.sol +0 -114
  557. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  558. package/contracts/instance/InstanceAccessManager.sol +0 -288
  559. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  560. package/contracts/instance/base/IInstanceBase.sol +0 -23
  561. package/contracts/instance/base/IService.sol +0 -15
  562. package/contracts/instance/base/KeyValueStore.sol +0 -172
  563. package/contracts/instance/base/ServiceBase.sol +0 -44
  564. package/contracts/instance/module/ISetup.sol +0 -43
  565. package/contracts/instance/module/ITreasury.sol +0 -23
  566. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  567. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  568. package/contracts/instance/service/IDistributionService.sol +0 -12
  569. package/contracts/instance/service/IPoolService.sol +0 -37
  570. package/contracts/instance/service/IProductService.sol +0 -107
  571. package/contracts/shared/ContractDeployerLib.sol +0 -72
  572. package/contracts/test/TestFee.sol +0 -25
  573. package/contracts/test/TestRegisterable.sol +0 -18
  574. package/contracts/test/TestRoleId.sol +0 -14
  575. package/contracts/test/TestService.sol +0 -26
  576. package/contracts/test/TestToken.sol +0 -26
  577. package/contracts/test/TestVersion.sol +0 -44
  578. package/contracts/test/TestVersionable.sol +0 -17
  579. package/contracts/types/ChainId.sol +0 -38
  580. package/contracts/types/NftIdSet.sol +0 -60
  581. package/contracts/types/NumberId.sol +0 -52
  582. package/contracts/types/RoleId.sol +0 -82
  583. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,27 +3,6 @@
3
3
  "contractName": "Instance",
4
4
  "sourceName": "contracts/instance/Instance.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "accessManagerAddress",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "address",
15
- "name": "registryAddress",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "NftId",
20
- "name": "registryNftId",
21
- "type": "uint96"
22
- }
23
- ],
24
- "stateMutability": "nonpayable",
25
- "type": "constructor"
26
- },
27
6
  {
28
7
  "inputs": [
29
8
  {
@@ -66,233 +45,142 @@
66
45
  "inputs": [
67
46
  {
68
47
  "internalType": "address",
69
- "name": "registry",
48
+ "name": "instanceBundleManager",
70
49
  "type": "address"
71
- },
72
- {
73
- "internalType": "NftId",
74
- "name": "nftId",
75
- "type": "uint96"
76
50
  }
77
51
  ],
78
- "name": "ErrorAlreadyLinked",
52
+ "name": "ErrorInstanceBundleManagerAlreadySet",
79
53
  "type": "error"
80
54
  },
81
55
  {
82
56
  "inputs": [
83
57
  {
84
58
  "internalType": "address",
85
- "name": "contractAddress",
59
+ "name": "instanceAuthority",
86
60
  "type": "address"
87
61
  }
88
62
  ],
89
- "name": "ErrorContractNotRegistered",
90
- "type": "error"
91
- },
92
- {
93
- "inputs": [
94
- {
95
- "internalType": "RoleId",
96
- "name": "roleId",
97
- "type": "uint64"
98
- }
99
- ],
100
- "name": "ErrorGrantNonexstentRole",
101
- "type": "error"
102
- },
103
- {
104
- "inputs": [
105
- {
106
- "internalType": "ObjectType",
107
- "name": "objectType",
108
- "type": "uint8"
109
- },
110
- {
111
- "internalType": "StateId",
112
- "name": "fromStateId",
113
- "type": "uint8"
114
- },
115
- {
116
- "internalType": "StateId",
117
- "name": "toStateId",
118
- "type": "uint8"
119
- }
120
- ],
121
- "name": "ErrorInvalidStateTransition",
122
- "type": "error"
123
- },
124
- {
125
- "inputs": [
126
- {
127
- "internalType": "NftId",
128
- "name": "nftId",
129
- "type": "uint96"
130
- },
131
- {
132
- "internalType": "ObjectType",
133
- "name": "objectType",
134
- "type": "uint8"
135
- }
136
- ],
137
- "name": "ErrorNoLifecycle",
63
+ "name": "ErrorInstanceBundleManagerAuthorityMismatch",
138
64
  "type": "error"
139
65
  },
140
66
  {
141
67
  "inputs": [
142
68
  {
143
69
  "internalType": "address",
144
- "name": "account",
70
+ "name": "instance",
145
71
  "type": "address"
146
72
  }
147
73
  ],
148
- "name": "ErrorNotOwner",
74
+ "name": "ErrorInstanceBundleManagerInstanceMismatch",
149
75
  "type": "error"
150
76
  },
151
77
  {
152
78
  "inputs": [
153
79
  {
154
80
  "internalType": "address",
155
- "name": "registryAddress",
81
+ "name": "InstanceAdmin",
156
82
  "type": "address"
157
83
  }
158
84
  ],
159
- "name": "ErrorNotRegistry",
85
+ "name": "ErrorInstanceInstanceAdminAlreadySet",
160
86
  "type": "error"
161
87
  },
162
88
  {
163
89
  "inputs": [
164
90
  {
165
91
  "internalType": "address",
166
- "name": "registryAddress",
92
+ "name": "instanceAuthority",
167
93
  "type": "address"
168
94
  }
169
95
  ],
170
- "name": "ErrorRegisterableNotRegistry",
96
+ "name": "ErrorInstanceInstanceAdminAuthorityMismatch",
171
97
  "type": "error"
172
98
  },
173
99
  {
174
100
  "inputs": [],
175
- "name": "ErrorRegistryAddressZero",
101
+ "name": "ErrorInstanceInstanceAdminZero",
176
102
  "type": "error"
177
103
  },
178
104
  {
179
105
  "inputs": [
180
106
  {
181
107
  "internalType": "address",
182
- "name": "registry",
108
+ "name": "instanceAuthority",
183
109
  "type": "address"
184
110
  }
185
111
  ],
186
- "name": "ErrorRegistryAlreadyInitialized",
187
- "type": "error"
188
- },
189
- {
190
- "inputs": [],
191
- "name": "ErrorRegistryNotInitialized",
192
- "type": "error"
193
- },
194
- {
195
- "inputs": [
196
- {
197
- "internalType": "RoleId",
198
- "name": "roleId",
199
- "type": "uint64"
200
- }
201
- ],
202
- "name": "ErrorRenounceNonexstentRole",
203
- "type": "error"
204
- },
205
- {
206
- "inputs": [
207
- {
208
- "internalType": "RoleId",
209
- "name": "roleId",
210
- "type": "uint64"
211
- }
212
- ],
213
- "name": "ErrorRevokeNonexstentRole",
112
+ "name": "ErrorInstanceInstanceReaderInstanceMismatch",
214
113
  "type": "error"
215
114
  },
216
115
  {
217
116
  "inputs": [
218
117
  {
219
- "internalType": "RoleId",
220
- "name": "roleId",
221
- "type": "uint64"
118
+ "internalType": "address",
119
+ "name": "instanceStore",
120
+ "type": "address"
222
121
  }
223
122
  ],
224
- "name": "ErrorRoleIdInvalid",
123
+ "name": "ErrorInstanceInstanceStoreAlreadySet",
225
124
  "type": "error"
226
125
  },
227
126
  {
228
127
  "inputs": [
229
128
  {
230
- "internalType": "RoleId",
231
- "name": "roleId",
232
- "type": "uint64"
129
+ "internalType": "address",
130
+ "name": "instanceAuthority",
131
+ "type": "address"
233
132
  }
234
133
  ],
235
- "name": "ErrorRoleIdNotActive",
134
+ "name": "ErrorInstanceInstanceStoreAuthorityMismatch",
236
135
  "type": "error"
237
136
  },
238
137
  {
239
138
  "inputs": [
240
139
  {
241
- "internalType": "RoleId",
242
- "name": "roleId",
243
- "type": "uint64"
140
+ "internalType": "NftId",
141
+ "name": "nftId",
142
+ "type": "uint96"
244
143
  }
245
144
  ],
246
- "name": "ErrorRoleIdTooBig",
145
+ "name": "ErrorNftOwnableAlreadyLinked",
247
146
  "type": "error"
248
147
  },
249
148
  {
250
149
  "inputs": [
251
150
  {
252
- "internalType": "RoleId",
253
- "name": "roleId",
254
- "type": "uint64"
151
+ "internalType": "address",
152
+ "name": "contractAddress",
153
+ "type": "address"
255
154
  }
256
155
  ],
257
- "name": "ErrorRoleIdTooSmall",
156
+ "name": "ErrorNftOwnableContractNotRegistered",
258
157
  "type": "error"
259
158
  },
260
159
  {
261
- "inputs": [
262
- {
263
- "internalType": "RoleId",
264
- "name": "roleId",
265
- "type": "uint64"
266
- }
267
- ],
268
- "name": "ErrorRoleNameEmpty",
160
+ "inputs": [],
161
+ "name": "ErrorNftOwnableInitialOwnerZero",
269
162
  "type": "error"
270
163
  },
271
164
  {
272
165
  "inputs": [
273
166
  {
274
- "internalType": "RoleId",
275
- "name": "roleId",
276
- "type": "uint64"
277
- },
278
- {
279
- "internalType": "ShortString",
280
- "name": "name",
281
- "type": "bytes32"
167
+ "internalType": "address",
168
+ "name": "account",
169
+ "type": "address"
282
170
  }
283
171
  ],
284
- "name": "ErrorRoleNameNotUnique",
172
+ "name": "ErrorNftOwnableNotOwner",
285
173
  "type": "error"
286
174
  },
287
175
  {
288
176
  "inputs": [
289
177
  {
290
178
  "internalType": "address",
291
- "name": "target",
179
+ "name": "registryAddress",
292
180
  "type": "address"
293
181
  }
294
182
  ],
295
- "name": "ErrorTargetDoesNotExist",
183
+ "name": "ErrorNotRegistry",
296
184
  "type": "error"
297
185
  },
298
186
  {
@@ -300,27 +188,11 @@
300
188
  "name": "InvalidInitialization",
301
189
  "type": "error"
302
190
  },
303
- {
304
- "inputs": [],
305
- "name": "InvalidShortString",
306
- "type": "error"
307
- },
308
191
  {
309
192
  "inputs": [],
310
193
  "name": "NotInitializing",
311
194
  "type": "error"
312
195
  },
313
- {
314
- "inputs": [
315
- {
316
- "internalType": "string",
317
- "name": "str",
318
- "type": "string"
319
- }
320
- ],
321
- "name": "StringTooLong",
322
- "type": "error"
323
- },
324
196
  {
325
197
  "anonymous": false,
326
198
  "inputs": [
@@ -348,142 +220,201 @@
348
220
  "type": "event"
349
221
  },
350
222
  {
351
- "anonymous": false,
352
- "inputs": [
353
- {
354
- "indexed": false,
355
- "internalType": "ObjectType",
356
- "name": "objectType",
357
- "type": "uint8"
358
- },
223
+ "inputs": [],
224
+ "name": "GIF_MAJOR_VERSION",
225
+ "outputs": [
359
226
  {
360
- "indexed": false,
361
- "internalType": "KeyId",
362
- "name": "keyId",
363
- "type": "bytes31"
364
- },
227
+ "internalType": "uint256",
228
+ "name": "",
229
+ "type": "uint256"
230
+ }
231
+ ],
232
+ "stateMutability": "view",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [],
237
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
238
+ "outputs": [
365
239
  {
366
- "indexed": false,
367
- "internalType": "StateId",
368
- "name": "state",
369
- "type": "uint8"
370
- },
240
+ "internalType": "bytes32",
241
+ "name": "",
242
+ "type": "bytes32"
243
+ }
244
+ ],
245
+ "stateMutability": "view",
246
+ "type": "function"
247
+ },
248
+ {
249
+ "inputs": [],
250
+ "name": "REGISTERABLE_LOCATION_V1",
251
+ "outputs": [
371
252
  {
372
- "indexed": false,
373
- "internalType": "address",
374
- "name": "createdBy",
375
- "type": "address"
376
- },
253
+ "internalType": "bytes32",
254
+ "name": "",
255
+ "type": "bytes32"
256
+ }
257
+ ],
258
+ "stateMutability": "view",
259
+ "type": "function"
260
+ },
261
+ {
262
+ "inputs": [],
263
+ "name": "authority",
264
+ "outputs": [
377
265
  {
378
- "indexed": false,
379
266
  "internalType": "address",
380
- "name": "txOrigin",
267
+ "name": "",
381
268
  "type": "address"
382
269
  }
383
270
  ],
384
- "name": "LogInfoCreated",
385
- "type": "event"
271
+ "stateMutability": "view",
272
+ "type": "function"
386
273
  },
387
274
  {
388
- "anonymous": false,
389
275
  "inputs": [
390
276
  {
391
- "indexed": false,
392
- "internalType": "ObjectType",
393
- "name": "objectType",
394
- "type": "uint8"
277
+ "internalType": "string",
278
+ "name": "roleName",
279
+ "type": "string"
395
280
  },
396
281
  {
397
- "indexed": false,
398
- "internalType": "KeyId",
399
- "name": "keyId",
400
- "type": "bytes31"
401
- },
282
+ "internalType": "string",
283
+ "name": "adminName",
284
+ "type": "string"
285
+ }
286
+ ],
287
+ "name": "createRole",
288
+ "outputs": [
402
289
  {
403
- "indexed": false,
404
- "internalType": "StateId",
405
- "name": "state",
406
- "type": "uint8"
290
+ "internalType": "RoleId",
291
+ "name": "roleId",
292
+ "type": "uint64"
407
293
  },
408
294
  {
409
- "indexed": false,
410
- "internalType": "address",
411
- "name": "updatedBy",
412
- "type": "address"
413
- },
295
+ "internalType": "RoleId",
296
+ "name": "admin",
297
+ "type": "uint64"
298
+ }
299
+ ],
300
+ "stateMutability": "nonpayable",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
414
305
  {
415
- "indexed": false,
416
306
  "internalType": "address",
417
- "name": "txOrigin",
307
+ "name": "target",
418
308
  "type": "address"
419
309
  },
420
310
  {
421
- "indexed": false,
422
- "internalType": "Blocknumber",
423
- "name": "lastUpdatedIn",
424
- "type": "uint32"
311
+ "internalType": "string",
312
+ "name": "name",
313
+ "type": "string"
425
314
  }
426
315
  ],
427
- "name": "LogInfoUpdated",
428
- "type": "event"
316
+ "name": "createTarget",
317
+ "outputs": [],
318
+ "stateMutability": "nonpayable",
319
+ "type": "function"
429
320
  },
430
321
  {
431
- "anonymous": false,
432
- "inputs": [
322
+ "inputs": [],
323
+ "name": "getBundleManager",
324
+ "outputs": [
433
325
  {
434
- "indexed": false,
435
- "internalType": "ObjectType",
436
- "name": "objectType",
437
- "type": "uint8"
438
- },
439
- {
440
- "indexed": false,
441
- "internalType": "KeyId",
442
- "name": "keyId",
443
- "type": "bytes31"
444
- },
445
- {
446
- "indexed": false,
447
- "internalType": "StateId",
448
- "name": "stateOld",
449
- "type": "uint8"
450
- },
451
- {
452
- "indexed": false,
453
- "internalType": "StateId",
454
- "name": "stateNew",
455
- "type": "uint8"
456
- },
326
+ "internalType": "contract BundleManager",
327
+ "name": "",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "stateMutability": "view",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [],
336
+ "name": "getBundleService",
337
+ "outputs": [
457
338
  {
458
- "indexed": false,
459
- "internalType": "address",
460
- "name": "updatedBy",
339
+ "internalType": "contract IBundleService",
340
+ "name": "",
461
341
  "type": "address"
462
- },
342
+ }
343
+ ],
344
+ "stateMutability": "view",
345
+ "type": "function"
346
+ },
347
+ {
348
+ "inputs": [],
349
+ "name": "getDistributionService",
350
+ "outputs": [
463
351
  {
464
- "indexed": false,
465
- "internalType": "address",
466
- "name": "txOrigin",
352
+ "internalType": "contract IDistributionService",
353
+ "name": "",
467
354
  "type": "address"
468
- },
355
+ }
356
+ ],
357
+ "stateMutability": "view",
358
+ "type": "function"
359
+ },
360
+ {
361
+ "inputs": [],
362
+ "name": "getInitialInfo",
363
+ "outputs": [
469
364
  {
470
- "indexed": false,
471
- "internalType": "Blocknumber",
472
- "name": "lastUpdatedIn",
473
- "type": "uint32"
365
+ "components": [
366
+ {
367
+ "internalType": "NftId",
368
+ "name": "nftId",
369
+ "type": "uint96"
370
+ },
371
+ {
372
+ "internalType": "NftId",
373
+ "name": "parentNftId",
374
+ "type": "uint96"
375
+ },
376
+ {
377
+ "internalType": "ObjectType",
378
+ "name": "objectType",
379
+ "type": "uint8"
380
+ },
381
+ {
382
+ "internalType": "bool",
383
+ "name": "isInterceptor",
384
+ "type": "bool"
385
+ },
386
+ {
387
+ "internalType": "address",
388
+ "name": "objectAddress",
389
+ "type": "address"
390
+ },
391
+ {
392
+ "internalType": "address",
393
+ "name": "initialOwner",
394
+ "type": "address"
395
+ },
396
+ {
397
+ "internalType": "bytes",
398
+ "name": "data",
399
+ "type": "bytes"
400
+ }
401
+ ],
402
+ "internalType": "struct IRegistry.ObjectInfo",
403
+ "name": "info",
404
+ "type": "tuple"
474
405
  }
475
406
  ],
476
- "name": "LogStateUpdated",
477
- "type": "event"
407
+ "stateMutability": "view",
408
+ "type": "function"
478
409
  },
479
410
  {
480
411
  "inputs": [],
481
- "name": "ADMIN_ROLE",
412
+ "name": "getInstanceAccessManager",
482
413
  "outputs": [
483
414
  {
484
- "internalType": "uint64",
415
+ "internalType": "contract AccessManagerExtendedInitializeable",
485
416
  "name": "",
486
- "type": "uint64"
417
+ "type": "address"
487
418
  }
488
419
  ],
489
420
  "stateMutability": "view",
@@ -491,12 +422,12 @@
491
422
  },
492
423
  {
493
424
  "inputs": [],
494
- "name": "CUSTOM_ROLE_ID_MIN",
425
+ "name": "getInstanceAdmin",
495
426
  "outputs": [
496
427
  {
497
- "internalType": "uint64",
428
+ "internalType": "contract InstanceAdmin",
498
429
  "name": "",
499
- "type": "uint64"
430
+ "type": "address"
500
431
  }
501
432
  ],
502
433
  "stateMutability": "view",
@@ -504,12 +435,12 @@
504
435
  },
505
436
  {
506
437
  "inputs": [],
507
- "name": "EXECUTION_DELAY",
438
+ "name": "getInstanceReader",
508
439
  "outputs": [
509
440
  {
510
- "internalType": "uint32",
441
+ "internalType": "contract InstanceReader",
511
442
  "name": "",
512
- "type": "uint32"
443
+ "type": "address"
513
444
  }
514
445
  ],
515
446
  "stateMutability": "view",
@@ -517,12 +448,12 @@
517
448
  },
518
449
  {
519
450
  "inputs": [],
520
- "name": "PUBLIC_ROLE",
451
+ "name": "getInstanceStore",
521
452
  "outputs": [
522
453
  {
523
- "internalType": "uint64",
454
+ "internalType": "contract InstanceStore",
524
455
  "name": "",
525
- "type": "uint64"
456
+ "type": "address"
526
457
  }
527
458
  ],
528
459
  "stateMutability": "view",
@@ -530,12 +461,25 @@
530
461
  },
531
462
  {
532
463
  "inputs": [],
533
- "name": "REGISTERABLE_LOCATION_V1",
464
+ "name": "getMajorVersion",
534
465
  "outputs": [
535
466
  {
536
- "internalType": "bytes32",
467
+ "internalType": "VersionPart",
468
+ "name": "majorVersion",
469
+ "type": "uint8"
470
+ }
471
+ ],
472
+ "stateMutability": "pure",
473
+ "type": "function"
474
+ },
475
+ {
476
+ "inputs": [],
477
+ "name": "getNftId",
478
+ "outputs": [
479
+ {
480
+ "internalType": "NftId",
537
481
  "name": "",
538
- "type": "bytes32"
482
+ "type": "uint96"
539
483
  }
540
484
  ],
541
485
  "stateMutability": "view",
@@ -543,7 +487,7 @@
543
487
  },
544
488
  {
545
489
  "inputs": [],
546
- "name": "authority",
490
+ "name": "getOwner",
547
491
  "outputs": [
548
492
  {
549
493
  "internalType": "address",
@@ -555,96 +499,71 @@
555
499
  "type": "function"
556
500
  },
557
501
  {
558
- "inputs": [
502
+ "inputs": [],
503
+ "name": "getPolicyService",
504
+ "outputs": [
559
505
  {
560
- "internalType": "ObjectType",
561
- "name": "objectType",
562
- "type": "uint8"
563
- },
506
+ "internalType": "contract IPolicyService",
507
+ "name": "",
508
+ "type": "address"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [],
516
+ "name": "getPoolService",
517
+ "outputs": [
564
518
  {
565
- "internalType": "StateId",
566
- "name": "fromId",
567
- "type": "uint8"
568
- },
519
+ "internalType": "contract IPoolService",
520
+ "name": "",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [],
529
+ "name": "getProductService",
530
+ "outputs": [
569
531
  {
570
- "internalType": "StateId",
571
- "name": "toId",
572
- "type": "uint8"
532
+ "internalType": "contract IProductService",
533
+ "name": "",
534
+ "type": "address"
535
+ }
536
+ ],
537
+ "stateMutability": "view",
538
+ "type": "function"
539
+ },
540
+ {
541
+ "inputs": [],
542
+ "name": "getRegistry",
543
+ "outputs": [
544
+ {
545
+ "internalType": "contract IRegistry",
546
+ "name": "",
547
+ "type": "address"
573
548
  }
574
549
  ],
575
- "name": "checkTransition",
576
- "outputs": [],
577
550
  "stateMutability": "view",
578
551
  "type": "function"
579
552
  },
580
553
  {
581
554
  "inputs": [
582
555
  {
583
- "internalType": "NftId",
584
- "name": "bundleNftId",
585
- "type": "uint96"
556
+ "internalType": "RoleId",
557
+ "name": "roleId",
558
+ "type": "uint64"
586
559
  },
587
560
  {
588
- "components": [
589
- {
590
- "internalType": "NftId",
591
- "name": "poolNftId",
592
- "type": "uint96"
593
- },
594
- {
595
- "components": [
596
- {
597
- "internalType": "UFixed",
598
- "name": "fractionalFee",
599
- "type": "uint256"
600
- },
601
- {
602
- "internalType": "uint256",
603
- "name": "fixedFee",
604
- "type": "uint256"
605
- }
606
- ],
607
- "internalType": "struct Fee",
608
- "name": "fee",
609
- "type": "tuple"
610
- },
611
- {
612
- "internalType": "bytes",
613
- "name": "filter",
614
- "type": "bytes"
615
- },
616
- {
617
- "internalType": "uint256",
618
- "name": "capitalAmount",
619
- "type": "uint256"
620
- },
621
- {
622
- "internalType": "uint256",
623
- "name": "lockedAmount",
624
- "type": "uint256"
625
- },
626
- {
627
- "internalType": "uint256",
628
- "name": "balanceAmount",
629
- "type": "uint256"
630
- },
631
- {
632
- "internalType": "Timestamp",
633
- "name": "expiredAt",
634
- "type": "uint40"
635
- },
636
- {
637
- "internalType": "Timestamp",
638
- "name": "closedAt",
639
- "type": "uint40"
640
- }
641
- ],
642
- "internalType": "struct IBundle.BundleInfo",
643
- "name": "bundle",
644
- "type": "tuple"
561
+ "internalType": "address",
562
+ "name": "account",
563
+ "type": "address"
645
564
  }
646
565
  ],
647
- "name": "createBundle",
566
+ "name": "grantRole",
648
567
  "outputs": [],
649
568
  "stateMutability": "nonpayable",
650
569
  "type": "function"
@@ -652,44 +571,29 @@
652
571
  {
653
572
  "inputs": [
654
573
  {
655
- "internalType": "NftId",
656
- "name": "policyNftId",
657
- "type": "uint96"
574
+ "internalType": "address",
575
+ "name": "authority",
576
+ "type": "address"
658
577
  },
659
578
  {
660
- "internalType": "NumberId",
661
- "name": "claimId",
662
- "type": "uint32"
579
+ "internalType": "address",
580
+ "name": "registryAddress",
581
+ "type": "address"
663
582
  },
664
583
  {
665
- "components": [
666
- {
667
- "internalType": "uint256",
668
- "name": "claimAmount",
669
- "type": "uint256"
670
- },
671
- {
672
- "internalType": "uint256",
673
- "name": "paidAmount",
674
- "type": "uint256"
675
- },
676
- {
677
- "internalType": "bytes",
678
- "name": "data",
679
- "type": "bytes"
680
- },
681
- {
682
- "internalType": "Timestamp",
683
- "name": "closedAt",
684
- "type": "uint40"
685
- }
686
- ],
687
- "internalType": "struct IPolicy.ClaimInfo",
688
- "name": "claim",
689
- "type": "tuple"
584
+ "internalType": "address",
585
+ "name": "initialOwner",
586
+ "type": "address"
690
587
  }
691
588
  ],
692
- "name": "createClaim",
589
+ "name": "initialize",
590
+ "outputs": [],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "initializeERC165",
693
597
  "outputs": [],
694
598
  "stateMutability": "nonpayable",
695
599
  "type": "function"
@@ -697,1785 +601,55 @@
697
601
  {
698
602
  "inputs": [
699
603
  {
700
- "internalType": "RoleId",
701
- "name": "roleId",
702
- "type": "uint64"
604
+ "internalType": "address",
605
+ "name": "initialOwner",
606
+ "type": "address"
703
607
  },
704
608
  {
705
- "internalType": "string",
706
- "name": "name",
707
- "type": "string"
609
+ "internalType": "address",
610
+ "name": "registryAddress",
611
+ "type": "address"
708
612
  }
709
613
  ],
710
- "name": "createCustomRole",
614
+ "name": "initializeNftOwnable",
711
615
  "outputs": [],
712
616
  "stateMutability": "nonpayable",
713
617
  "type": "function"
714
618
  },
715
619
  {
716
620
  "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "registryAddress",
624
+ "type": "address"
625
+ },
717
626
  {
718
627
  "internalType": "NftId",
719
- "name": "distributionNftId",
628
+ "name": "parentNftId",
720
629
  "type": "uint96"
721
630
  },
722
631
  {
723
- "components": [
724
- {
725
- "internalType": "NftId",
726
- "name": "productNftId",
727
- "type": "uint96"
728
- },
729
- {
730
- "internalType": "contract TokenHandler",
731
- "name": "tokenHandler",
732
- "type": "address"
733
- },
734
- {
735
- "components": [
736
- {
737
- "internalType": "UFixed",
738
- "name": "fractionalFee",
739
- "type": "uint256"
740
- },
741
- {
742
- "internalType": "uint256",
743
- "name": "fixedFee",
744
- "type": "uint256"
745
- }
746
- ],
747
- "internalType": "struct Fee",
748
- "name": "distributionFee",
749
- "type": "tuple"
750
- },
751
- {
752
- "internalType": "bool",
753
- "name": "isIntercepting",
754
- "type": "bool"
755
- },
756
- {
757
- "internalType": "address",
758
- "name": "wallet",
759
- "type": "address"
760
- }
761
- ],
762
- "internalType": "struct ISetup.DistributionSetupInfo",
763
- "name": "setup",
764
- "type": "tuple"
765
- }
766
- ],
767
- "name": "createDistributionSetup",
768
- "outputs": [],
769
- "stateMutability": "nonpayable",
770
- "type": "function"
771
- },
772
- {
773
- "inputs": [
774
- {
775
- "internalType": "NftId",
776
- "name": "policyNftId",
777
- "type": "uint96"
778
- },
779
- {
780
- "internalType": "NumberId",
781
- "name": "payoutId",
782
- "type": "uint32"
783
- },
784
- {
785
- "components": [
786
- {
787
- "internalType": "NumberId",
788
- "name": "claimId",
789
- "type": "uint32"
790
- },
791
- {
792
- "internalType": "uint256",
793
- "name": "amount",
794
- "type": "uint256"
795
- },
796
- {
797
- "internalType": "bytes",
798
- "name": "data",
799
- "type": "bytes"
800
- },
801
- {
802
- "internalType": "Timestamp",
803
- "name": "paidAt",
804
- "type": "uint40"
805
- }
806
- ],
807
- "internalType": "struct IPolicy.PayoutInfo",
808
- "name": "payout",
809
- "type": "tuple"
810
- }
811
- ],
812
- "name": "createDistributor",
813
- "outputs": [],
814
- "stateMutability": "nonpayable",
815
- "type": "function"
816
- },
817
- {
818
- "inputs": [
819
- {
820
- "internalType": "NftId",
821
- "name": "policyNftId",
822
- "type": "uint96"
823
- },
824
- {
825
- "internalType": "NumberId",
826
- "name": "payoutId",
827
- "type": "uint32"
828
- },
829
- {
830
- "components": [
831
- {
832
- "internalType": "NumberId",
833
- "name": "claimId",
834
- "type": "uint32"
835
- },
836
- {
837
- "internalType": "uint256",
838
- "name": "amount",
839
- "type": "uint256"
840
- },
841
- {
842
- "internalType": "bytes",
843
- "name": "data",
844
- "type": "bytes"
845
- },
846
- {
847
- "internalType": "Timestamp",
848
- "name": "paidAt",
849
- "type": "uint40"
850
- }
851
- ],
852
- "internalType": "struct IPolicy.PayoutInfo",
853
- "name": "payout",
854
- "type": "tuple"
855
- }
856
- ],
857
- "name": "createDistributorType",
858
- "outputs": [],
859
- "stateMutability": "nonpayable",
860
- "type": "function"
861
- },
862
- {
863
- "inputs": [
864
- {
865
- "internalType": "NftId",
866
- "name": "policyNftId",
867
- "type": "uint96"
868
- },
869
- {
870
- "internalType": "NumberId",
871
- "name": "payoutId",
872
- "type": "uint32"
873
- },
874
- {
875
- "components": [
876
- {
877
- "internalType": "NumberId",
878
- "name": "claimId",
879
- "type": "uint32"
880
- },
881
- {
882
- "internalType": "uint256",
883
- "name": "amount",
884
- "type": "uint256"
885
- },
886
- {
887
- "internalType": "bytes",
888
- "name": "data",
889
- "type": "bytes"
890
- },
891
- {
892
- "internalType": "Timestamp",
893
- "name": "paidAt",
894
- "type": "uint40"
895
- }
896
- ],
897
- "internalType": "struct IPolicy.PayoutInfo",
898
- "name": "payout",
899
- "type": "tuple"
900
- }
901
- ],
902
- "name": "createPayout",
903
- "outputs": [],
904
- "stateMutability": "nonpayable",
905
- "type": "function"
906
- },
907
- {
908
- "inputs": [
909
- {
910
- "internalType": "NftId",
911
- "name": "policyNftId",
912
- "type": "uint96"
913
- },
914
- {
915
- "components": [
916
- {
917
- "internalType": "NftId",
918
- "name": "productNftId",
919
- "type": "uint96"
920
- },
921
- {
922
- "internalType": "NftId",
923
- "name": "bundleNftId",
924
- "type": "uint96"
925
- },
926
- {
927
- "internalType": "ReferralId",
928
- "name": "referralId",
929
- "type": "bytes8"
930
- },
931
- {
932
- "internalType": "RiskId",
933
- "name": "riskId",
934
- "type": "bytes8"
935
- },
936
- {
937
- "internalType": "uint256",
938
- "name": "sumInsuredAmount",
939
- "type": "uint256"
940
- },
941
- {
942
- "internalType": "uint256",
943
- "name": "premiumAmount",
944
- "type": "uint256"
945
- },
946
- {
947
- "internalType": "uint256",
948
- "name": "premiumPaidAmount",
949
- "type": "uint256"
950
- },
951
- {
952
- "internalType": "uint256",
953
- "name": "lifetime",
954
- "type": "uint256"
955
- },
956
- {
957
- "internalType": "bytes",
958
- "name": "applicationData",
959
- "type": "bytes"
960
- },
961
- {
962
- "internalType": "bytes",
963
- "name": "policyData",
964
- "type": "bytes"
965
- },
966
- {
967
- "internalType": "uint16",
968
- "name": "claimsCount",
969
- "type": "uint16"
970
- },
971
- {
972
- "internalType": "uint16",
973
- "name": "openClaimsCount",
974
- "type": "uint16"
975
- },
976
- {
977
- "internalType": "uint256",
978
- "name": "payoutAmount",
979
- "type": "uint256"
980
- },
981
- {
982
- "internalType": "Timestamp",
983
- "name": "activatedAt",
984
- "type": "uint40"
985
- },
986
- {
987
- "internalType": "Timestamp",
988
- "name": "expiredAt",
989
- "type": "uint40"
990
- },
991
- {
992
- "internalType": "Timestamp",
993
- "name": "closedAt",
994
- "type": "uint40"
995
- }
996
- ],
997
- "internalType": "struct IPolicy.PolicyInfo",
998
- "name": "policy",
999
- "type": "tuple"
1000
- }
1001
- ],
1002
- "name": "createPolicy",
1003
- "outputs": [],
1004
- "stateMutability": "nonpayable",
1005
- "type": "function"
1006
- },
1007
- {
1008
- "inputs": [
1009
- {
1010
- "internalType": "NftId",
1011
- "name": "distributionNftId",
1012
- "type": "uint96"
1013
- },
1014
- {
1015
- "components": [
1016
- {
1017
- "internalType": "NftId",
1018
- "name": "productNftId",
1019
- "type": "uint96"
1020
- },
1021
- {
1022
- "internalType": "contract TokenHandler",
1023
- "name": "tokenHandler",
1024
- "type": "address"
1025
- },
1026
- {
1027
- "internalType": "UFixed",
1028
- "name": "collateralizationLevel",
1029
- "type": "uint256"
1030
- },
1031
- {
1032
- "components": [
1033
- {
1034
- "internalType": "UFixed",
1035
- "name": "fractionalFee",
1036
- "type": "uint256"
1037
- },
1038
- {
1039
- "internalType": "uint256",
1040
- "name": "fixedFee",
1041
- "type": "uint256"
1042
- }
1043
- ],
1044
- "internalType": "struct Fee",
1045
- "name": "poolFee",
1046
- "type": "tuple"
1047
- },
1048
- {
1049
- "components": [
1050
- {
1051
- "internalType": "UFixed",
1052
- "name": "fractionalFee",
1053
- "type": "uint256"
1054
- },
1055
- {
1056
- "internalType": "uint256",
1057
- "name": "fixedFee",
1058
- "type": "uint256"
1059
- }
1060
- ],
1061
- "internalType": "struct Fee",
1062
- "name": "stakingFee",
1063
- "type": "tuple"
1064
- },
1065
- {
1066
- "components": [
1067
- {
1068
- "internalType": "UFixed",
1069
- "name": "fractionalFee",
1070
- "type": "uint256"
1071
- },
1072
- {
1073
- "internalType": "uint256",
1074
- "name": "fixedFee",
1075
- "type": "uint256"
1076
- }
1077
- ],
1078
- "internalType": "struct Fee",
1079
- "name": "performanceFee",
1080
- "type": "tuple"
1081
- },
1082
- {
1083
- "internalType": "bool",
1084
- "name": "isIntercepting",
1085
- "type": "bool"
1086
- },
1087
- {
1088
- "internalType": "address",
1089
- "name": "wallet",
1090
- "type": "address"
1091
- }
1092
- ],
1093
- "internalType": "struct ISetup.PoolSetupInfo",
1094
- "name": "setup",
1095
- "type": "tuple"
1096
- }
1097
- ],
1098
- "name": "createPoolSetup",
1099
- "outputs": [],
1100
- "stateMutability": "nonpayable",
1101
- "type": "function"
1102
- },
1103
- {
1104
- "inputs": [
1105
- {
1106
- "internalType": "NftId",
1107
- "name": "productNftId",
1108
- "type": "uint96"
1109
- },
1110
- {
1111
- "components": [
1112
- {
1113
- "internalType": "contract IERC20Metadata",
1114
- "name": "token",
1115
- "type": "address"
1116
- },
1117
- {
1118
- "internalType": "contract TokenHandler",
1119
- "name": "tokenHandler",
1120
- "type": "address"
1121
- },
1122
- {
1123
- "internalType": "NftId",
1124
- "name": "distributionNftId",
1125
- "type": "uint96"
1126
- },
1127
- {
1128
- "internalType": "NftId",
1129
- "name": "poolNftId",
1130
- "type": "uint96"
1131
- },
1132
- {
1133
- "components": [
1134
- {
1135
- "internalType": "UFixed",
1136
- "name": "fractionalFee",
1137
- "type": "uint256"
1138
- },
1139
- {
1140
- "internalType": "uint256",
1141
- "name": "fixedFee",
1142
- "type": "uint256"
1143
- }
1144
- ],
1145
- "internalType": "struct Fee",
1146
- "name": "distributionFee",
1147
- "type": "tuple"
1148
- },
1149
- {
1150
- "components": [
1151
- {
1152
- "internalType": "UFixed",
1153
- "name": "fractionalFee",
1154
- "type": "uint256"
1155
- },
1156
- {
1157
- "internalType": "uint256",
1158
- "name": "fixedFee",
1159
- "type": "uint256"
1160
- }
1161
- ],
1162
- "internalType": "struct Fee",
1163
- "name": "productFee",
1164
- "type": "tuple"
1165
- },
1166
- {
1167
- "components": [
1168
- {
1169
- "internalType": "UFixed",
1170
- "name": "fractionalFee",
1171
- "type": "uint256"
1172
- },
1173
- {
1174
- "internalType": "uint256",
1175
- "name": "fixedFee",
1176
- "type": "uint256"
1177
- }
1178
- ],
1179
- "internalType": "struct Fee",
1180
- "name": "processingFee",
1181
- "type": "tuple"
1182
- },
1183
- {
1184
- "components": [
1185
- {
1186
- "internalType": "UFixed",
1187
- "name": "fractionalFee",
1188
- "type": "uint256"
1189
- },
1190
- {
1191
- "internalType": "uint256",
1192
- "name": "fixedFee",
1193
- "type": "uint256"
1194
- }
1195
- ],
1196
- "internalType": "struct Fee",
1197
- "name": "poolFee",
1198
- "type": "tuple"
1199
- },
1200
- {
1201
- "components": [
1202
- {
1203
- "internalType": "UFixed",
1204
- "name": "fractionalFee",
1205
- "type": "uint256"
1206
- },
1207
- {
1208
- "internalType": "uint256",
1209
- "name": "fixedFee",
1210
- "type": "uint256"
1211
- }
1212
- ],
1213
- "internalType": "struct Fee",
1214
- "name": "stakingFee",
1215
- "type": "tuple"
1216
- },
1217
- {
1218
- "components": [
1219
- {
1220
- "internalType": "UFixed",
1221
- "name": "fractionalFee",
1222
- "type": "uint256"
1223
- },
1224
- {
1225
- "internalType": "uint256",
1226
- "name": "fixedFee",
1227
- "type": "uint256"
1228
- }
1229
- ],
1230
- "internalType": "struct Fee",
1231
- "name": "performanceFee",
1232
- "type": "tuple"
1233
- }
1234
- ],
1235
- "internalType": "struct ISetup.ProductSetupInfo",
1236
- "name": "setup",
1237
- "type": "tuple"
1238
- }
1239
- ],
1240
- "name": "createProductSetup",
1241
- "outputs": [],
1242
- "stateMutability": "nonpayable",
1243
- "type": "function"
1244
- },
1245
- {
1246
- "inputs": [
1247
- {
1248
- "internalType": "NftId",
1249
- "name": "policyNftId",
1250
- "type": "uint96"
1251
- },
1252
- {
1253
- "internalType": "NumberId",
1254
- "name": "payoutId",
1255
- "type": "uint32"
1256
- },
1257
- {
1258
- "components": [
1259
- {
1260
- "internalType": "NumberId",
1261
- "name": "claimId",
1262
- "type": "uint32"
1263
- },
1264
- {
1265
- "internalType": "uint256",
1266
- "name": "amount",
1267
- "type": "uint256"
1268
- },
1269
- {
1270
- "internalType": "bytes",
1271
- "name": "data",
1272
- "type": "bytes"
1273
- },
1274
- {
1275
- "internalType": "Timestamp",
1276
- "name": "paidAt",
1277
- "type": "uint40"
1278
- }
1279
- ],
1280
- "internalType": "struct IPolicy.PayoutInfo",
1281
- "name": "payout",
1282
- "type": "tuple"
1283
- }
1284
- ],
1285
- "name": "createReferral",
1286
- "outputs": [],
1287
- "stateMutability": "nonpayable",
1288
- "type": "function"
1289
- },
1290
- {
1291
- "inputs": [
1292
- {
1293
- "internalType": "RiskId",
1294
- "name": "riskId",
1295
- "type": "bytes8"
1296
- },
1297
- {
1298
- "components": [
1299
- {
1300
- "internalType": "NftId",
1301
- "name": "productNftId",
1302
- "type": "uint96"
1303
- },
1304
- {
1305
- "internalType": "bytes",
1306
- "name": "data",
1307
- "type": "bytes"
1308
- }
1309
- ],
1310
- "internalType": "struct IRisk.RiskInfo",
1311
- "name": "risk",
1312
- "type": "tuple"
1313
- }
1314
- ],
1315
- "name": "createRisk",
1316
- "outputs": [],
1317
- "stateMutability": "nonpayable",
1318
- "type": "function"
1319
- },
1320
- {
1321
- "inputs": [
1322
- {
1323
- "internalType": "RoleId",
1324
- "name": "roleId",
1325
- "type": "uint64"
1326
- },
1327
- {
1328
- "internalType": "string",
1329
- "name": "name",
1330
- "type": "string"
1331
- }
1332
- ],
1333
- "name": "createStandardRole",
1334
- "outputs": [],
1335
- "stateMutability": "nonpayable",
1336
- "type": "function"
1337
- },
1338
- {
1339
- "inputs": [
1340
- {
1341
- "internalType": "address",
1342
- "name": "target",
1343
- "type": "address"
1344
- },
1345
- {
1346
- "components": [
1347
- {
1348
- "internalType": "ShortString",
1349
- "name": "name",
1350
- "type": "bytes32"
1351
- },
1352
- {
1353
- "internalType": "bool",
1354
- "name": "isCustom",
1355
- "type": "bool"
1356
- }
1357
- ],
1358
- "internalType": "struct IAccess.TargetInfo",
1359
- "name": "targetInfo",
1360
- "type": "tuple"
1361
- }
1362
- ],
1363
- "name": "createTarget",
1364
- "outputs": [],
1365
- "stateMutability": "nonpayable",
1366
- "type": "function"
1367
- },
1368
- {
1369
- "inputs": [
1370
- {
1371
- "internalType": "Key32",
1372
- "name": "key32",
1373
- "type": "bytes32"
1374
- }
1375
- ],
1376
- "name": "exists",
1377
- "outputs": [
1378
- {
1379
- "internalType": "bool",
1380
- "name": "",
1381
- "type": "bool"
1382
- }
1383
- ],
1384
- "stateMutability": "view",
1385
- "type": "function"
1386
- },
1387
- {
1388
- "inputs": [
1389
- {
1390
- "internalType": "Key32",
1391
- "name": "key32",
1392
- "type": "bytes32"
1393
- }
1394
- ],
1395
- "name": "get",
1396
- "outputs": [
1397
- {
1398
- "components": [
1399
- {
1400
- "components": [
1401
- {
1402
- "internalType": "ObjectType",
1403
- "name": "objectType",
1404
- "type": "uint8"
1405
- },
1406
- {
1407
- "internalType": "StateId",
1408
- "name": "state",
1409
- "type": "uint8"
1410
- },
1411
- {
1412
- "internalType": "address",
1413
- "name": "updatedBy",
1414
- "type": "address"
1415
- },
1416
- {
1417
- "internalType": "Blocknumber",
1418
- "name": "updatedIn",
1419
- "type": "uint32"
1420
- },
1421
- {
1422
- "internalType": "Blocknumber",
1423
- "name": "createdIn",
1424
- "type": "uint32"
1425
- }
1426
- ],
1427
- "internalType": "struct IKeyValueStore.Metadata",
1428
- "name": "metadata",
1429
- "type": "tuple"
1430
- },
1431
- {
1432
- "internalType": "bytes",
1433
- "name": "data",
1434
- "type": "bytes"
1435
- }
1436
- ],
1437
- "internalType": "struct IKeyValueStore.Value",
1438
- "name": "value",
1439
- "type": "tuple"
1440
- }
1441
- ],
1442
- "stateMutability": "view",
1443
- "type": "function"
1444
- },
1445
- {
1446
- "inputs": [],
1447
- "name": "getComponentOwnerService",
1448
- "outputs": [
1449
- {
1450
- "internalType": "contract IComponentOwnerService",
1451
- "name": "",
1452
- "type": "address"
1453
- }
1454
- ],
1455
- "stateMutability": "view",
1456
- "type": "function"
1457
- },
1458
- {
1459
- "inputs": [
1460
- {
1461
- "internalType": "Key32",
1462
- "name": "key32",
1463
- "type": "bytes32"
1464
- }
1465
- ],
1466
- "name": "getData",
1467
- "outputs": [
1468
- {
1469
- "internalType": "bytes",
1470
- "name": "data",
1471
- "type": "bytes"
1472
- }
1473
- ],
1474
- "stateMutability": "view",
1475
- "type": "function"
1476
- },
1477
- {
1478
- "inputs": [],
1479
- "name": "getInitialInfo",
1480
- "outputs": [
1481
- {
1482
- "components": [
1483
- {
1484
- "internalType": "NftId",
1485
- "name": "nftId",
1486
- "type": "uint96"
1487
- },
1488
- {
1489
- "internalType": "NftId",
1490
- "name": "parentNftId",
1491
- "type": "uint96"
1492
- },
1493
- {
1494
- "internalType": "ObjectType",
1495
- "name": "objectType",
1496
- "type": "uint8"
1497
- },
1498
- {
1499
- "internalType": "bool",
1500
- "name": "isInterceptor",
1501
- "type": "bool"
1502
- },
1503
- {
1504
- "internalType": "address",
1505
- "name": "objectAddress",
1506
- "type": "address"
1507
- },
1508
- {
1509
- "internalType": "address",
1510
- "name": "initialOwner",
1511
- "type": "address"
1512
- },
1513
- {
1514
- "internalType": "bytes",
1515
- "name": "data",
1516
- "type": "bytes"
1517
- }
1518
- ],
1519
- "internalType": "struct IRegistry.ObjectInfo",
1520
- "name": "",
1521
- "type": "tuple"
1522
- },
1523
- {
1524
- "internalType": "bytes",
1525
- "name": "data",
1526
- "type": "bytes"
1527
- }
1528
- ],
1529
- "stateMutability": "view",
1530
- "type": "function"
1531
- },
1532
- {
1533
- "inputs": [
1534
- {
1535
- "internalType": "ObjectType",
1536
- "name": "objectType",
1537
- "type": "uint8"
1538
- }
1539
- ],
1540
- "name": "getInitialState",
1541
- "outputs": [
1542
- {
1543
- "internalType": "StateId",
1544
- "name": "",
1545
- "type": "uint8"
1546
- }
1547
- ],
1548
- "stateMutability": "view",
1549
- "type": "function"
1550
- },
1551
- {
1552
- "inputs": [],
1553
- "name": "getInstanceReader",
1554
- "outputs": [
1555
- {
1556
- "internalType": "contract InstanceReader",
1557
- "name": "",
1558
- "type": "address"
1559
- }
1560
- ],
1561
- "stateMutability": "view",
1562
- "type": "function"
1563
- },
1564
- {
1565
- "inputs": [
1566
- {
1567
- "internalType": "Key32",
1568
- "name": "key32",
1569
- "type": "bytes32"
1570
- }
1571
- ],
1572
- "name": "getMetadata",
1573
- "outputs": [
1574
- {
1575
- "components": [
1576
- {
1577
- "internalType": "ObjectType",
1578
- "name": "objectType",
1579
- "type": "uint8"
1580
- },
1581
- {
1582
- "internalType": "StateId",
1583
- "name": "state",
1584
- "type": "uint8"
1585
- },
1586
- {
1587
- "internalType": "address",
1588
- "name": "updatedBy",
1589
- "type": "address"
1590
- },
1591
- {
1592
- "internalType": "Blocknumber",
1593
- "name": "updatedIn",
1594
- "type": "uint32"
1595
- },
1596
- {
1597
- "internalType": "Blocknumber",
1598
- "name": "createdIn",
1599
- "type": "uint32"
1600
- }
1601
- ],
1602
- "internalType": "struct IKeyValueStore.Metadata",
1603
- "name": "metadata",
1604
- "type": "tuple"
1605
- }
1606
- ],
1607
- "stateMutability": "view",
1608
- "type": "function"
1609
- },
1610
- {
1611
- "inputs": [],
1612
- "name": "getNftId",
1613
- "outputs": [
1614
- {
1615
- "internalType": "NftId",
1616
- "name": "",
1617
- "type": "uint96"
1618
- }
1619
- ],
1620
- "stateMutability": "view",
1621
- "type": "function"
1622
- },
1623
- {
1624
- "inputs": [],
1625
- "name": "getOwner",
1626
- "outputs": [
1627
- {
1628
- "internalType": "address",
1629
- "name": "",
1630
- "type": "address"
1631
- }
1632
- ],
1633
- "stateMutability": "view",
1634
- "type": "function"
1635
- },
1636
- {
1637
- "inputs": [],
1638
- "name": "getRegistry",
1639
- "outputs": [
1640
- {
1641
- "internalType": "contract IRegistry",
1642
- "name": "",
1643
- "type": "address"
1644
- }
1645
- ],
1646
- "stateMutability": "view",
1647
- "type": "function"
1648
- },
1649
- {
1650
- "inputs": [
1651
- {
1652
- "internalType": "RoleId",
1653
- "name": "roleId",
1654
- "type": "uint64"
1655
- }
1656
- ],
1657
- "name": "getRole",
1658
- "outputs": [
1659
- {
1660
- "components": [
1661
- {
1662
- "internalType": "ShortString",
1663
- "name": "name",
1664
- "type": "bytes32"
1665
- },
1666
- {
1667
- "internalType": "bool",
1668
- "name": "isCustom",
1669
- "type": "bool"
1670
- }
1671
- ],
1672
- "internalType": "struct IAccess.RoleInfo",
1673
- "name": "role",
1674
- "type": "tuple"
1675
- }
1676
- ],
1677
- "stateMutability": "view",
1678
- "type": "function"
1679
- },
1680
- {
1681
- "inputs": [
1682
- {
1683
- "internalType": "uint256",
1684
- "name": "idx",
1685
- "type": "uint256"
1686
- }
1687
- ],
1688
- "name": "getRoleId",
1689
- "outputs": [
1690
- {
1691
- "internalType": "RoleId",
1692
- "name": "roleId",
1693
- "type": "uint64"
1694
- }
1695
- ],
1696
- "stateMutability": "view",
1697
- "type": "function"
1698
- },
1699
- {
1700
- "inputs": [
1701
- {
1702
- "internalType": "RoleId",
1703
- "name": "roleId",
1704
- "type": "uint64"
1705
- },
1706
- {
1707
- "internalType": "uint256",
1708
- "name": "idx",
1709
- "type": "uint256"
1710
- }
1711
- ],
1712
- "name": "getRoleMember",
1713
- "outputs": [
1714
- {
1715
- "internalType": "address",
1716
- "name": "roleMember",
1717
- "type": "address"
1718
- }
1719
- ],
1720
- "stateMutability": "view",
1721
- "type": "function"
1722
- },
1723
- {
1724
- "inputs": [
1725
- {
1726
- "internalType": "Key32",
1727
- "name": "key32",
1728
- "type": "bytes32"
1729
- }
1730
- ],
1731
- "name": "getState",
1732
- "outputs": [
1733
- {
1734
- "internalType": "StateId",
1735
- "name": "state",
1736
- "type": "uint8"
1737
- }
1738
- ],
1739
- "stateMutability": "view",
1740
- "type": "function"
1741
- },
1742
- {
1743
- "inputs": [
1744
- {
1745
- "internalType": "RoleId",
1746
- "name": "roleId",
1747
- "type": "uint64"
1748
- },
1749
- {
1750
- "internalType": "address",
1751
- "name": "member",
1752
- "type": "address"
1753
- }
1754
- ],
1755
- "name": "grantRole",
1756
- "outputs": [
1757
- {
1758
- "internalType": "bool",
1759
- "name": "granted",
1760
- "type": "bool"
1761
- }
1762
- ],
1763
- "stateMutability": "nonpayable",
1764
- "type": "function"
1765
- },
1766
- {
1767
- "inputs": [
1768
- {
1769
- "internalType": "ObjectType",
1770
- "name": "objectType",
1771
- "type": "uint8"
1772
- }
1773
- ],
1774
- "name": "hasLifecycle",
1775
- "outputs": [
1776
- {
1777
- "internalType": "bool",
1778
- "name": "",
1779
- "type": "bool"
1780
- }
1781
- ],
1782
- "stateMutability": "view",
1783
- "type": "function"
1784
- },
1785
- {
1786
- "inputs": [],
1787
- "name": "isConsumingScheduledOp",
1788
- "outputs": [
1789
- {
1790
- "internalType": "bytes4",
1791
- "name": "",
1792
- "type": "bytes4"
1793
- }
1794
- ],
1795
- "stateMutability": "view",
1796
- "type": "function"
1797
- },
1798
- {
1799
- "inputs": [
1800
- {
1801
- "internalType": "ObjectType",
1802
- "name": "objectType",
1803
- "type": "uint8"
1804
- },
1805
- {
1806
- "internalType": "StateId",
1807
- "name": "fromId",
1808
- "type": "uint8"
1809
- },
1810
- {
1811
- "internalType": "StateId",
1812
- "name": "toId",
1813
- "type": "uint8"
1814
- }
1815
- ],
1816
- "name": "isValidTransition",
1817
- "outputs": [
1818
- {
1819
- "internalType": "bool",
1820
- "name": "",
1821
- "type": "bool"
1822
- }
1823
- ],
1824
- "stateMutability": "view",
1825
- "type": "function"
1826
- },
1827
- {
1828
- "inputs": [],
1829
- "name": "linkToRegisteredNftId",
1830
- "outputs": [],
1831
- "stateMutability": "nonpayable",
1832
- "type": "function"
1833
- },
1834
- {
1835
- "inputs": [
1836
- {
1837
- "internalType": "RoleId",
1838
- "name": "roleId",
1839
- "type": "uint64"
1840
- }
1841
- ],
1842
- "name": "renounceRole",
1843
- "outputs": [
1844
- {
1845
- "internalType": "bool",
1846
- "name": "revoked",
1847
- "type": "bool"
1848
- }
1849
- ],
1850
- "stateMutability": "nonpayable",
1851
- "type": "function"
1852
- },
1853
- {
1854
- "inputs": [
1855
- {
1856
- "internalType": "RoleId",
1857
- "name": "roleId",
1858
- "type": "uint64"
1859
- },
1860
- {
1861
- "internalType": "address",
1862
- "name": "member",
1863
- "type": "address"
1864
- }
1865
- ],
1866
- "name": "revokeRole",
1867
- "outputs": [
1868
- {
1869
- "internalType": "bool",
1870
- "name": "revoked",
1871
- "type": "bool"
1872
- }
1873
- ],
1874
- "stateMutability": "nonpayable",
1875
- "type": "function"
1876
- },
1877
- {
1878
- "inputs": [
1879
- {
1880
- "internalType": "RoleId",
1881
- "name": "roleId",
1882
- "type": "uint64"
1883
- }
1884
- ],
1885
- "name": "roleMembers",
1886
- "outputs": [
1887
- {
1888
- "internalType": "uint256",
1889
- "name": "numberOfMembers",
1890
- "type": "uint256"
1891
- }
1892
- ],
1893
- "stateMutability": "view",
1894
- "type": "function"
1895
- },
1896
- {
1897
- "inputs": [],
1898
- "name": "roles",
1899
- "outputs": [
1900
- {
1901
- "internalType": "uint256",
1902
- "name": "numberOfRoles",
1903
- "type": "uint256"
1904
- }
1905
- ],
1906
- "stateMutability": "view",
1907
- "type": "function"
1908
- },
1909
- {
1910
- "inputs": [
1911
- {
1912
- "internalType": "address",
1913
- "name": "newAuthority",
1914
- "type": "address"
1915
- }
1916
- ],
1917
- "name": "setAuthority",
1918
- "outputs": [],
1919
- "stateMutability": "nonpayable",
1920
- "type": "function"
1921
- },
1922
- {
1923
- "inputs": [
1924
- {
1925
- "internalType": "contract InstanceReader",
1926
- "name": "instanceReader",
1927
- "type": "address"
1928
- }
1929
- ],
1930
- "name": "setInstanceReader",
1931
- "outputs": [],
1932
- "stateMutability": "nonpayable",
1933
- "type": "function"
1934
- },
1935
- {
1936
- "inputs": [
1937
- {
1938
- "internalType": "address",
1939
- "name": "target",
1940
- "type": "address"
1941
- },
1942
- {
1943
- "internalType": "bool",
1944
- "name": "closed",
1945
- "type": "bool"
1946
- }
1947
- ],
1948
- "name": "setTargetClosed",
1949
- "outputs": [],
1950
- "stateMutability": "nonpayable",
1951
- "type": "function"
1952
- },
1953
- {
1954
- "inputs": [
1955
- {
1956
- "internalType": "bytes4",
1957
- "name": "interfaceId",
1958
- "type": "bytes4"
1959
- }
1960
- ],
1961
- "name": "supportsInterface",
1962
- "outputs": [
1963
- {
1964
- "internalType": "bool",
1965
- "name": "",
1966
- "type": "bool"
1967
- }
1968
- ],
1969
- "stateMutability": "view",
1970
- "type": "function"
1971
- },
1972
- {
1973
- "inputs": [
1974
- {
1975
- "internalType": "NftId",
1976
- "name": "bundleNftId",
1977
- "type": "uint96"
1978
- }
1979
- ],
1980
- "name": "toBundleKey32",
1981
- "outputs": [
1982
- {
1983
- "internalType": "Key32",
1984
- "name": "",
1985
- "type": "bytes32"
1986
- }
1987
- ],
1988
- "stateMutability": "pure",
1989
- "type": "function"
1990
- },
1991
- {
1992
- "inputs": [
1993
- {
1994
- "internalType": "ObjectType",
1995
- "name": "objectType",
1996
- "type": "uint8"
1997
- },
1998
- {
1999
- "internalType": "KeyId",
2000
- "name": "id",
2001
- "type": "bytes31"
2002
- }
2003
- ],
2004
- "name": "toKey32",
2005
- "outputs": [
2006
- {
2007
- "internalType": "Key32",
2008
- "name": "",
2009
- "type": "bytes32"
2010
- }
2011
- ],
2012
- "stateMutability": "pure",
2013
- "type": "function"
2014
- },
2015
- {
2016
- "inputs": [
2017
- {
2018
- "internalType": "NftId",
2019
- "name": "policyNftId",
2020
- "type": "uint96"
2021
- }
2022
- ],
2023
- "name": "toPolicyKey32",
2024
- "outputs": [
2025
- {
2026
- "internalType": "Key32",
2027
- "name": "",
2028
- "type": "bytes32"
2029
- }
2030
- ],
2031
- "stateMutability": "pure",
2032
- "type": "function"
2033
- },
2034
- {
2035
- "inputs": [
2036
- {
2037
- "internalType": "RoleId",
2038
- "name": "roleId",
2039
- "type": "uint64"
2040
- }
2041
- ],
2042
- "name": "toRoleKey32",
2043
- "outputs": [
2044
- {
2045
- "internalType": "Key32",
2046
- "name": "",
2047
- "type": "bytes32"
2048
- }
2049
- ],
2050
- "stateMutability": "pure",
2051
- "type": "function"
2052
- },
2053
- {
2054
- "inputs": [
2055
- {
2056
- "internalType": "address",
2057
- "name": "target",
2058
- "type": "address"
2059
- }
2060
- ],
2061
- "name": "toTargetKey32",
2062
- "outputs": [
2063
- {
2064
- "internalType": "Key32",
2065
- "name": "",
2066
- "type": "bytes32"
2067
- }
2068
- ],
2069
- "stateMutability": "pure",
2070
- "type": "function"
2071
- },
2072
- {
2073
- "inputs": [
2074
- {
2075
- "internalType": "NftId",
2076
- "name": "bundleNftId",
2077
- "type": "uint96"
2078
- },
2079
- {
2080
- "components": [
2081
- {
2082
- "internalType": "NftId",
2083
- "name": "poolNftId",
2084
- "type": "uint96"
2085
- },
2086
- {
2087
- "components": [
2088
- {
2089
- "internalType": "UFixed",
2090
- "name": "fractionalFee",
2091
- "type": "uint256"
2092
- },
2093
- {
2094
- "internalType": "uint256",
2095
- "name": "fixedFee",
2096
- "type": "uint256"
2097
- }
2098
- ],
2099
- "internalType": "struct Fee",
2100
- "name": "fee",
2101
- "type": "tuple"
2102
- },
2103
- {
2104
- "internalType": "bytes",
2105
- "name": "filter",
2106
- "type": "bytes"
2107
- },
2108
- {
2109
- "internalType": "uint256",
2110
- "name": "capitalAmount",
2111
- "type": "uint256"
2112
- },
2113
- {
2114
- "internalType": "uint256",
2115
- "name": "lockedAmount",
2116
- "type": "uint256"
2117
- },
2118
- {
2119
- "internalType": "uint256",
2120
- "name": "balanceAmount",
2121
- "type": "uint256"
2122
- },
2123
- {
2124
- "internalType": "Timestamp",
2125
- "name": "expiredAt",
2126
- "type": "uint40"
2127
- },
2128
- {
2129
- "internalType": "Timestamp",
2130
- "name": "closedAt",
2131
- "type": "uint40"
2132
- }
2133
- ],
2134
- "internalType": "struct IBundle.BundleInfo",
2135
- "name": "bundle",
2136
- "type": "tuple"
2137
- },
2138
- {
2139
- "internalType": "StateId",
2140
- "name": "newState",
2141
- "type": "uint8"
2142
- }
2143
- ],
2144
- "name": "updateBundle",
2145
- "outputs": [],
2146
- "stateMutability": "nonpayable",
2147
- "type": "function"
2148
- },
2149
- {
2150
- "inputs": [
2151
- {
2152
- "internalType": "NftId",
2153
- "name": "bundleNftId",
2154
- "type": "uint96"
2155
- },
2156
- {
2157
- "internalType": "StateId",
2158
- "name": "newState",
2159
- "type": "uint8"
2160
- }
2161
- ],
2162
- "name": "updateBundleState",
2163
- "outputs": [],
2164
- "stateMutability": "nonpayable",
2165
- "type": "function"
2166
- },
2167
- {
2168
- "inputs": [
2169
- {
2170
- "internalType": "NftId",
2171
- "name": "policyNftId",
2172
- "type": "uint96"
2173
- },
2174
- {
2175
- "internalType": "NumberId",
2176
- "name": "claimId",
2177
- "type": "uint32"
2178
- },
2179
- {
2180
- "components": [
2181
- {
2182
- "internalType": "uint256",
2183
- "name": "claimAmount",
2184
- "type": "uint256"
2185
- },
2186
- {
2187
- "internalType": "uint256",
2188
- "name": "paidAmount",
2189
- "type": "uint256"
2190
- },
2191
- {
2192
- "internalType": "bytes",
2193
- "name": "data",
2194
- "type": "bytes"
2195
- },
2196
- {
2197
- "internalType": "Timestamp",
2198
- "name": "closedAt",
2199
- "type": "uint40"
2200
- }
2201
- ],
2202
- "internalType": "struct IPolicy.ClaimInfo",
2203
- "name": "claim",
2204
- "type": "tuple"
2205
- },
2206
- {
2207
- "internalType": "StateId",
2208
- "name": "newState",
2209
- "type": "uint8"
2210
- }
2211
- ],
2212
- "name": "updateClaim",
2213
- "outputs": [],
2214
- "stateMutability": "nonpayable",
2215
- "type": "function"
2216
- },
2217
- {
2218
- "inputs": [
2219
- {
2220
- "internalType": "NftId",
2221
- "name": "policyNftId",
2222
- "type": "uint96"
2223
- },
2224
- {
2225
- "internalType": "NumberId",
2226
- "name": "payoutId",
2227
- "type": "uint32"
2228
- },
2229
- {
2230
- "components": [
2231
- {
2232
- "internalType": "NumberId",
2233
- "name": "claimId",
2234
- "type": "uint32"
2235
- },
2236
- {
2237
- "internalType": "uint256",
2238
- "name": "amount",
2239
- "type": "uint256"
2240
- },
2241
- {
2242
- "internalType": "bytes",
2243
- "name": "data",
2244
- "type": "bytes"
2245
- },
2246
- {
2247
- "internalType": "Timestamp",
2248
- "name": "paidAt",
2249
- "type": "uint40"
2250
- }
2251
- ],
2252
- "internalType": "struct IPolicy.PayoutInfo",
2253
- "name": "payout",
2254
- "type": "tuple"
2255
- },
2256
- {
2257
- "internalType": "StateId",
2258
- "name": "newState",
2259
- "type": "uint8"
2260
- }
2261
- ],
2262
- "name": "updateClaim",
2263
- "outputs": [],
2264
- "stateMutability": "nonpayable",
2265
- "type": "function"
2266
- },
2267
- {
2268
- "inputs": [
2269
- {
2270
- "internalType": "NftId",
2271
- "name": "policyNftId",
2272
- "type": "uint96"
2273
- },
2274
- {
2275
- "internalType": "StateId",
2276
- "name": "newState",
2277
- "type": "uint8"
2278
- }
2279
- ],
2280
- "name": "updateClaimState",
2281
- "outputs": [],
2282
- "stateMutability": "nonpayable",
2283
- "type": "function"
2284
- },
2285
- {
2286
- "inputs": [
2287
- {
2288
- "internalType": "NftId",
2289
- "name": "distributionNftId",
2290
- "type": "uint96"
2291
- },
2292
- {
2293
- "components": [
2294
- {
2295
- "internalType": "NftId",
2296
- "name": "productNftId",
2297
- "type": "uint96"
2298
- },
2299
- {
2300
- "internalType": "contract TokenHandler",
2301
- "name": "tokenHandler",
2302
- "type": "address"
2303
- },
2304
- {
2305
- "components": [
2306
- {
2307
- "internalType": "UFixed",
2308
- "name": "fractionalFee",
2309
- "type": "uint256"
2310
- },
2311
- {
2312
- "internalType": "uint256",
2313
- "name": "fixedFee",
2314
- "type": "uint256"
2315
- }
2316
- ],
2317
- "internalType": "struct Fee",
2318
- "name": "distributionFee",
2319
- "type": "tuple"
2320
- },
2321
- {
2322
- "internalType": "bool",
2323
- "name": "isIntercepting",
2324
- "type": "bool"
2325
- },
2326
- {
2327
- "internalType": "address",
2328
- "name": "wallet",
2329
- "type": "address"
2330
- }
2331
- ],
2332
- "internalType": "struct ISetup.DistributionSetupInfo",
2333
- "name": "setup",
2334
- "type": "tuple"
2335
- },
2336
- {
2337
- "internalType": "StateId",
2338
- "name": "newState",
2339
- "type": "uint8"
2340
- }
2341
- ],
2342
- "name": "updateDistributionSetup",
2343
- "outputs": [],
2344
- "stateMutability": "nonpayable",
2345
- "type": "function"
2346
- },
2347
- {
2348
- "inputs": [
2349
- {
2350
- "internalType": "NftId",
2351
- "name": "distributionNftId",
2352
- "type": "uint96"
2353
- },
2354
- {
2355
- "internalType": "StateId",
2356
- "name": "newState",
2357
- "type": "uint8"
2358
- }
2359
- ],
2360
- "name": "updateDistributionSetupState",
2361
- "outputs": [],
2362
- "stateMutability": "nonpayable",
2363
- "type": "function"
2364
- },
2365
- {
2366
- "inputs": [
2367
- {
2368
- "internalType": "NftId",
2369
- "name": "policyNftId",
2370
- "type": "uint96"
2371
- },
2372
- {
2373
- "internalType": "NumberId",
2374
- "name": "payoutId",
2375
- "type": "uint32"
2376
- },
2377
- {
2378
- "components": [
2379
- {
2380
- "internalType": "NumberId",
2381
- "name": "claimId",
2382
- "type": "uint32"
2383
- },
2384
- {
2385
- "internalType": "uint256",
2386
- "name": "amount",
2387
- "type": "uint256"
2388
- },
2389
- {
2390
- "internalType": "bytes",
2391
- "name": "data",
2392
- "type": "bytes"
2393
- },
2394
- {
2395
- "internalType": "Timestamp",
2396
- "name": "paidAt",
2397
- "type": "uint40"
2398
- }
2399
- ],
2400
- "internalType": "struct IPolicy.PayoutInfo",
2401
- "name": "payout",
2402
- "type": "tuple"
2403
- },
2404
- {
2405
- "internalType": "StateId",
2406
- "name": "newState",
2407
- "type": "uint8"
2408
- }
2409
- ],
2410
- "name": "updateDistributor",
2411
- "outputs": [],
2412
- "stateMutability": "nonpayable",
2413
- "type": "function"
2414
- },
2415
- {
2416
- "inputs": [
2417
- {
2418
- "internalType": "NftId",
2419
- "name": "policyNftId",
2420
- "type": "uint96"
2421
- },
2422
- {
2423
- "internalType": "StateId",
2424
- "name": "newState",
2425
- "type": "uint8"
2426
- }
2427
- ],
2428
- "name": "updateDistributorState",
2429
- "outputs": [],
2430
- "stateMutability": "nonpayable",
2431
- "type": "function"
2432
- },
2433
- {
2434
- "inputs": [
2435
- {
2436
- "internalType": "NftId",
2437
- "name": "policyNftId",
2438
- "type": "uint96"
632
+ "internalType": "ObjectType",
633
+ "name": "objectType",
634
+ "type": "uint8"
2439
635
  },
2440
636
  {
2441
- "internalType": "NumberId",
2442
- "name": "payoutId",
2443
- "type": "uint32"
637
+ "internalType": "bool",
638
+ "name": "isInterceptor",
639
+ "type": "bool"
2444
640
  },
2445
641
  {
2446
- "components": [
2447
- {
2448
- "internalType": "NumberId",
2449
- "name": "claimId",
2450
- "type": "uint32"
2451
- },
2452
- {
2453
- "internalType": "uint256",
2454
- "name": "amount",
2455
- "type": "uint256"
2456
- },
2457
- {
2458
- "internalType": "bytes",
2459
- "name": "data",
2460
- "type": "bytes"
2461
- },
2462
- {
2463
- "internalType": "Timestamp",
2464
- "name": "paidAt",
2465
- "type": "uint40"
2466
- }
2467
- ],
2468
- "internalType": "struct IPolicy.PayoutInfo",
2469
- "name": "payout",
2470
- "type": "tuple"
642
+ "internalType": "address",
643
+ "name": "initialOwner",
644
+ "type": "address"
2471
645
  },
2472
646
  {
2473
- "internalType": "StateId",
2474
- "name": "newState",
2475
- "type": "uint8"
647
+ "internalType": "bytes",
648
+ "name": "registryData",
649
+ "type": "bytes"
2476
650
  }
2477
651
  ],
2478
- "name": "updateDistributorType",
652
+ "name": "initializeRegisterable",
2479
653
  "outputs": [],
2480
654
  "stateMutability": "nonpayable",
2481
655
  "type": "function"
@@ -2483,158 +657,56 @@
2483
657
  {
2484
658
  "inputs": [
2485
659
  {
2486
- "internalType": "NftId",
2487
- "name": "policyNftId",
2488
- "type": "uint96"
2489
- },
2490
- {
2491
- "internalType": "StateId",
2492
- "name": "newState",
2493
- "type": "uint8"
660
+ "internalType": "address",
661
+ "name": "registryAddress",
662
+ "type": "address"
2494
663
  }
2495
664
  ],
2496
- "name": "updateDistributorTypeState",
665
+ "name": "initializeRegistryLinked",
2497
666
  "outputs": [],
2498
667
  "stateMutability": "nonpayable",
2499
668
  "type": "function"
2500
669
  },
2501
670
  {
2502
- "inputs": [
2503
- {
2504
- "internalType": "NftId",
2505
- "name": "policyNftId",
2506
- "type": "uint96"
2507
- },
671
+ "inputs": [],
672
+ "name": "isConsumingScheduledOp",
673
+ "outputs": [
2508
674
  {
2509
- "internalType": "StateId",
2510
- "name": "newState",
2511
- "type": "uint8"
675
+ "internalType": "bytes4",
676
+ "name": "",
677
+ "type": "bytes4"
2512
678
  }
2513
679
  ],
2514
- "name": "updatePayoutState",
2515
- "outputs": [],
2516
- "stateMutability": "nonpayable",
680
+ "stateMutability": "view",
2517
681
  "type": "function"
2518
682
  },
2519
683
  {
2520
- "inputs": [
684
+ "inputs": [],
685
+ "name": "linkToRegisteredNftId",
686
+ "outputs": [
2521
687
  {
2522
688
  "internalType": "NftId",
2523
- "name": "policyNftId",
689
+ "name": "nftId",
2524
690
  "type": "uint96"
2525
- },
2526
- {
2527
- "components": [
2528
- {
2529
- "internalType": "NftId",
2530
- "name": "productNftId",
2531
- "type": "uint96"
2532
- },
2533
- {
2534
- "internalType": "NftId",
2535
- "name": "bundleNftId",
2536
- "type": "uint96"
2537
- },
2538
- {
2539
- "internalType": "ReferralId",
2540
- "name": "referralId",
2541
- "type": "bytes8"
2542
- },
2543
- {
2544
- "internalType": "RiskId",
2545
- "name": "riskId",
2546
- "type": "bytes8"
2547
- },
2548
- {
2549
- "internalType": "uint256",
2550
- "name": "sumInsuredAmount",
2551
- "type": "uint256"
2552
- },
2553
- {
2554
- "internalType": "uint256",
2555
- "name": "premiumAmount",
2556
- "type": "uint256"
2557
- },
2558
- {
2559
- "internalType": "uint256",
2560
- "name": "premiumPaidAmount",
2561
- "type": "uint256"
2562
- },
2563
- {
2564
- "internalType": "uint256",
2565
- "name": "lifetime",
2566
- "type": "uint256"
2567
- },
2568
- {
2569
- "internalType": "bytes",
2570
- "name": "applicationData",
2571
- "type": "bytes"
2572
- },
2573
- {
2574
- "internalType": "bytes",
2575
- "name": "policyData",
2576
- "type": "bytes"
2577
- },
2578
- {
2579
- "internalType": "uint16",
2580
- "name": "claimsCount",
2581
- "type": "uint16"
2582
- },
2583
- {
2584
- "internalType": "uint16",
2585
- "name": "openClaimsCount",
2586
- "type": "uint16"
2587
- },
2588
- {
2589
- "internalType": "uint256",
2590
- "name": "payoutAmount",
2591
- "type": "uint256"
2592
- },
2593
- {
2594
- "internalType": "Timestamp",
2595
- "name": "activatedAt",
2596
- "type": "uint40"
2597
- },
2598
- {
2599
- "internalType": "Timestamp",
2600
- "name": "expiredAt",
2601
- "type": "uint40"
2602
- },
2603
- {
2604
- "internalType": "Timestamp",
2605
- "name": "closedAt",
2606
- "type": "uint40"
2607
- }
2608
- ],
2609
- "internalType": "struct IPolicy.PolicyInfo",
2610
- "name": "policy",
2611
- "type": "tuple"
2612
- },
2613
- {
2614
- "internalType": "StateId",
2615
- "name": "newState",
2616
- "type": "uint8"
2617
691
  }
2618
692
  ],
2619
- "name": "updatePolicy",
2620
- "outputs": [],
2621
693
  "stateMutability": "nonpayable",
2622
694
  "type": "function"
2623
695
  },
2624
696
  {
2625
697
  "inputs": [
2626
698
  {
2627
- "internalType": "NftId",
2628
- "name": "policyNftId",
2629
- "type": "uint96"
699
+ "internalType": "address",
700
+ "name": "to",
701
+ "type": "address"
2630
702
  },
2631
703
  {
2632
- "internalType": "StateId",
2633
- "name": "newState",
2634
- "type": "uint8"
704
+ "internalType": "uint256",
705
+ "name": "tokenId",
706
+ "type": "uint256"
2635
707
  }
2636
708
  ],
2637
- "name": "updatePolicyState",
709
+ "name": "nftMint",
2638
710
  "outputs": [],
2639
711
  "stateMutability": "nonpayable",
2640
712
  "type": "function"
@@ -2642,100 +714,22 @@
2642
714
  {
2643
715
  "inputs": [
2644
716
  {
2645
- "internalType": "NftId",
2646
- "name": "distributionNftId",
2647
- "type": "uint96"
717
+ "internalType": "address",
718
+ "name": "from",
719
+ "type": "address"
2648
720
  },
2649
721
  {
2650
- "components": [
2651
- {
2652
- "internalType": "NftId",
2653
- "name": "productNftId",
2654
- "type": "uint96"
2655
- },
2656
- {
2657
- "internalType": "contract TokenHandler",
2658
- "name": "tokenHandler",
2659
- "type": "address"
2660
- },
2661
- {
2662
- "internalType": "UFixed",
2663
- "name": "collateralizationLevel",
2664
- "type": "uint256"
2665
- },
2666
- {
2667
- "components": [
2668
- {
2669
- "internalType": "UFixed",
2670
- "name": "fractionalFee",
2671
- "type": "uint256"
2672
- },
2673
- {
2674
- "internalType": "uint256",
2675
- "name": "fixedFee",
2676
- "type": "uint256"
2677
- }
2678
- ],
2679
- "internalType": "struct Fee",
2680
- "name": "poolFee",
2681
- "type": "tuple"
2682
- },
2683
- {
2684
- "components": [
2685
- {
2686
- "internalType": "UFixed",
2687
- "name": "fractionalFee",
2688
- "type": "uint256"
2689
- },
2690
- {
2691
- "internalType": "uint256",
2692
- "name": "fixedFee",
2693
- "type": "uint256"
2694
- }
2695
- ],
2696
- "internalType": "struct Fee",
2697
- "name": "stakingFee",
2698
- "type": "tuple"
2699
- },
2700
- {
2701
- "components": [
2702
- {
2703
- "internalType": "UFixed",
2704
- "name": "fractionalFee",
2705
- "type": "uint256"
2706
- },
2707
- {
2708
- "internalType": "uint256",
2709
- "name": "fixedFee",
2710
- "type": "uint256"
2711
- }
2712
- ],
2713
- "internalType": "struct Fee",
2714
- "name": "performanceFee",
2715
- "type": "tuple"
2716
- },
2717
- {
2718
- "internalType": "bool",
2719
- "name": "isIntercepting",
2720
- "type": "bool"
2721
- },
2722
- {
2723
- "internalType": "address",
2724
- "name": "wallet",
2725
- "type": "address"
2726
- }
2727
- ],
2728
- "internalType": "struct ISetup.PoolSetupInfo",
2729
- "name": "setup",
2730
- "type": "tuple"
722
+ "internalType": "address",
723
+ "name": "to",
724
+ "type": "address"
2731
725
  },
2732
726
  {
2733
- "internalType": "StateId",
2734
- "name": "newState",
2735
- "type": "uint8"
727
+ "internalType": "uint256",
728
+ "name": "tokenId",
729
+ "type": "uint256"
2736
730
  }
2737
731
  ],
2738
- "name": "updatePoolSetup",
732
+ "name": "nftTransferFrom",
2739
733
  "outputs": [],
2740
734
  "stateMutability": "nonpayable",
2741
735
  "type": "function"
@@ -2743,17 +737,12 @@
2743
737
  {
2744
738
  "inputs": [
2745
739
  {
2746
- "internalType": "NftId",
2747
- "name": "distributionNftId",
2748
- "type": "uint96"
2749
- },
2750
- {
2751
- "internalType": "StateId",
2752
- "name": "newState",
2753
- "type": "uint8"
740
+ "internalType": "bytes4",
741
+ "name": "interfaceId",
742
+ "type": "bytes4"
2754
743
  }
2755
744
  ],
2756
- "name": "updatePoolSetupState",
745
+ "name": "registerInterface",
2757
746
  "outputs": [],
2758
747
  "stateMutability": "nonpayable",
2759
748
  "type": "function"
@@ -2761,146 +750,17 @@
2761
750
  {
2762
751
  "inputs": [
2763
752
  {
2764
- "internalType": "NftId",
2765
- "name": "productNftId",
2766
- "type": "uint96"
2767
- },
2768
- {
2769
- "components": [
2770
- {
2771
- "internalType": "contract IERC20Metadata",
2772
- "name": "token",
2773
- "type": "address"
2774
- },
2775
- {
2776
- "internalType": "contract TokenHandler",
2777
- "name": "tokenHandler",
2778
- "type": "address"
2779
- },
2780
- {
2781
- "internalType": "NftId",
2782
- "name": "distributionNftId",
2783
- "type": "uint96"
2784
- },
2785
- {
2786
- "internalType": "NftId",
2787
- "name": "poolNftId",
2788
- "type": "uint96"
2789
- },
2790
- {
2791
- "components": [
2792
- {
2793
- "internalType": "UFixed",
2794
- "name": "fractionalFee",
2795
- "type": "uint256"
2796
- },
2797
- {
2798
- "internalType": "uint256",
2799
- "name": "fixedFee",
2800
- "type": "uint256"
2801
- }
2802
- ],
2803
- "internalType": "struct Fee",
2804
- "name": "distributionFee",
2805
- "type": "tuple"
2806
- },
2807
- {
2808
- "components": [
2809
- {
2810
- "internalType": "UFixed",
2811
- "name": "fractionalFee",
2812
- "type": "uint256"
2813
- },
2814
- {
2815
- "internalType": "uint256",
2816
- "name": "fixedFee",
2817
- "type": "uint256"
2818
- }
2819
- ],
2820
- "internalType": "struct Fee",
2821
- "name": "productFee",
2822
- "type": "tuple"
2823
- },
2824
- {
2825
- "components": [
2826
- {
2827
- "internalType": "UFixed",
2828
- "name": "fractionalFee",
2829
- "type": "uint256"
2830
- },
2831
- {
2832
- "internalType": "uint256",
2833
- "name": "fixedFee",
2834
- "type": "uint256"
2835
- }
2836
- ],
2837
- "internalType": "struct Fee",
2838
- "name": "processingFee",
2839
- "type": "tuple"
2840
- },
2841
- {
2842
- "components": [
2843
- {
2844
- "internalType": "UFixed",
2845
- "name": "fractionalFee",
2846
- "type": "uint256"
2847
- },
2848
- {
2849
- "internalType": "uint256",
2850
- "name": "fixedFee",
2851
- "type": "uint256"
2852
- }
2853
- ],
2854
- "internalType": "struct Fee",
2855
- "name": "poolFee",
2856
- "type": "tuple"
2857
- },
2858
- {
2859
- "components": [
2860
- {
2861
- "internalType": "UFixed",
2862
- "name": "fractionalFee",
2863
- "type": "uint256"
2864
- },
2865
- {
2866
- "internalType": "uint256",
2867
- "name": "fixedFee",
2868
- "type": "uint256"
2869
- }
2870
- ],
2871
- "internalType": "struct Fee",
2872
- "name": "stakingFee",
2873
- "type": "tuple"
2874
- },
2875
- {
2876
- "components": [
2877
- {
2878
- "internalType": "UFixed",
2879
- "name": "fractionalFee",
2880
- "type": "uint256"
2881
- },
2882
- {
2883
- "internalType": "uint256",
2884
- "name": "fixedFee",
2885
- "type": "uint256"
2886
- }
2887
- ],
2888
- "internalType": "struct Fee",
2889
- "name": "performanceFee",
2890
- "type": "tuple"
2891
- }
2892
- ],
2893
- "internalType": "struct ISetup.ProductSetupInfo",
2894
- "name": "setup",
2895
- "type": "tuple"
753
+ "internalType": "RoleId",
754
+ "name": "roleId",
755
+ "type": "uint64"
2896
756
  },
2897
757
  {
2898
- "internalType": "StateId",
2899
- "name": "newState",
2900
- "type": "uint8"
758
+ "internalType": "address",
759
+ "name": "account",
760
+ "type": "address"
2901
761
  }
2902
762
  ],
2903
- "name": "updateProductSetup",
763
+ "name": "revokeRole",
2904
764
  "outputs": [],
2905
765
  "stateMutability": "nonpayable",
2906
766
  "type": "function"
@@ -2908,17 +768,12 @@
2908
768
  {
2909
769
  "inputs": [
2910
770
  {
2911
- "internalType": "NftId",
2912
- "name": "productNftId",
2913
- "type": "uint96"
2914
- },
2915
- {
2916
- "internalType": "StateId",
2917
- "name": "newState",
2918
- "type": "uint8"
771
+ "internalType": "address",
772
+ "name": "newAuthority",
773
+ "type": "address"
2919
774
  }
2920
775
  ],
2921
- "name": "updateProductSetupState",
776
+ "name": "setAuthority",
2922
777
  "outputs": [],
2923
778
  "stateMutability": "nonpayable",
2924
779
  "type": "function"
@@ -2926,49 +781,12 @@
2926
781
  {
2927
782
  "inputs": [
2928
783
  {
2929
- "internalType": "NftId",
2930
- "name": "policyNftId",
2931
- "type": "uint96"
2932
- },
2933
- {
2934
- "internalType": "NumberId",
2935
- "name": "payoutId",
2936
- "type": "uint32"
2937
- },
2938
- {
2939
- "components": [
2940
- {
2941
- "internalType": "NumberId",
2942
- "name": "claimId",
2943
- "type": "uint32"
2944
- },
2945
- {
2946
- "internalType": "uint256",
2947
- "name": "amount",
2948
- "type": "uint256"
2949
- },
2950
- {
2951
- "internalType": "bytes",
2952
- "name": "data",
2953
- "type": "bytes"
2954
- },
2955
- {
2956
- "internalType": "Timestamp",
2957
- "name": "paidAt",
2958
- "type": "uint40"
2959
- }
2960
- ],
2961
- "internalType": "struct IPolicy.PayoutInfo",
2962
- "name": "payout",
2963
- "type": "tuple"
2964
- },
2965
- {
2966
- "internalType": "StateId",
2967
- "name": "newState",
2968
- "type": "uint8"
784
+ "internalType": "contract BundleManager",
785
+ "name": "bundleManager",
786
+ "type": "address"
2969
787
  }
2970
788
  ],
2971
- "name": "updateReferral",
789
+ "name": "setBundleManager",
2972
790
  "outputs": [],
2973
791
  "stateMutability": "nonpayable",
2974
792
  "type": "function"
@@ -2976,17 +794,12 @@
2976
794
  {
2977
795
  "inputs": [
2978
796
  {
2979
- "internalType": "NftId",
2980
- "name": "policyNftId",
2981
- "type": "uint96"
2982
- },
2983
- {
2984
- "internalType": "StateId",
2985
- "name": "newState",
2986
- "type": "uint8"
797
+ "internalType": "contract InstanceAdmin",
798
+ "name": "accessManager",
799
+ "type": "address"
2987
800
  }
2988
801
  ],
2989
- "name": "updateReferralState",
802
+ "name": "setInstanceAdmin",
2990
803
  "outputs": [],
2991
804
  "stateMutability": "nonpayable",
2992
805
  "type": "function"
@@ -2994,34 +807,12 @@
2994
807
  {
2995
808
  "inputs": [
2996
809
  {
2997
- "internalType": "RiskId",
2998
- "name": "riskId",
2999
- "type": "bytes8"
3000
- },
3001
- {
3002
- "components": [
3003
- {
3004
- "internalType": "NftId",
3005
- "name": "productNftId",
3006
- "type": "uint96"
3007
- },
3008
- {
3009
- "internalType": "bytes",
3010
- "name": "data",
3011
- "type": "bytes"
3012
- }
3013
- ],
3014
- "internalType": "struct IRisk.RiskInfo",
3015
- "name": "risk",
3016
- "type": "tuple"
3017
- },
3018
- {
3019
- "internalType": "StateId",
3020
- "name": "newState",
3021
- "type": "uint8"
810
+ "internalType": "contract InstanceReader",
811
+ "name": "instanceReader",
812
+ "type": "address"
3022
813
  }
3023
814
  ],
3024
- "name": "updateRisk",
815
+ "name": "setInstanceReader",
3025
816
  "outputs": [],
3026
817
  "stateMutability": "nonpayable",
3027
818
  "type": "function"
@@ -3029,40 +820,35 @@
3029
820
  {
3030
821
  "inputs": [
3031
822
  {
3032
- "internalType": "RiskId",
3033
- "name": "riskId",
3034
- "type": "bytes8"
3035
- },
3036
- {
3037
- "internalType": "StateId",
3038
- "name": "newState",
3039
- "type": "uint8"
823
+ "internalType": "contract InstanceStore",
824
+ "name": "instanceStore",
825
+ "type": "address"
3040
826
  }
3041
827
  ],
3042
- "name": "updateRiskState",
828
+ "name": "setInstanceStore",
3043
829
  "outputs": [],
3044
830
  "stateMutability": "nonpayable",
3045
831
  "type": "function"
3046
832
  },
3047
833
  {
3048
834
  "inputs": [
3049
- {
3050
- "internalType": "RoleId",
3051
- "name": "roleId",
3052
- "type": "uint64"
3053
- },
3054
835
  {
3055
836
  "internalType": "string",
3056
- "name": "name",
837
+ "name": "targetName",
3057
838
  "type": "string"
3058
839
  },
3059
840
  {
3060
- "internalType": "StateId",
3061
- "name": "newState",
3062
- "type": "uint8"
841
+ "internalType": "bytes4[]",
842
+ "name": "selectors",
843
+ "type": "bytes4[]"
844
+ },
845
+ {
846
+ "internalType": "RoleId",
847
+ "name": "roleId",
848
+ "type": "uint64"
3063
849
  }
3064
850
  ],
3065
- "name": "updateRole",
851
+ "name": "setTargetFunctionRole",
3066
852
  "outputs": [],
3067
853
  "stateMutability": "nonpayable",
3068
854
  "type": "function"
@@ -3070,388 +856,115 @@
3070
856
  {
3071
857
  "inputs": [
3072
858
  {
3073
- "internalType": "RoleId",
3074
- "name": "roleId",
3075
- "type": "uint64"
859
+ "internalType": "address",
860
+ "name": "target",
861
+ "type": "address"
3076
862
  },
3077
863
  {
3078
- "internalType": "StateId",
3079
- "name": "newState",
3080
- "type": "uint8"
864
+ "internalType": "bool",
865
+ "name": "locked",
866
+ "type": "bool"
3081
867
  }
3082
868
  ],
3083
- "name": "updateRoleState",
869
+ "name": "setTargetLocked",
3084
870
  "outputs": [],
3085
871
  "stateMutability": "nonpayable",
3086
872
  "type": "function"
3087
- }
3088
- ],
3089
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162006b0c38038062006b0c8339810160408190526200003491620016a2565b8262000040816200028b565b506200004b620002df565b6200005562000496565b6200005f620005d0565b620000696200083d565b6301ffc9a760e01b60005260046020527f9fe05126d2d9ecf60592e254dead906a4b2e492f36cca727682c38e9008c6ac1805460ff1916600117905560068054336001600160a01b031991821617909155600b80549091166001600160a01b0385161790556040516368aebf7b60e01b815260006004820152620001739073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af415801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a9190620016fc565b60408051808201909152600981526841646d696e526f6c6560b81b602082015260008062000984565b6040516368aebf7b60e01b81526001600160401b0360048201526200021f9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f59190620016fc565b60408051808201909152600a8152695075626c6963526f6c6560b01b602082015260008062000984565b62000246828260466000336040518060200160405280600081525062000a6a60201b60201c565b6342e19e5f60e01b60005260046020527f643d55d460d5a1aae86a570cc022b7d04a019a39b894c5b0832a60546fd6598d805460ff1916600117905550505062001a01565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60dc6000908152600160208190527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec805460ff19166064179055906002906200032660dc90565b60ff1660ff16815260200190815260200160002060006200034c62000b3b60201b60201c565b60ff1660ff16815260200190815260200160002060006200037262000b4060201b60201c565b60ff16815260208101919091526040016000908120805460ff191692151592909217909155600190600290620003a660dc90565b60ff1660ff1681526020019081526020016000206000620003cc62000b4060201b60201c565b60ff1660ff1681526020019081526020016000206000620003f262000b3b60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200042660dc90565b60ff1660ff16815260200190815260200160002060006200044c62000b4060201b60201c565b60ff1660ff16815260200190815260200160002060006200047262000b4560201b60201c565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f1bd07f61ef326b4de236f5b68f225f46ff76ee2c375ae31a06da201c49c70c128054606460ff1991821681179092557f879b65b464eb639409179c76c21acf6fbada740970e2300d47ea857d08cacd3c8054909116600190811790915560009182526002602052907f7673bcbb3401a7cbae68f81d40eea2cf35afdaf7ecd016ebf3f02857fcc1260a906200052a606e90565b60ff1660ff16815260200190815260200160002060006200055062000b3b60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019060029062000584606490565b60ff1660ff1681526020019081526020016000206000620005aa62000b4060201b60201c565b60ff1660ff16815260200190815260200160002060006200047262000b4a60201b60201c565b60d26000908152600160208190527fcfa08e49dd9e66a4af3cdf0c2ef56f411154768307cac6dc23ee77c0386825be805460ff1916600a179055906002906200061760d290565b60ff1660ff16815260200190815260200160002060006200063d62000b4f60201b60201c565b60ff1660ff16815260200190815260200160002060006200066362000b5460201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200069760d290565b60ff1660ff1681526020019081526020016000206000620006bd62000b4f60201b60201c565b60ff1660ff1681526020019081526020016000206000620006e362000b5960201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200071760d290565b60ff1660ff16815260200190815260200160002060006200073d62000b4f60201b60201c565b60ff1660ff16815260200190815260200160002060006200076362000b5e60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200079760d290565b60ff1660ff1681526020019081526020016000206000620007bd62000b5e60201b60201c565b60ff1660ff1681526020019081526020016000206000620007e362000b3b60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200081760d290565b60ff1660ff16815260200190815260200160002060006200044c62000b3b60201b60201c565b60c86000908152600160208190527f345f7c6c888721344af4147de0834159e0b302300ba13c4e7b6c0b60d8f2314e805460ff19166064179055906002906200088460c890565b60ff1660ff1681526020019081526020016000206000620008aa62000b3b60201b60201c565b60ff1660ff1681526020019081526020016000206000620008d062000b4060201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200090460c890565b60ff1660ff16815260200190815260200160002060006200092a62000b4060201b60201c565b60ff1660ff16815260200190815260200160002060006200095062000b3b60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200058460c890565b80156200099b576200099884848462000b63565b50505b6000620009aa85858562000df1565b8051600090815260076020526040812080546001600160401b0319166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a928302199093169102179055905062000a6362000a348662000e2d565b604080518451602080830191909152850151151581830152815180820383018152606090910190915262000eb5565b5050505050565b62000a76828762000ec5565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d01000000000000000000000000008615150217815590506001810162000af58382620017d3565b506303fb044760e21b60005260046020527f91a409085efa2cad9dad64790cb14ef1d9b61e9173e901d74242d27ef0ced4a1805460ff1916600117905550505050505050565b606490565b606e90565b60c890565b60d290565b600a90565b601490565b601e90565b602890565b6000808062000b728662000e2d565b905062000b7f8162000eeb565b9250821562000bb45762000b938162000f79565b80602001905181019062000ba89190620018b0565b60200151915062000bb8565b8391505b856001600160401b038116158062000bd857506001600160401b03818116145b1562000c075760405163981bf42160e01b81526001600160401b03881660048201526024015b60405180910390fd5b82801562000c1f57506127106001600160401b038216105b1562000c4a57604051633119b9df60e21b81526001600160401b038816600482015260240162000bfe565b82801562000c6357506127106001600160401b03821610155b1562000c8e5760405163094fb39160e01b81526001600160401b038816600482015260240162000bfe565b600062000c9b8762001026565b905062000ca88162001069565b60000362000cd5576040516321ab17ab60e01b81526001600160401b038916600482015260240162000bfe565b60008181526007602090815260409182902054825163bc1b392d60e01b8152925162000d7c936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af415801562000d44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d6a9190620016fc565b6001600160401b039081169116141590565b801562000da357506000818152600760205260409020546001600160401b03898116911614155b1562000de65760008181526007602052604090819020549051631660fb9360e21b81526001600160401b0390911660048201526024810182905260440162000bfe565b505050935093915050565b604080518082018252600080825260208201528151808301909252908062000e198562001026565b815260200183151581525090509392505050565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af415801562000e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eaf919062001909565b92915050565b62000ec1828262001092565b5050565b600680546001600160a01b0319166001600160a01b03841617905562000ec181620014ca565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af415801562000f53573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eaf919062001923565b600081815260036020526040902060010180546060919062000f9b9062001744565b80601f016020809104026020016040519081016040528092919081815260200182805462000fc99062001744565b80156200101a5780601f1062000fee576101008083540402835291602001916200101a565b820191906000526020600020905b81548152906001019060200180831162000ffc57829003601f168201915b50505050509050919050565b600080829050601f8151111562001054578260405163305a27a960e01b815260040162000bfe919062001941565b8051620010618262001991565b179392505050565b600060ff8216601f81111562000eaf57604051632cd44ac360e21b815260040160405180910390fd5b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015620010e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200110c9190620019b6565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af415801562001162573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001188919062001923565b620011d65760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e454400000000604482015260640162000bfe565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af415801562001240573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001266919062001923565b620012b45760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f43524541544544000000604482015260640162000bfe565b33436000620012c38562001637565b620012d0576064620012e6565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b919091021785556000888152600360205260409020909150600101620013728782620017d3565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015620013e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200140c9190620019b6565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156200145d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014839190620019db565b6040805160ff938416815260ff19929092166020830152918416818301526001600160a01b038616606082015232608082015290519081900360a00190a150505050505050565b6005546001600160a01b031615620015055760055460405163fcdbf2d960e01b81526001600160a01b03909116600482015260240162000bfe565b6001600160a01b0381166200152d5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003620015655760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000bfe565b600580546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263350fb35160e11b60048201526301ffc9a790602401602060405180830381865afa925050508015620015e2575060408051601f3d908101601f19168201909252620015df9181019062001923565b60015b6200160c5760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000bfe565b8062000ec15760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000bfe565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf9060240162000f35565b80516001600160a01b03811681146200169d57600080fd5b919050565b600080600060608486031215620016b857600080fd5b620016c38462001685565b9250620016d36020850162001685565b60408501519092506001600160601b0381168114620016f157600080fd5b809150509250925092565b6000602082840312156200170f57600080fd5b81516001600160401b03811681146200172757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200175957607f821691505b6020821081036200177a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620017ce57600081815260208120601f850160051c81016020861015620017a95750805b601f850160051c820191505b81811015620017ca57828155600101620017b5565b5050505b505050565b81516001600160401b03811115620017ef57620017ef6200172e565b620018078162001800845462001744565b8462001780565b602080601f8311600181146200183f5760008415620018265750858301515b600019600386901b1c1916600185901b178555620017ca565b600085815260208120601f198616915b8281101562001870578886015182559484019460019091019084016200184f565b50858210156200188f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805180151581146200169d57600080fd5b600060408284031215620018c357600080fd5b604080519081016001600160401b0381118282101715620018e857620018e86200172e565b60405282518152620018fd602084016200189f565b60208201529392505050565b6000602082840312156200191c57600080fd5b5051919050565b6000602082840312156200193657600080fd5b62001727826200189f565b600060208083528351808285015260005b81811015620019705785810183015185820160400152820162001952565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200177a5760001960209190910360031b1b16919050565b600060208284031215620019c957600080fd5b815160ff811681146200172757600080fd5b600060208284031215620019ee57600080fd5b815160ff19811681146200172757600080fd5b6150fb8062001a116000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c80637cef48421161024c578063b428b0b011610146578063d2f21a29116100c3578063e9e96c7011610087578063e9e96c7014610a81578063f48016ce14610abf578063f7bc431c14610ad2578063f8b648ac14610649578063fe1f18d614610ae557600080fd5b8063d2f21a2914610a48578063d5b221bd146105c3578063d78a83b114610a5b578063dee3262314610a6e578063e8951ee61461059557600080fd5b8063bd5947e31161010a578063bd5947e3146109fe578063bf1db3f914610a11578063bf7e214f14610a24578063c2f1a2d2146105c3578063cd50b97e14610a3557600080fd5b8063b428b0b0146109b2578063b68ec14614610649578063b7d2b162146109c5578063bc8d4000146109d8578063bd4fe04e146109eb57600080fd5b80638fb36037116101d45780639df0280b116101985780639df0280b14610595578063a13df2ab146108c8578063a5961b4c146108db578063a76ee0181461098c578063a89896751461099f57600080fd5b80638fb360371461085b578063950ad70b1461087c578063954fab2c1461088f5780639a960d52146108a25780639d7421f4146108b557600080fd5b80638793a9ac1161021b5780638793a9ac1461080d578063893d20e8146108205780638d4eae9d146108285780638dc77f42146105955780638eaa6ac01461083b57600080fd5b80637cef4842146107c757806382f65adb14610649578063835933c9146107da57806386f0c47b146107ed57600080fd5b8063384c9a57116103685780635d4345cc116102e557806373539127116102a9578063735391271461078657806375b238fc1461079957806375c82776146107a15780637a415802146105c35780637a9e5e4b146107b457600080fd5b80635d4345cc146105955780635dfa73db14610737578063644c45e01461074057806364c55d9c1461076b5780636fa298531461077e57600080fd5b806340529b0f1161032c57806340529b0f14610595578063468a1867146106e057806354f6127f146106f357806357f96805146107135780635ab1bd531461072657600080fd5b8063384c9a571461067957806338a699a41461068c578063392f5f641461069f5780633ca7c02a146106a75780633fd85561146106cd57600080fd5b8063138461e0116103f657806322f46b84116103ba57806322f46b84146106105780632f61088a1461062357806331d311a71461063657806333bb0a971461064957806337f135d71461065c57600080fd5b8063138461e0146105a8578063167bd395146105b05780631c45fe7a146105c35780631e23a2f5146105d65780631eff4b22146105e957600080fd5b80630b24cf5f1161043d5780630b24cf5f146105315780630d358181146105465780630f526f7d1461056c5780630fec111c1461057f57806310203d2c1461059557600080fd5b806301ffc9a71461046f57806302cd3071146104b157806303014974146104d657806309648a9d146104f7575b600080fd5b61049c61047d366004613754565b6001600160e01b03191660009081526004602052604090205460ff1690565b60405190151581526020015b60405180910390f35b600c546001600160a01b03165b6040516001600160a01b0390911681526020016104a8565b6104e96104e4366004613796565b610af8565b6040519081526020016104a8565b61051f6105053660046137b3565b600090815260036020526040902054610100900460ff1690565b60405160ff90911681526020016104a8565b61054461053f3660046139bd565b610b1f565b005b61051f610554366004613a02565b60ff9081166000908152600160205260409020541690565b61054461057a366004613a1f565b610b63565b610587610b80565b6040516104a8929190613aa8565b6105446105a3366004613a1f565b610d02565b610544610d17565b6105446105be366004613b4f565b610f39565b6105446105d1366004613ca5565b610fe1565b6105446105e4366004613d19565b611022565b6104e97f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b61054461061e366004613d7a565b611048565b610544610631366004613e44565b61105e565b6104e9610644366004613e89565b6110f9565b610544610657366004613ea6565b61118a565b610664600081565b60405163ffffffff90911681526020016104a8565b61049c610687366004613796565b6111b5565b61049c61069a3660046137b3565b61134b565b6009546104e9565b6106b56001600160401b0381565b6040516001600160401b0390911681526020016104a8565b6106b56106db3660046137b3565b6113d6565b6104e96106ee366004613f07565b61141b565b6107066107013660046137b3565b611478565b6040516104a89190613f24565b610544610721366004613fda565b61151d565b6005546001600160a01b03166104be565b6106b561271081565b600554600160a01b90046001600160601b03166040516001600160601b0390911681526020016104a8565b6105446107793660046140da565b611545565b6104be61156d565b610544610794366004614126565b61160f565b6106b5600081565b6105446107af366004614197565b611637565b6105446107c2366004613e89565b61165d565b6105446107d53660046141ef565b6116d3565b6104e96107e8366004613796565b61175d565b6108006107fb366004613796565b6117a0565b6040516104a8919061420d565b61054461081b366004614226565b611845565b6104be61185a565b6105446108363660046142e5565b611937565b61084e6108493660046137b3565b61195d565b6040516104a89190614374565b610863611a9e565b6040516001600160e01b031990911681526020016104a8565b61054461088a3660046143a8565b611ac2565b61054461089d366004614400565b611b24565b6105446108b036600461459e565b611b4a565b6105446108c33660046145e5565b611b70565b6104e96108d6366004613f07565b611b96565b61097f6108e93660046137b3565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260036020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b6040516104a8919061463c565b61054461099a36600461464a565b611bc3565b6105446109ad366004614691565b611c5e565b61049c6109c03660046146d1565b611d4f565b61049c6109d33660046146d1565b611f43565b6105446109e63660046146ff565b6120ce565b6105446109f9366004614744565b6120f4565b610544610a0c366004614785565b61211c565b61049c610a1f366004613a02565b612144565b6000546001600160a01b03166104be565b610544610a43366004613d7a565b612191565b610544610a56366004613a1f565b6121a8565b6104be610a693660046147c5565b6121bf565b610544610a7c366004613a1f565b6121e8565b61049c610a8f366004614691565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b6104e9610acd366004614801565b6121ff565b610544610ae0366004613e89565b612283565b610544610af3366004613a1f565b6122ff565b6001600160401b0381166000908152600860205260408120610b1990612314565b92915050565b610b2c335b60003661231e565b610b5f610b3a836078612417565b82604051602001610b4b919061482f565b604051602081830303815290604052612463565b5050565b610b6c33610b24565b610b5f610b7a83608c612417565b8261246d565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610c036005546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c4b61185a565b6001600160a01b03168152602001826001018054610c689061488f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c949061488f565b8015610ce15780601f10610cb657610100808354040283529160200191610ce1565b820191906000526020600020905b815481529060010190602001808311610cc457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b610d0b33610b24565b610b5f610b7a8361141b565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9d91906148c9565b15610de4576005546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6005546001600160a01b0316610e0d5760405163cf29926160e01b815260040160405180910390fd5b60055460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7a91906148c9565b610ea2576040516372657a5160e01b81526001600160a01b0382166004820152602401610ddb565b600554604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1091906148e6565b600560146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610f4233610b24565b610f4e61069a836110f9565b610f76576040516325b6f39560e21b81526001600160a01b0383166004820152602401610ddb565b600b5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd39590604401600060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505050505050565b610fea33610b24565b61101c610ff68561141b565b836040516020016110079190614903565b60405160208183030381529060405283612477565b50505050565b61102b33610b24565b610b5f611037836110f9565b82604051602001610b4b919061420d565b61105133610b24565b610b5f8282600180612482565b61106733610b24565b6040516355ee627560e01b81526001600160c01b031983166004820152610b5f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af41580156110c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e89190614956565b82604051602001610b4b919061496f565b604051637a400b6760e11b8152601e6004820152606082901b6bffffffffffffffffffffffff1916602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015611166573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190614956565b61119333610b24565b6111b061119f8461141b565b82604051602001610b4b9190614903565b505050565b600033816111c28461175d565b90506111cd8161134b565b6111f457604051627a416f60e01b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611216908361252b565b1561134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063fe0776f59073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b5050506001600160401b038516600090815260086020526040902061133691508361254d565b506001949350505050565b5060009392505050565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156113b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1991906148c9565b6000600982815481106113eb576113eb6149ba565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d25b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401611149565b60008181526003602052604090206001018054606091906114989061488f565b80601f01602080910402602001604051908101604052809291908181526020018280546114c49061488f565b80156115115780601f106114e657610100808354040283529160200191611511565b820191906000526020600020905b8154815290600101906020018083116114f457829003601f168201915b50505050509050919050565b61152633610b24565b610b5f61153483608c612417565b82604051602001610b4b91906149d0565b61154e33610b24565b6111b061155c84606e612417565b836040516020016110079190614a73565b6005546040805163a3bcd81d60e01b815260048101919091526015604482015274436f6d706f6e656e744f776e65725365727669636560581b6064820152600360248201526000916001600160a01b03169063a3bcd81d906084015b602060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190614b75565b905090565b61161833610b24565b610b5f61162683606e612417565b82604051602001610b4b9190614a73565b61164033610b24565b61101c61164c8561141b565b836040516020016110079190614b92565b60005433906001600160a01b031681146116945760405162d1953b60e31b81526001600160a01b0382166004820152602401610ddb565b816001600160a01b03163b6000036116ca576040516361798f2f60e11b81526001600160a01b0383166004820152602401610ddb565b610b5f82612562565b6116dc33610b24565b6040516355ee627560e01b81526001600160c01b031983166004820152610b5f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611739573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190614956565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401611149565b604080518082018252600080825260208201529051630f37f38f60e41b81526001600160401b03831660048201526118329073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af415801561180e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190614956565b806020019051810190610b199190614bc2565b61184e33610b24565b610b5f610b7a8361175d565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156118bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e391906148c9565b1561192757600554604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a906024016115c9565b506006546001600160a01b031690565b61194033610b24565b610b5f61194c83611b96565b82604051602001610b4b9190614bfa565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260036020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191611a159061488f565b80601f0160208091040260200160405190810160405280929190818152602001828054611a419061488f565b8015611a8e5780601f10611a6357610100808354040283529160200191611a8e565b820191906000526020600020905b815481529060010190602001808311611a7157829003601f168201915b5050505050815250509050919050565b60008054600160a01b900460ff16611ab65750600090565b50638fb3603760e01b90565b611acb33610b24565b6000611ad9848460006125b6565b5090506000611ae9858584612821565b9050611b1d611af78661175d565b82604051602001611b08919061420d565b60405160208183030381529060405285612477565b5050505050565b611b2d33610b24565b6111b0611b3984611b96565b836040516020016110079190614bfa565b611b5333610b24565b6111b0611b5f8461141b565b836040516020016110079190614c9f565b611b7933610b24565b6111b0611b858461141b565b82604051602001610b4b9190614b92565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc611444565b611bcc33610b24565b6040516355ee627560e01b81526001600160c01b0319841660048201526111b09073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4d9190614956565b83604051602001611007919061496f565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce791906148c9565b15611cf157505050565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111b057604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610ddb565b6000611d5a33610b24565b6000611d658461175d565b9050611d708161134b565b611d9857604051636777365b60e01b81526001600160401b0385166004820152602401610ddb565b600081815260036020526040902054611dc790610100900460ff16611dbb606490565b60ff9081169116141590565b15611df05760405163fe229d5d60e01b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611e12908461252b565b61134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea7919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038616602482015260006044820152606401600060405180830381600087803b158015611efe57600080fd5b505af1158015611f12573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020611f3891508461285d565b506001915050610b19565b6000611f4e33610b24565b6000611f598461175d565b9050611f648161134b565b611f8c57604051634cee277360e11b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611fae908461252b565b1561134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612020573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612044919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0386166024820152604401600060405180830381600087803b15801561209457600080fd5b505af11580156120a8573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020611f3891508461254d565b6120d733610b24565b610b5f6120e38361141b565b82604051602001610b4b9190614c9f565b6120fd33610b24565b6111b061210b84608c612417565b8360405160200161100791906149d0565b61212533610b24565b6111b0612133846078612417565b83604051602001611007919061482f565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401611395565b61219a33610b24565b610b5f828260006001612482565b6121b133610b24565b610b5f610b7a836078612417565b6001600160401b03821660009081526008602052604081206121e19083612872565b9392505050565b6121f133610b24565b610b5f610b7a83606e612417565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af415801561225f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e19190614956565b61228c33610b24565b600c546001600160a01b0316156122dd5760405162461bcd60e51b8152602060048201526015602482015274125b9cdd185b98d954995859195c881a5cc81cd95d605a1b6044820152606401610ddb565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61230833610b24565b610b5f610b7a83611b96565b6000610b19825490565b6000806123546123366000546001600160a01b031690565b863061234660046000898b614df6565b61234f91614e20565b61287e565b9150915081611b1d5763ffffffff8116156123f4576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906123af90889088908890600401614e50565b600060405180830381600087803b1580156123c957600080fd5b505af11580156123dd573d6000803e3d6000fd5b50506000805460ff60a01b1916905550611b1d9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610ddb565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401612242565b610b5f828261298a565b610b5f8282612dac565b6111b08383836130e0565b8015612496576124938484846125b6565b50505b60006124a3858585612821565b80516000908152600760205260408120805467ffffffffffffffff19166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a9283021990931691021790559050611b1d6110378661175d565b6001600160a01b038116600090815260018301602052604081205415156121e1565b60006121e1836001600160a01b03841661357b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60008060006125c48661175d565b90506125cf8161134b565b925082156125fe576125e081611478565b8060200190518101906125f39190614bc2565b602001519150612602565b8391505b856001600160401b038116158061262157506001600160401b03818116145b1561264a5760405163981bf42160e01b81526001600160401b0388166004820152602401610ddb565b82801561266157506127106001600160401b038216105b1561268a57604051633119b9df60e21b81526001600160401b0388166004820152602401610ddb565b8280156126a257506127106001600160401b03821610155b156126cb5760405163094fb39160e01b81526001600160401b0388166004820152602401610ddb565b60006126d687613675565b90506126e1816136b3565b60000361270c576040516321ab17ab60e01b81526001600160401b0389166004820152602401610ddb565b60008181526007602090815260409182902054825163bc1b392d60e01b815292516127af936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d919061499d565b6001600160401b039081169116141590565b80156127d557506000818152600760205260409020546001600160401b03898116911614155b156128165760008181526007602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610ddb565b505050935093915050565b6040805180820190915260008082526020820152604051806040016040528061284985613675565b815260200183151581525090509392505050565b60006121e1836001600160a01b0384166136db565b60006121e1838361372a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516128ed9190614e90565b600060405180830381855afa9150503d8060008114612928576040519150601f19603f3d011682016040523d82523d6000602084013e61292d565b606091505b5091509150811561297f57604081511061295f57808060200190518101906129559190614eac565b909450925061297f565b602081511061297f578080602001905181019061297c91906148c9565b93505b505094509492505050565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af41580156129dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a019190614edb565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015612a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7a91906148c9565b612ac65760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610ddb565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5391906148c9565b612b9f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610ddb565b33436000612bac85612144565b612bb7576064612bcd565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b919091021785556000888152600360205260409020909150600101612c578782614f3e565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cee9190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015612d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d629190614ffd565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015612dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2291906148c9565b612e6e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610ddb565b600082815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015612eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efe91906148c9565b612f4a5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610ddb565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416612f8e4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130449190614edb565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190614ffd565b87868632876040516130d0979695949392919061501a565b60405180910390a1505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015613132573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315691906148c9565b6131a25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610ddb565b600083815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af415801561320e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323291906148c9565b61327e5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610ddb565b60008581526003602052604090206001016132998582614f3e565b508154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b909104166132de4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133949190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156133e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134089190614ffd565b8786863287604051613420979695949392919061501a565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561349a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134be9190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af415801561350e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135329190614ffd565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c001612d9b565b6000818152600183016020526040812054801561366457600061359f60018361506a565b85549091506000906135b39060019061506a565b90508082146136185760008660000182815481106135d3576135d36149ba565b90600052602060002001549050808760000184815481106135f6576135f66149ba565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806136295761362961508b565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b19565b6000915050610b19565b5092915050565b600080829050601f815111156136a0578260405163305a27a960e01b8152600401610ddb9190613f24565b80516136ab826150a1565b179392505050565b600060ff8216601f811115610b1957604051632cd44ac360e21b815260040160405180910390fd5b600081815260018301602052604081205461372257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b19565b506000610b19565b6000826000018281548110613741576137416149ba565b9060005260206000200154905092915050565b60006020828403121561376657600080fd5b81356001600160e01b0319811681146121e157600080fd5b6001600160401b038116811461379357600080fd5b50565b6000602082840312156137a857600080fd5b81356121e18161377e565b6000602082840312156137c557600080fd5b5035919050565b6001600160601b038116811461379357600080fd5b80356137ec816137cc565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613829576138296137f1565b60405290565b604051608081016001600160401b0381118282101715613829576138296137f1565b60405161010081016001600160401b0381118282101715613829576138296137f1565b60405161014081016001600160401b0381118282101715613829576138296137f1565b60405161020081016001600160401b0381118282101715613829576138296137f1565b6001600160a01b038116811461379357600080fd5b80356137ec816138ba565b6000604082840312156138ec57600080fd5b6138f4613807565b9050813581526020820135602082015292915050565b801515811461379357600080fd5b80356137ec8161390a565b600060c0828403121561393557600080fd5b60405160a081018181106001600160401b0382111715613957576139576137f1565b6040529050808235613968816137cc565b81526020830135613978816138ba565b602082015261398a84604085016138da565b6040820152608083013561399d8161390a565b606082015260a08301356139b0816138ba565b6080919091015292915050565b60008060e083850312156139d057600080fd5b82356139db816137cc565b91506139ea8460208501613923565b90509250929050565b60ff8116811461379357600080fd5b600060208284031215613a1457600080fd5b81356121e1816139f3565b60008060408385031215613a3257600080fd5b8235613a3d816137cc565b91506020830135613a4d816139f3565b809150509250929050565b60005b83811015613a73578181015183820152602001613a5b565b50506000910152565b60008151808452613a94816020860160208601613a58565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff60408501511660808301526060840151613aec60a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e0610100840152613b32610120840182613a7c565b90508281036020840152613b468185613a7c565b95945050505050565b60008060408385031215613b6257600080fd5b8235613b6d816138ba565b91506020830135613a4d8161390a565b63ffffffff8116811461379357600080fd5b600082601f830112613ba057600080fd5b81356001600160401b0380821115613bba57613bba6137f1565b604051601f8301601f19908116603f01168101908282118183101715613be257613be26137f1565b81604052838152866020858801011115613bfb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803564ffffffffff811681146137ec57600080fd5b600060808284031215613c4257600080fd5b613c4a61382f565b90508135613c5781613b7d565b81526020828101359082015260408201356001600160401b03811115613c7c57600080fd5b613c8884828501613b8f565b604083015250613c9a60608301613c1b565b606082015292915050565b60008060008060808587031215613cbb57600080fd5b8435613cc6816137cc565b93506020850135613cd681613b7d565b925060408501356001600160401b03811115613cf157600080fd5b613cfd87828801613c30565b9250506060850135613d0e816139f3565b939692955090935050565b6000808284036060811215613d2d57600080fd5b8335613d38816138ba565b92506040601f1982011215613d4c57600080fd5b50613d55613807565b602084013581526040840135613d6a8161390a565b6020820152919491935090915050565b60008060408385031215613d8d57600080fd5b8235613d988161377e565b915060208301356001600160401b03811115613db357600080fd5b613dbf85828601613b8f565b9150509250929050565b6001600160c01b03198116811461379357600080fd5b80356137ec81613dc9565b600060408284031215613dfc57600080fd5b613e04613807565b90508135613e11816137cc565b815260208201356001600160401b03811115613e2c57600080fd5b613e3884828501613b8f565b60208301525092915050565b60008060408385031215613e5757600080fd5b8235613e6281613dc9565b915060208301356001600160401b03811115613e7d57600080fd5b613dbf85828601613dea565b600060208284031215613e9b57600080fd5b81356121e1816138ba565b600080600060608486031215613ebb57600080fd5b8335613ec6816137cc565b92506020840135613ed681613b7d565b915060408401356001600160401b03811115613ef157600080fd5b613efd86828701613c30565b9150509250925092565b600060208284031215613f1957600080fd5b81356121e1816137cc565b6020815260006121e16020830184613a7c565b60006101608284031215613f4a57600080fd5b613f52613851565b9050613f5d826137e1565b8152613f6b602083016138cf565b602082015260408201356040820152613f8783606084016138da565b6060820152613f998360a084016138da565b6080820152613fab8360e084016138da565b60a0820152613fbd6101208301613918565b60c0820152613fcf61014083016138cf565b60e082015292915050565b6000806101808385031215613fee57600080fd5b8235613ff9816137cc565b91506139ea8460208501613f37565b6000610200828403121561401b57600080fd5b614023613874565b905061402e826138cf565b815261403c602083016138cf565b602082015261404d604083016137e1565b604082015261405e606083016137e1565b606082015261407083608084016138da565b60808201526140828360c084016138da565b60a0820152610100614096848285016138da565b60c08301526140a98461014085016138da565b60e08301526140bc8461018085016138da565b908201526140ce836101c084016138da565b61012082015292915050565b600080600061024084860312156140f057600080fd5b83356140fb816137cc565b925061410a8560208601614008565b915061022084013561411b816139f3565b809150509250925092565b600080610220838503121561413a57600080fd5b8235614145816137cc565b91506139ea8460208501614008565b60006080828403121561416657600080fd5b61416e61382f565b9050813581526020820135602082015260408201356001600160401b03811115613c7c57600080fd5b600080600080608085870312156141ad57600080fd5b84356141b8816137cc565b935060208501356141c881613b7d565b925060408501356001600160401b038111156141e357600080fd5b613cfd87828801614154565b6000806040838503121561420257600080fd5b8235613a3d81613dc9565b8151815260208083015115159082015260408101610b19565b6000806040838503121561423957600080fd5b8235613a3d8161377e565b6000610120828403121561425757600080fd5b61425f613851565b905061426a826137e1565b815261427983602084016138da565b602082015260608201356001600160401b0381111561429757600080fd5b6142a384828501613b8f565b6040830152506080820135606082015260a0820135608082015260c082013560a08201526142d360e08301613c1b565b60c0820152613fcf6101008301613c1b565b600080604083850312156142f857600080fd5b8235614303816137cc565b915060208301356001600160401b0381111561431e57600080fd5b613dbf85828601614244565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b6020815261438660208201835161432a565b6000602083015160c0808401526143a060e0840182613a7c565b949350505050565b6000806000606084860312156143bd57600080fd5b83356143c88161377e565b925060208401356001600160401b038111156143e357600080fd5b6143ef86828701613b8f565b925050604084013561411b816139f3565b60008060006060848603121561441557600080fd5b8335614420816137cc565b925060208401356001600160401b0381111561443b57600080fd5b6143ef86828701614244565b803561ffff811681146137ec57600080fd5b6000610200828403121561446c57600080fd5b614474613897565b905061447f826137e1565b815261448d602083016137e1565b602082015261449e60408301613ddf565b60408201526144af60608301613ddf565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b03808211156144f857600080fd5b61450486838701613b8f565b8385015261012092508285013591508082111561452057600080fd5b5061452d85828601613b8f565b828401525050610140614541818401614447565b90820152610160614553838201614447565b9082015261018082810135908201526101a0614570818401613c1b565b908201526101c0614582838201613c1b565b908201526101e0614594838201613c1b565b9082015292915050565b6000806000606084860312156145b357600080fd5b83356145be816137cc565b925060208401356001600160401b038111156145d957600080fd5b6143ef86828701614459565b6000806000606084860312156145fa57600080fd5b8335614605816137cc565b9250602084013561461581613b7d565b915060408401356001600160401b0381111561463057600080fd5b613efd86828701614154565b60a08101610b19828461432a565b60008060006060848603121561465f57600080fd5b833561466a81613dc9565b925060208401356001600160401b0381111561468557600080fd5b6143ef86828701613dea565b6000806000606084860312156146a657600080fd5b83356146b1816139f3565b925060208401356146c1816139f3565b9150604084013561411b816139f3565b600080604083850312156146e457600080fd5b82356146ef8161377e565b91506020830135613a4d816138ba565b6000806040838503121561471257600080fd5b823561471d816137cc565b915060208301356001600160401b0381111561473857600080fd5b613dbf85828601614459565b60008060006101a0848603121561475a57600080fd5b8335614765816137cc565b92506147748560208601613f37565b915061018084013561411b816139f3565b6000806000610100848603121561479b57600080fd5b83356147a6816137cc565b92506147b58560208601613923565b915060e084013561411b816139f3565b600080604083850312156147d857600080fd5b82356147e38161377e565b946020939093013593505050565b60ff198116811461379357600080fd5b6000806040838503121561481457600080fd5b823561481f816139f3565b91506020830135613a4d816147f1565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015260c0830191906060850151151560808501528060808601511660a0850152505092915050565b600181811c908216806148a357607f821691505b6020821081036148c357634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156148db57600080fd5b81516121e18161390a565b6000602082840312156148f857600080fd5b81516121e1816137cc565b6020815263ffffffff825116602082015260208201516040820152600060408301516080606084015261493960a0840182613a7c565b905064ffffffffff60608501511660808401528091505092915050565b60006020828403121561496857600080fd5b5051919050565b602081526001600160601b038251166020820152600060208301516040808401526143a06060840182613a7c565b6000602082840312156149af57600080fd5b81516121e18161377e565b634e487b7160e01b600052603260045260246000fd5b81516001600160601b031681526020808301516001600160a01b03169082015260408083015190820152606080830151610160830191614a1c9084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151151561012083015260e08301516001600160a01b03811661014084015261366e565b81516001600160a01b0316815261020081016020830151614a9f60208401826001600160a01b03169052565b506040830151614aba60408401826001600160601b03169052565b506060830151614ad560608401826001600160601b03169052565b506080830151614af2608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c0830151610100614b288185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e0850152905061366e565b600060208284031215614b8757600080fd5b81516121e1816138ba565b602081528151602082015260208201516040820152600060408301516080606084015261493960a0840182613a7c565b600060408284031215614bd457600080fd5b614bdc613807565b825181526020830151614bee8161390a565b60208201529392505050565b602081526001600160601b03825116602082015260006020830151614c2c604084018280518252602090810151910152565b506040830151610120806080850152614c49610140850183613a7c565b9150606085015160a0850152608085015160c085015260a085015160e085015260c0850151614c8261010086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b60208152614cb96020820183516001600160601b03169052565b60006020830151614cd560408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506102006101208181860152614d4d610220860184613a7c565b9250808601519050610140601f198685030181870152614d6d8483613a7c565b935080870151915050610160614d888187018361ffff169052565b8601519050610180614d9f8682018361ffff169052565b8601516101a08681019190915286015190506101c0614dc68187018364ffffffffff169052565b86015190506101e0614de08682018364ffffffffff169052565b86015164ffffffffff8116838701529050614c95565b60008085851115614e0657600080fd5b83861115614e1357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015614e485780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251614ea2818460208701613a58565b9190910192915050565b60008060408385031215614ebf57600080fd5b8251614eca8161390a565b6020840151909250613a4d81613b7d565b600060208284031215614eed57600080fd5b81516121e1816139f3565b601f8211156111b057600081815260208120601f850160051c81016020861015614f1f5750805b601f850160051c820191505b81811015610fd957828155600101614f2b565b81516001600160401b03811115614f5757614f576137f1565b614f6b81614f65845461488f565b84614ef8565b602080601f831160018114614fa05760008415614f885750858301515b600019600386901b1c1916600185901b178555610fd9565b600085815260208120601f198616915b82811015614fcf57888601518255948401946001909101908401614fb0565b5085821015614fed5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561500f57600080fd5b81516121e1816147f1565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b81810381811115610b1957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b805160208083015191908110156148c35760001960209190910360031b1b1691905056fea26469706673582212209ba41bfa289c5b04a620358cf09da995949cb91983da35cd051118bc8a627dc164736f6c63430008140033",
3090
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061046a5760003560e01c80637cef48421161024c578063b428b0b011610146578063d2f21a29116100c3578063e9e96c7011610087578063e9e96c7014610a81578063f48016ce14610abf578063f7bc431c14610ad2578063f8b648ac14610649578063fe1f18d614610ae557600080fd5b8063d2f21a2914610a48578063d5b221bd146105c3578063d78a83b114610a5b578063dee3262314610a6e578063e8951ee61461059557600080fd5b8063bd5947e31161010a578063bd5947e3146109fe578063bf1db3f914610a11578063bf7e214f14610a24578063c2f1a2d2146105c3578063cd50b97e14610a3557600080fd5b8063b428b0b0146109b2578063b68ec14614610649578063b7d2b162146109c5578063bc8d4000146109d8578063bd4fe04e146109eb57600080fd5b80638fb36037116101d45780639df0280b116101985780639df0280b14610595578063a13df2ab146108c8578063a5961b4c146108db578063a76ee0181461098c578063a89896751461099f57600080fd5b80638fb360371461085b578063950ad70b1461087c578063954fab2c1461088f5780639a960d52146108a25780639d7421f4146108b557600080fd5b80638793a9ac1161021b5780638793a9ac1461080d578063893d20e8146108205780638d4eae9d146108285780638dc77f42146105955780638eaa6ac01461083b57600080fd5b80637cef4842146107c757806382f65adb14610649578063835933c9146107da57806386f0c47b146107ed57600080fd5b8063384c9a57116103685780635d4345cc116102e557806373539127116102a9578063735391271461078657806375b238fc1461079957806375c82776146107a15780637a415802146105c35780637a9e5e4b146107b457600080fd5b80635d4345cc146105955780635dfa73db14610737578063644c45e01461074057806364c55d9c1461076b5780636fa298531461077e57600080fd5b806340529b0f1161032c57806340529b0f14610595578063468a1867146106e057806354f6127f146106f357806357f96805146107135780635ab1bd531461072657600080fd5b8063384c9a571461067957806338a699a41461068c578063392f5f641461069f5780633ca7c02a146106a75780633fd85561146106cd57600080fd5b8063138461e0116103f657806322f46b84116103ba57806322f46b84146106105780632f61088a1461062357806331d311a71461063657806333bb0a971461064957806337f135d71461065c57600080fd5b8063138461e0146105a8578063167bd395146105b05780631c45fe7a146105c35780631e23a2f5146105d65780631eff4b22146105e957600080fd5b80630b24cf5f1161043d5780630b24cf5f146105315780630d358181146105465780630f526f7d1461056c5780630fec111c1461057f57806310203d2c1461059557600080fd5b806301ffc9a71461046f57806302cd3071146104b157806303014974146104d657806309648a9d146104f7575b600080fd5b61049c61047d366004613754565b6001600160e01b03191660009081526004602052604090205460ff1690565b60405190151581526020015b60405180910390f35b600c546001600160a01b03165b6040516001600160a01b0390911681526020016104a8565b6104e96104e4366004613796565b610af8565b6040519081526020016104a8565b61051f6105053660046137b3565b600090815260036020526040902054610100900460ff1690565b60405160ff90911681526020016104a8565b61054461053f3660046139bd565b610b1f565b005b61051f610554366004613a02565b60ff9081166000908152600160205260409020541690565b61054461057a366004613a1f565b610b63565b610587610b80565b6040516104a8929190613aa8565b6105446105a3366004613a1f565b610d02565b610544610d17565b6105446105be366004613b4f565b610f39565b6105446105d1366004613ca5565b610fe1565b6105446105e4366004613d19565b611022565b6104e97f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b61054461061e366004613d7a565b611048565b610544610631366004613e44565b61105e565b6104e9610644366004613e89565b6110f9565b610544610657366004613ea6565b61118a565b610664600081565b60405163ffffffff90911681526020016104a8565b61049c610687366004613796565b6111b5565b61049c61069a3660046137b3565b61134b565b6009546104e9565b6106b56001600160401b0381565b6040516001600160401b0390911681526020016104a8565b6106b56106db3660046137b3565b6113d6565b6104e96106ee366004613f07565b61141b565b6107066107013660046137b3565b611478565b6040516104a89190613f24565b610544610721366004613fda565b61151d565b6005546001600160a01b03166104be565b6106b561271081565b600554600160a01b90046001600160601b03166040516001600160601b0390911681526020016104a8565b6105446107793660046140da565b611545565b6104be61156d565b610544610794366004614126565b61160f565b6106b5600081565b6105446107af366004614197565b611637565b6105446107c2366004613e89565b61165d565b6105446107d53660046141ef565b6116d3565b6104e96107e8366004613796565b61175d565b6108006107fb366004613796565b6117a0565b6040516104a8919061420d565b61054461081b366004614226565b611845565b6104be61185a565b6105446108363660046142e5565b611937565b61084e6108493660046137b3565b61195d565b6040516104a89190614374565b610863611a9e565b6040516001600160e01b031990911681526020016104a8565b61054461088a3660046143a8565b611ac2565b61054461089d366004614400565b611b24565b6105446108b036600461459e565b611b4a565b6105446108c33660046145e5565b611b70565b6104e96108d6366004613f07565b611b96565b61097f6108e93660046137b3565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260036020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b6040516104a8919061463c565b61054461099a36600461464a565b611bc3565b6105446109ad366004614691565b611c5e565b61049c6109c03660046146d1565b611d4f565b61049c6109d33660046146d1565b611f43565b6105446109e63660046146ff565b6120ce565b6105446109f9366004614744565b6120f4565b610544610a0c366004614785565b61211c565b61049c610a1f366004613a02565b612144565b6000546001600160a01b03166104be565b610544610a43366004613d7a565b612191565b610544610a56366004613a1f565b6121a8565b6104be610a693660046147c5565b6121bf565b610544610a7c366004613a1f565b6121e8565b61049c610a8f366004614691565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b6104e9610acd366004614801565b6121ff565b610544610ae0366004613e89565b612283565b610544610af3366004613a1f565b6122ff565b6001600160401b0381166000908152600860205260408120610b1990612314565b92915050565b610b2c335b60003661231e565b610b5f610b3a836078612417565b82604051602001610b4b919061482f565b604051602081830303815290604052612463565b5050565b610b6c33610b24565b610b5f610b7a83608c612417565b8261246d565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610c036005546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c4b61185a565b6001600160a01b03168152602001826001018054610c689061488f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c949061488f565b8015610ce15780601f10610cb657610100808354040283529160200191610ce1565b820191906000526020600020905b815481529060010190602001808311610cc457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b610d0b33610b24565b610b5f610b7a8361141b565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9d91906148c9565b15610de4576005546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6005546001600160a01b0316610e0d5760405163cf29926160e01b815260040160405180910390fd5b60055460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7a91906148c9565b610ea2576040516372657a5160e01b81526001600160a01b0382166004820152602401610ddb565b600554604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1091906148e6565b600560146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610f4233610b24565b610f4e61069a836110f9565b610f76576040516325b6f39560e21b81526001600160a01b0383166004820152602401610ddb565b600b5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd39590604401600060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505050505050565b610fea33610b24565b61101c610ff68561141b565b836040516020016110079190614903565b60405160208183030381529060405283612477565b50505050565b61102b33610b24565b610b5f611037836110f9565b82604051602001610b4b919061420d565b61105133610b24565b610b5f8282600180612482565b61106733610b24565b6040516355ee627560e01b81526001600160c01b031983166004820152610b5f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af41580156110c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e89190614956565b82604051602001610b4b919061496f565b604051637a400b6760e11b8152601e6004820152606082901b6bffffffffffffffffffffffff1916602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015611166573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190614956565b61119333610b24565b6111b061119f8461141b565b82604051602001610b4b9190614903565b505050565b600033816111c28461175d565b90506111cd8161134b565b6111f457604051627a416f60e01b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611216908361252b565b1561134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063fe0776f59073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b1580156112fc57600080fd5b505af1158015611310573d6000803e3d6000fd5b5050506001600160401b038516600090815260086020526040902061133691508361254d565b506001949350505050565b5060009392505050565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156113b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1991906148c9565b6000600982815481106113eb576113eb6149ba565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d25b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401611149565b60008181526003602052604090206001018054606091906114989061488f565b80601f01602080910402602001604051908101604052809291908181526020018280546114c49061488f565b80156115115780601f106114e657610100808354040283529160200191611511565b820191906000526020600020905b8154815290600101906020018083116114f457829003601f168201915b50505050509050919050565b61152633610b24565b610b5f61153483608c612417565b82604051602001610b4b91906149d0565b61154e33610b24565b6111b061155c84606e612417565b836040516020016110079190614a73565b6005546040805163a3bcd81d60e01b815260048101919091526015604482015274436f6d706f6e656e744f776e65725365727669636560581b6064820152600360248201526000916001600160a01b03169063a3bcd81d906084015b602060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190614b75565b905090565b61161833610b24565b610b5f61162683606e612417565b82604051602001610b4b9190614a73565b61164033610b24565b61101c61164c8561141b565b836040516020016110079190614b92565b60005433906001600160a01b031681146116945760405162d1953b60e31b81526001600160a01b0382166004820152602401610ddb565b816001600160a01b03163b6000036116ca576040516361798f2f60e11b81526001600160a01b0383166004820152602401610ddb565b610b5f82612562565b6116dc33610b24565b6040516355ee627560e01b81526001600160c01b031983166004820152610b5f9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611739573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7a9190614956565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401611149565b604080518082018252600080825260208201529051630f37f38f60e41b81526001600160401b03831660048201526118329073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af415801561180e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190614956565b806020019051810190610b199190614bc2565b61184e33610b24565b610b5f610b7a8361175d565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156118bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e391906148c9565b1561192757600554604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a906024016115c9565b506006546001600160a01b031690565b61194033610b24565b610b5f61194c83611b96565b82604051602001610b4b9190614bfa565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260036020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191611a159061488f565b80601f0160208091040260200160405190810160405280929190818152602001828054611a419061488f565b8015611a8e5780601f10611a6357610100808354040283529160200191611a8e565b820191906000526020600020905b815481529060010190602001808311611a7157829003601f168201915b5050505050815250509050919050565b60008054600160a01b900460ff16611ab65750600090565b50638fb3603760e01b90565b611acb33610b24565b6000611ad9848460006125b6565b5090506000611ae9858584612821565b9050611b1d611af78661175d565b82604051602001611b08919061420d565b60405160208183030381529060405285612477565b5050505050565b611b2d33610b24565b6111b0611b3984611b96565b836040516020016110079190614bfa565b611b5333610b24565b6111b0611b5f8461141b565b836040516020016110079190614c9f565b611b7933610b24565b6111b0611b858461141b565b82604051602001610b4b9190614b92565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc611444565b611bcc33610b24565b6040516355ee627560e01b81526001600160c01b0319841660048201526111b09073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4d9190614956565b83604051602001611007919061496f565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce791906148c9565b15611cf157505050565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111b057604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610ddb565b6000611d5a33610b24565b6000611d658461175d565b9050611d708161134b565b611d9857604051636777365b60e01b81526001600160401b0385166004820152602401610ddb565b600081815260036020526040902054611dc790610100900460ff16611dbb606490565b60ff9081169116141590565b15611df05760405163fe229d5d60e01b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611e12908461252b565b61134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea7919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038616602482015260006044820152606401600060405180830381600087803b158015611efe57600080fd5b505af1158015611f12573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020611f3891508461285d565b506001915050610b19565b6000611f4e33610b24565b6000611f598461175d565b9050611f648161134b565b611f8c57604051634cee277360e11b81526001600160401b0385166004820152602401610ddb565b6001600160401b0384166000908152600860205260409020611fae908461252b565b1561134157600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612020573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612044919061499d565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0386166024820152604401600060405180830381600087803b15801561209457600080fd5b505af11580156120a8573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020611f3891508461254d565b6120d733610b24565b610b5f6120e38361141b565b82604051602001610b4b9190614c9f565b6120fd33610b24565b6111b061210b84608c612417565b8360405160200161100791906149d0565b61212533610b24565b6111b0612133846078612417565b83604051602001611007919061482f565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401611395565b61219a33610b24565b610b5f828260006001612482565b6121b133610b24565b610b5f610b7a836078612417565b6001600160401b03821660009081526008602052604081206121e19083612872565b9392505050565b6121f133610b24565b610b5f610b7a83606e612417565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af415801561225f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e19190614956565b61228c33610b24565b600c546001600160a01b0316156122dd5760405162461bcd60e51b8152602060048201526015602482015274125b9cdd185b98d954995859195c881a5cc81cd95d605a1b6044820152606401610ddb565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61230833610b24565b610b5f610b7a83611b96565b6000610b19825490565b6000806123546123366000546001600160a01b031690565b863061234660046000898b614df6565b61234f91614e20565b61287e565b9150915081611b1d5763ffffffff8116156123f4576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906123af90889088908890600401614e50565b600060405180830381600087803b1580156123c957600080fd5b505af11580156123dd573d6000803e3d6000fd5b50506000805460ff60a01b1916905550611b1d9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610ddb565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401612242565b610b5f828261298a565b610b5f8282612dac565b6111b08383836130e0565b8015612496576124938484846125b6565b50505b60006124a3858585612821565b80516000908152600760205260408120805467ffffffffffffffff19166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a9283021990931691021790559050611b1d6110378661175d565b6001600160a01b038116600090815260018301602052604081205415156121e1565b60006121e1836001600160a01b03841661357b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60008060006125c48661175d565b90506125cf8161134b565b925082156125fe576125e081611478565b8060200190518101906125f39190614bc2565b602001519150612602565b8391505b856001600160401b038116158061262157506001600160401b03818116145b1561264a5760405163981bf42160e01b81526001600160401b0388166004820152602401610ddb565b82801561266157506127106001600160401b038216105b1561268a57604051633119b9df60e21b81526001600160401b0388166004820152602401610ddb565b8280156126a257506127106001600160401b03821610155b156126cb5760405163094fb39160e01b81526001600160401b0388166004820152602401610ddb565b60006126d687613675565b90506126e1816136b3565b60000361270c576040516321ab17ab60e01b81526001600160401b0389166004820152602401610ddb565b60008181526007602090815260409182902054825163bc1b392d60e01b815292516127af936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d919061499d565b6001600160401b039081169116141590565b80156127d557506000818152600760205260409020546001600160401b03898116911614155b156128165760008181526007602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610ddb565b505050935093915050565b6040805180820190915260008082526020820152604051806040016040528061284985613675565b815260200183151581525090509392505050565b60006121e1836001600160a01b0384166136db565b60006121e1838361372a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516128ed9190614e90565b600060405180830381855afa9150503d8060008114612928576040519150601f19603f3d011682016040523d82523d6000602084013e61292d565b606091505b5091509150811561297f57604081511061295f57808060200190518101906129559190614eac565b909450925061297f565b602081511061297f578080602001905181019061297c91906148c9565b93505b505094509492505050565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af41580156129dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a019190614edb565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015612a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7a91906148c9565b612ac65760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610ddb565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5391906148c9565b612b9f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610ddb565b33436000612bac85612144565b612bb7576064612bcd565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b919091021785556000888152600360205260409020909150600101612c578782614f3e565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cee9190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015612d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d629190614ffd565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015612dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2291906148c9565b612e6e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610ddb565b600082815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015612eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efe91906148c9565b612f4a5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610ddb565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416612f8e4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130449190614edb565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190614ffd565b87868632876040516130d0979695949392919061501a565b60405180910390a1505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015613132573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315691906148c9565b6131a25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610ddb565b600083815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af415801561320e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323291906148c9565b61327e5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610ddb565b60008581526003602052604090206001016132998582614f3e565b508154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b909104166132de4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133949190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156133e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134089190614ffd565b8786863287604051613420979695949392919061501a565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561349a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134be9190614edb565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af415801561350e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135329190614ffd565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c001612d9b565b6000818152600183016020526040812054801561366457600061359f60018361506a565b85549091506000906135b39060019061506a565b90508082146136185760008660000182815481106135d3576135d36149ba565b90600052602060002001549050808760000184815481106135f6576135f66149ba565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806136295761362961508b565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b19565b6000915050610b19565b5092915050565b600080829050601f815111156136a0578260405163305a27a960e01b8152600401610ddb9190613f24565b80516136ab826150a1565b179392505050565b600060ff8216601f811115610b1957604051632cd44ac360e21b815260040160405180910390fd5b600081815260018301602052604081205461372257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b19565b506000610b19565b6000826000018281548110613741576137416149ba565b9060005260206000200154905092915050565b60006020828403121561376657600080fd5b81356001600160e01b0319811681146121e157600080fd5b6001600160401b038116811461379357600080fd5b50565b6000602082840312156137a857600080fd5b81356121e18161377e565b6000602082840312156137c557600080fd5b5035919050565b6001600160601b038116811461379357600080fd5b80356137ec816137cc565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613829576138296137f1565b60405290565b604051608081016001600160401b0381118282101715613829576138296137f1565b60405161010081016001600160401b0381118282101715613829576138296137f1565b60405161014081016001600160401b0381118282101715613829576138296137f1565b60405161020081016001600160401b0381118282101715613829576138296137f1565b6001600160a01b038116811461379357600080fd5b80356137ec816138ba565b6000604082840312156138ec57600080fd5b6138f4613807565b9050813581526020820135602082015292915050565b801515811461379357600080fd5b80356137ec8161390a565b600060c0828403121561393557600080fd5b60405160a081018181106001600160401b0382111715613957576139576137f1565b6040529050808235613968816137cc565b81526020830135613978816138ba565b602082015261398a84604085016138da565b6040820152608083013561399d8161390a565b606082015260a08301356139b0816138ba565b6080919091015292915050565b60008060e083850312156139d057600080fd5b82356139db816137cc565b91506139ea8460208501613923565b90509250929050565b60ff8116811461379357600080fd5b600060208284031215613a1457600080fd5b81356121e1816139f3565b60008060408385031215613a3257600080fd5b8235613a3d816137cc565b91506020830135613a4d816139f3565b809150509250929050565b60005b83811015613a73578181015183820152602001613a5b565b50506000910152565b60008151808452613a94816020860160208601613a58565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff60408501511660808301526060840151613aec60a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e0610100840152613b32610120840182613a7c565b90508281036020840152613b468185613a7c565b95945050505050565b60008060408385031215613b6257600080fd5b8235613b6d816138ba565b91506020830135613a4d8161390a565b63ffffffff8116811461379357600080fd5b600082601f830112613ba057600080fd5b81356001600160401b0380821115613bba57613bba6137f1565b604051601f8301601f19908116603f01168101908282118183101715613be257613be26137f1565b81604052838152866020858801011115613bfb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803564ffffffffff811681146137ec57600080fd5b600060808284031215613c4257600080fd5b613c4a61382f565b90508135613c5781613b7d565b81526020828101359082015260408201356001600160401b03811115613c7c57600080fd5b613c8884828501613b8f565b604083015250613c9a60608301613c1b565b606082015292915050565b60008060008060808587031215613cbb57600080fd5b8435613cc6816137cc565b93506020850135613cd681613b7d565b925060408501356001600160401b03811115613cf157600080fd5b613cfd87828801613c30565b9250506060850135613d0e816139f3565b939692955090935050565b6000808284036060811215613d2d57600080fd5b8335613d38816138ba565b92506040601f1982011215613d4c57600080fd5b50613d55613807565b602084013581526040840135613d6a8161390a565b6020820152919491935090915050565b60008060408385031215613d8d57600080fd5b8235613d988161377e565b915060208301356001600160401b03811115613db357600080fd5b613dbf85828601613b8f565b9150509250929050565b6001600160c01b03198116811461379357600080fd5b80356137ec81613dc9565b600060408284031215613dfc57600080fd5b613e04613807565b90508135613e11816137cc565b815260208201356001600160401b03811115613e2c57600080fd5b613e3884828501613b8f565b60208301525092915050565b60008060408385031215613e5757600080fd5b8235613e6281613dc9565b915060208301356001600160401b03811115613e7d57600080fd5b613dbf85828601613dea565b600060208284031215613e9b57600080fd5b81356121e1816138ba565b600080600060608486031215613ebb57600080fd5b8335613ec6816137cc565b92506020840135613ed681613b7d565b915060408401356001600160401b03811115613ef157600080fd5b613efd86828701613c30565b9150509250925092565b600060208284031215613f1957600080fd5b81356121e1816137cc565b6020815260006121e16020830184613a7c565b60006101608284031215613f4a57600080fd5b613f52613851565b9050613f5d826137e1565b8152613f6b602083016138cf565b602082015260408201356040820152613f8783606084016138da565b6060820152613f998360a084016138da565b6080820152613fab8360e084016138da565b60a0820152613fbd6101208301613918565b60c0820152613fcf61014083016138cf565b60e082015292915050565b6000806101808385031215613fee57600080fd5b8235613ff9816137cc565b91506139ea8460208501613f37565b6000610200828403121561401b57600080fd5b614023613874565b905061402e826138cf565b815261403c602083016138cf565b602082015261404d604083016137e1565b604082015261405e606083016137e1565b606082015261407083608084016138da565b60808201526140828360c084016138da565b60a0820152610100614096848285016138da565b60c08301526140a98461014085016138da565b60e08301526140bc8461018085016138da565b908201526140ce836101c084016138da565b61012082015292915050565b600080600061024084860312156140f057600080fd5b83356140fb816137cc565b925061410a8560208601614008565b915061022084013561411b816139f3565b809150509250925092565b600080610220838503121561413a57600080fd5b8235614145816137cc565b91506139ea8460208501614008565b60006080828403121561416657600080fd5b61416e61382f565b9050813581526020820135602082015260408201356001600160401b03811115613c7c57600080fd5b600080600080608085870312156141ad57600080fd5b84356141b8816137cc565b935060208501356141c881613b7d565b925060408501356001600160401b038111156141e357600080fd5b613cfd87828801614154565b6000806040838503121561420257600080fd5b8235613a3d81613dc9565b8151815260208083015115159082015260408101610b19565b6000806040838503121561423957600080fd5b8235613a3d8161377e565b6000610120828403121561425757600080fd5b61425f613851565b905061426a826137e1565b815261427983602084016138da565b602082015260608201356001600160401b0381111561429757600080fd5b6142a384828501613b8f565b6040830152506080820135606082015260a0820135608082015260c082013560a08201526142d360e08301613c1b565b60c0820152613fcf6101008301613c1b565b600080604083850312156142f857600080fd5b8235614303816137cc565b915060208301356001600160401b0381111561431e57600080fd5b613dbf85828601614244565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b6020815261438660208201835161432a565b6000602083015160c0808401526143a060e0840182613a7c565b949350505050565b6000806000606084860312156143bd57600080fd5b83356143c88161377e565b925060208401356001600160401b038111156143e357600080fd5b6143ef86828701613b8f565b925050604084013561411b816139f3565b60008060006060848603121561441557600080fd5b8335614420816137cc565b925060208401356001600160401b0381111561443b57600080fd5b6143ef86828701614244565b803561ffff811681146137ec57600080fd5b6000610200828403121561446c57600080fd5b614474613897565b905061447f826137e1565b815261448d602083016137e1565b602082015261449e60408301613ddf565b60408201526144af60608301613ddf565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b03808211156144f857600080fd5b61450486838701613b8f565b8385015261012092508285013591508082111561452057600080fd5b5061452d85828601613b8f565b828401525050610140614541818401614447565b90820152610160614553838201614447565b9082015261018082810135908201526101a0614570818401613c1b565b908201526101c0614582838201613c1b565b908201526101e0614594838201613c1b565b9082015292915050565b6000806000606084860312156145b357600080fd5b83356145be816137cc565b925060208401356001600160401b038111156145d957600080fd5b6143ef86828701614459565b6000806000606084860312156145fa57600080fd5b8335614605816137cc565b9250602084013561461581613b7d565b915060408401356001600160401b0381111561463057600080fd5b613efd86828701614154565b60a08101610b19828461432a565b60008060006060848603121561465f57600080fd5b833561466a81613dc9565b925060208401356001600160401b0381111561468557600080fd5b6143ef86828701613dea565b6000806000606084860312156146a657600080fd5b83356146b1816139f3565b925060208401356146c1816139f3565b9150604084013561411b816139f3565b600080604083850312156146e457600080fd5b82356146ef8161377e565b91506020830135613a4d816138ba565b6000806040838503121561471257600080fd5b823561471d816137cc565b915060208301356001600160401b0381111561473857600080fd5b613dbf85828601614459565b60008060006101a0848603121561475a57600080fd5b8335614765816137cc565b92506147748560208601613f37565b915061018084013561411b816139f3565b6000806000610100848603121561479b57600080fd5b83356147a6816137cc565b92506147b58560208601613923565b915060e084013561411b816139f3565b600080604083850312156147d857600080fd5b82356147e38161377e565b946020939093013593505050565b60ff198116811461379357600080fd5b6000806040838503121561481457600080fd5b823561481f816139f3565b91506020830135613a4d816147f1565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015260c0830191906060850151151560808501528060808601511660a0850152505092915050565b600181811c908216806148a357607f821691505b6020821081036148c357634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156148db57600080fd5b81516121e18161390a565b6000602082840312156148f857600080fd5b81516121e1816137cc565b6020815263ffffffff825116602082015260208201516040820152600060408301516080606084015261493960a0840182613a7c565b905064ffffffffff60608501511660808401528091505092915050565b60006020828403121561496857600080fd5b5051919050565b602081526001600160601b038251166020820152600060208301516040808401526143a06060840182613a7c565b6000602082840312156149af57600080fd5b81516121e18161377e565b634e487b7160e01b600052603260045260246000fd5b81516001600160601b031681526020808301516001600160a01b03169082015260408083015190820152606080830151610160830191614a1c9084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151151561012083015260e08301516001600160a01b03811661014084015261366e565b81516001600160a01b0316815261020081016020830151614a9f60208401826001600160a01b03169052565b506040830151614aba60408401826001600160601b03169052565b506060830151614ad560608401826001600160601b03169052565b506080830151614af2608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c0830151610100614b288185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e0850152905061366e565b600060208284031215614b8757600080fd5b81516121e1816138ba565b602081528151602082015260208201516040820152600060408301516080606084015261493960a0840182613a7c565b600060408284031215614bd457600080fd5b614bdc613807565b825181526020830151614bee8161390a565b60208201529392505050565b602081526001600160601b03825116602082015260006020830151614c2c604084018280518252602090810151910152565b506040830151610120806080850152614c49610140850183613a7c565b9150606085015160a0850152608085015160c085015260a085015160e085015260c0850151614c8261010086018264ffffffffff169052565b5060e085015164ffffffffff8116858301525b5090949350505050565b60208152614cb96020820183516001600160601b03169052565b60006020830151614cd560408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506102006101208181860152614d4d610220860184613a7c565b9250808601519050610140601f198685030181870152614d6d8483613a7c565b935080870151915050610160614d888187018361ffff169052565b8601519050610180614d9f8682018361ffff169052565b8601516101a08681019190915286015190506101c0614dc68187018364ffffffffff169052565b86015190506101e0614de08682018364ffffffffff169052565b86015164ffffffffff8116838701529050614c95565b60008085851115614e0657600080fd5b83861115614e1357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015614e485780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251614ea2818460208701613a58565b9190910192915050565b60008060408385031215614ebf57600080fd5b8251614eca8161390a565b6020840151909250613a4d81613b7d565b600060208284031215614eed57600080fd5b81516121e1816139f3565b601f8211156111b057600081815260208120601f850160051c81016020861015614f1f5750805b601f850160051c820191505b81811015610fd957828155600101614f2b565b81516001600160401b03811115614f5757614f576137f1565b614f6b81614f65845461488f565b84614ef8565b602080601f831160018114614fa05760008415614f885750858301515b600019600386901b1c1916600185901b178555610fd9565b600085815260208120601f198616915b82811015614fcf57888601518255948401946001909101908401614fb0565b5085821015614fed5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561500f57600080fd5b81516121e1816147f1565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b81810381811115610b1957634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b805160208083015191908110156148c35760001960209190910360031b1b1691905056fea26469706673582212209ba41bfa289c5b04a620358cf09da995949cb91983da35cd051118bc8a627dc164736f6c63430008140033",
3091
- "linkReferences": {
3092
- "contracts/types/Key32.sol": {
3093
- "Key32Lib": [
3094
- {
3095
- "length": 20,
3096
- "start": 4267
3097
- },
3098
- {
3099
- "length": 20,
3100
- "start": 5035
3101
- },
3102
- {
3103
- "length": 20,
3104
- "start": 5154
3105
- },
3106
- {
3107
- "length": 20,
3108
- "start": 11068
3109
- },
3110
- {
3111
- "length": 20,
3112
- "start": 15413
3113
- },
3114
- {
3115
- "length": 20,
3116
- "start": 17332
3117
- },
3118
- {
3119
- "length": 20,
3120
- "start": 18081
3121
- },
3122
- {
3123
- "length": 20,
3124
- "start": 18197
3125
- },
3126
- {
3127
- "length": 20,
3128
- "start": 18935
3129
- },
3130
- {
3131
- "length": 20,
3132
- "start": 19051
3133
- },
3134
- {
3135
- "length": 20,
3136
- "start": 19783
3137
- },
3138
- {
3139
- "length": 20,
3140
- "start": 19899
3141
- },
3142
- {
3143
- "length": 20,
3144
- "start": 20081
3145
- },
3146
- {
3147
- "length": 20,
3148
- "start": 20197
3149
- }
3150
- ]
3151
873
  },
3152
- "contracts/types/NftId.sol": {
3153
- "NftIdLib": [
3154
- {
3155
- "length": 20,
3156
- "start": 10064
3157
- },
3158
- {
3159
- "length": 20,
3160
- "start": 11824
3161
- },
3162
- {
3163
- "length": 20,
3164
- "start": 12950
3165
- },
3166
- {
3167
- "length": 20,
3168
- "start": 13739
3169
- },
874
+ {
875
+ "inputs": [
3170
876
  {
3171
- "length": 20,
3172
- "start": 15954
877
+ "internalType": "bytes4",
878
+ "name": "interfaceId",
879
+ "type": "bytes4"
3173
880
  }
3174
- ]
3175
- },
3176
- "contracts/types/ObjectType.sol": {
3177
- "ObjectTypeLib": [
3178
- {
3179
- "length": 20,
3180
- "start": 4391
3181
- },
881
+ ],
882
+ "name": "supportsInterface",
883
+ "outputs": [
3182
884
  {
3183
- "length": 20,
3184
- "start": 17453
885
+ "internalType": "bool",
886
+ "name": "",
887
+ "type": "bool"
3185
888
  }
3186
- ]
3187
- },
3188
- "contracts/types/RiskId.sol": {
3189
- "RiskIdLib": [
889
+ ],
890
+ "stateMutability": "view",
891
+ "type": "function"
892
+ }
893
+ ],
894
+ "bytecode": "0x608060405234801561001057600080fd5b506127e6806100206000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063770ab10211610146578063c0c53b8b116100c3578063e1033e7d11610087578063e1033e7d14610552578063e5f6cd271461055a578063e7f7fb8614610562578063f7bc431c14610575578063f7c34ee014610588578063fed3d63f1461059b57600080fd5b8063c0c53b8b146104d9578063ca600b1c146104ec578063cde749f4146104f4578063d2192dbf1461050e578063d4cda0d81461054157600080fd5b8063ada9652e1161010a578063ada9652e14610483578063b428b0b014610498578063b7d2b162146104ab578063bb1e0e59146104be578063bf7e214f146104d157600080fd5b8063770ab102146104215780637a9e5e4b146104345780638689231314610447578063893d20e81461045a5780638fb360371461046257600080fd5b8063311adb68116101d45780635fa8aad4116101985780635fa8aad4146103c457806361f5f420146103d7578063644c45e0146103e8578063675393bf146104065780636b9bf08b1461041957600080fd5b8063311adb681461037f57806336fc697e14610390578063422c9d00146103985780634288121d146103ab5780635ab1bd53146103b357600080fd5b8063214cdb801161021b578063214cdb80146103295780632449aea81461033e5780632781d4431461035157806327bb7a331461035957806329db8c3d1461036c57600080fd5b806301ffc9a71461025857806302cd30711461029a5780630fec111c146102bf578063138461e0146102d45780631eff4b22146102f4575b600080fd5b610285610266366004611e50565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610291565b6102c76105a3565b6040516102919190611ec2565b6102dc610767565b6040516001600160601b039091168152602001610291565b61031b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610291565b61033c610337366004611e50565b610777565b005b61033c61034c366004611f62565b6107a4565b61031b600381565b61033c61036736600461203c565b6108bf565b61033c61037a366004612128565b610964565b6002546001600160a01b03166102a7565b61033c6109d1565b61033c6103a6366004611f62565b610a17565b6102a7610bc1565b6001546001600160a01b03166102a7565b61033c6103d23660046121d2565b610c4f565b6004546001600160a01b03166102a7565b600080516020612771833981519152546001600160601b03166102dc565b61033c610414366004611f62565b610cc0565b6102a7610dce565b61033c61042f366004611f62565b610df7565b61033c610442366004611f62565b610f09565b61033c610455366004612221565b610f8c565b6102a7610fcf565b61046a611106565b6040516001600160e01b03199091168152602001610291565b61031b60008051602061277183398151915281565b61033c6104a636600461225a565b61113e565b61033c6104b936600461225a565b611220565b61033c6104cc366004612288565b6112fb565b6102a76113be565b61033c6104e73660046122b4565b6113da565b6102a76115a6565b6104fc6115cf565b60405160ff9091168152602001610291565b61052161051c3660046122ff565b611646565b604080516001600160401b03938416815292909116602083015201610291565b6005546001600160a01b03166102a7565b6102a76116d1565b6102a76116fa565b61033c610570366004612358565b611704565b61033c610583366004611f62565b6117fa565b61033c610596366004612399565b6118ba565b6102a7611931565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906123b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106c3610fcf565b6001600160a01b031681526020018260010180546106e0906123d4565b80601f016020809104026020016040519081016040528092919081815260200182805461070c906123d4565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b505050505081525091505090565b60006107723061195a565b905090565b61077f611b5b565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107b1335b600036611ba6565b6005546001600160a01b0316156107ef57600554604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6107f76113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610862919061240e565b6001600160a01b03161461089d576108786113be565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107e6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108c7611b5b565b6108d182876118ba565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161095a8382612476565b5050505050505050565b61096d336107a9565b60025460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109a3908790879087908790600401612535565b600060405180830381600087803b1580156109bd57600080fd5b505af115801561095a573d6000803e3d6000fd5b6109d9611b5b565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610a20336107a9565b6004546001600160a01b031615610a5c576004805460405163384c2dbd60e11b81526001600160a01b03909116918101919091526024016107e6565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac8919061240e565b6001600160a01b031614610af15760405163decb98c560e01b81523060048201526024016107e6565b610af96113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061240e565b6001600160a01b031614610b9f57610b7a6113be565b604051630312205960e41b81526001600160a01b0390911660048201526024016107e6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd56001546001600160a01b031690565b6001600160a01b031663d39e6043606e5b6040516001600160e01b031960e084901b16815260ff909116600482015260036024820152604401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610772919061240e565b610c58336107a9565b6002546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610c8a90859085906004016125aa565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050505050565b610cc8611b5b565b806001600160a01b03163b600003610cfe5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610d78575060408051601f3d908101601f19168201909252610d75918101906125ce565b60015b610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b80610dc95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107e6565b505b50565b6000610de26001546001600160a01b031690565b6001600160a01b031663d39e6043608c610be6565b610e00336107a9565b6002546001600160a01b031615610e395760025460405163078a818f60e31b81526001600160a01b0390911660048201526024016107e6565b610e416113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac919061240e565b6001600160a01b031614610ee757610ec26113be565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107e6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b33610f126113be565b6001600160a01b0316816001600160a01b031614610f4d5760405162d1953b60e31b81526001600160a01b03821660048201526024016107e6565b816001600160a01b03163b600003610f83576040516361798f2f60e11b81526001600160a01b03831660048201526024016107e6565b610dc982611ca4565b610f95336107a9565b6002546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610c8a565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561103f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106391906125ce565b156110f0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061240e565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020612791833981519152805460009190600160a01b900460ff166111305760006110ea565b638fb3603760e01b91505090565b611147336107a9565b61114f6113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610c8a565b611229336107a9565b6112316113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c091906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610c8a565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611368919061240e565b6001600160a01b0316336001600160a01b03161461138557600080fd5b600254604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610c8a565b600080516020612791833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561141f5750825b90506000826001600160401b0316600114801561143b5750303b155b905081158015611449575080155b156114675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149157845460ff60401b1916600160401b1785555b6001600160a01b0388166114b8576040516377dbcd1760e01b815260040160405180910390fd5b6114c188611d05565b600087905061154688826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c91906123b7565b604660018b604051806020016040528060008152506108bf565b611556637344136d60e01b610777565b50831561095a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b60006115ba6001546001600160a01b031690565b6001600160a01b031663d39e60436078610be6565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190612608565b600080611652336107a9565b60025460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906116849087908790600401612625565b60408051808303816000875af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190612653565b909590945092505050565b60006116e56001546001600160a01b031690565b6001600160a01b031663d39e604360d3610be6565b60006107726113be565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611771919061240e565b6001600160a01b0316336001600160a01b03161461178e57600080fd5b600254604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b50505050505050565b611803336107a9565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f919061240e565b6001600160a01b031614611898576040516345789cf560e01b81523060048201526024016107e6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6118c2611b5b565b6118cb81610cc0565b6118d36109d1565b6001600160a01b0382166118fa5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061277183398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006119456001546001600160a01b031690565b6001600160a01b031663d39e604360dc610be6565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ee91906125ce565b15611a1a5780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107e6565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9291906125ce565b611aba5760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107e6565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3291906123b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ba457604051631afcd79f60e31b815260040160405180910390fd5b565b600080516020612791833981519152600080611be1611bc36113be565b8730611bd3600460008a8c612682565b611bdc916126ac565b611d16565b9150915081610cb85763ffffffff811615611c8157825460ff60a01b1916600160a01b178355611c0f6113be565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611c3e939291906126dc565b600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b5050845460ff60a01b1916855550610cb89050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107e6565b60008051602061279183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611d0d611b5b565b610dcb81611e22565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d85919061271c565b600060405180830381855afa9150503d8060008114611dc0576040519150601f19603f3d011682016040523d82523d6000602084013e611dc5565b606091505b50915091508115611e17576040815110611df75780806020019051810190611ded9190612738565b9094509250611e17565b6020815110611e175780806020019051810190611e1491906125ce565b93505b505094509492505050565b611e2a611b5b565b610dcb81611ca4565b80356001600160e01b031981168114611e4b57600080fd5b919050565b600060208284031215611e6257600080fd5b611e6b82611e33565b9392505050565b60005b83811015611e8d578181015183820152602001611e75565b50506000910152565b60008151808452611eae816020860160208601611e72565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151611f2b60c08401826001600160a01b03169052565b5060c083015160e080840152611f45610100840182611e96565b949350505050565b6001600160a01b0381168114610dcb57600080fd5b600060208284031215611f7457600080fd5b8135611e6b81611f4d565b6001600160601b0381168114610dcb57600080fd5b60ff81168114610dcb57600080fd5b8015158114610dcb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611fe157611fe1611fb1565b604051601f8501601f19908116603f0116810190828211818310171561200957612009611fb1565b8160405280935085815286868601111561202257600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561205557600080fd5b863561206081611f4d565b9550602087013561207081611f7f565b9450604087013561208081611f94565b9350606087013561209081611fa3565b925060808701356120a081611f4d565b915060a08701356001600160401b038111156120bb57600080fd5b8701601f810189136120cc57600080fd5b6120db89823560208401611fc7565b9150509295509295509295565b600082601f8301126120f957600080fd5b611e6b83833560208501611fc7565b6001600160401b0381168114610dcb57600080fd5b8035611e4b81612108565b6000806000806060858703121561213e57600080fd5b84356001600160401b038082111561215557600080fd5b612161888389016120e8565b9550602087013591508082111561217757600080fd5b818701915087601f83011261218b57600080fd5b81358181111561219a57600080fd5b8860208260051b85010111156121af57600080fd5b6020830195508094505050506121c76040860161211d565b905092959194509250565b600080604083850312156121e557600080fd5b82356121f081611f4d565b915060208301356001600160401b0381111561220b57600080fd5b612217858286016120e8565b9150509250929050565b6000806040838503121561223457600080fd5b823561223f81611f4d565b9150602083013561224f81611fa3565b809150509250929050565b6000806040838503121561226d57600080fd5b823561227881612108565b9150602083013561224f81611f4d565b6000806040838503121561229b57600080fd5b82356122a681611f4d565b946020939093013593505050565b6000806000606084860312156122c957600080fd5b83356122d481611f4d565b925060208401356122e481611f4d565b915060408401356122f481611f4d565b809150509250925092565b6000806040838503121561231257600080fd5b82356001600160401b038082111561232957600080fd5b612335868387016120e8565b9350602085013591508082111561234b57600080fd5b50612217858286016120e8565b60008060006060848603121561236d57600080fd5b833561237881611f4d565b9250602084013561238881611f4d565b929592945050506040919091013590565b600080604083850312156123ac57600080fd5b823561227881611f4d565b6000602082840312156123c957600080fd5b8151611e6b81611f7f565b600181811c908216806123e857607f821691505b60208210810361240857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561242057600080fd5b8151611e6b81611f4d565b601f82111561247157600081815260208120601f850160051c810160208610156124525750805b601f850160051c820191505b81811015610cb85782815560010161245e565b505050565b81516001600160401b0381111561248f5761248f611fb1565b6124a38161249d84546123d4565b8461242b565b602080601f8311600181146124d857600084156124c05750858301515b600019600386901b1c1916600185901b178555610cb8565b600085815260208120601f198616915b82811015612507578886015182559484019460019091019084016124e8565b50858210156125255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6060815260006125486060830187611e96565b8281036020848101919091528582528691810160005b8781101561258b576001600160e01b031961257885611e33565b168252928201929082019060010161255e565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b0383168152604060208201819052600090611f4590830184611e96565b6000602082840312156125e057600080fd5b8151611e6b81611fa3565b6000602082840312156125fd57600080fd5b8151611e6b81612108565b60006020828403121561261a57600080fd5b8151611e6b81611f94565b6040815260006126386040830185611e96565b828103602084015261264a8185611e96565b95945050505050565b6000806040838503121561266657600080fd5b825161267181612108565b602084015190925061224f81612108565b6000808585111561269257600080fd5b8386111561269f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156126d45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825161272e818460208701611e72565b9190910192915050565b6000806040838503121561274b57600080fd5b825161275681611fa3565b602084015190925063ffffffff8116811461224f57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a264697066735822122029679b66e897fa94d3d7f25221a3d644bbb98dc86c8b685ad8271036c8fdd91e64736f6c63430008140033",
895
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102535760003560e01c8063770ab10211610146578063c0c53b8b116100c3578063e1033e7d11610087578063e1033e7d14610552578063e5f6cd271461055a578063e7f7fb8614610562578063f7bc431c14610575578063f7c34ee014610588578063fed3d63f1461059b57600080fd5b8063c0c53b8b146104d9578063ca600b1c146104ec578063cde749f4146104f4578063d2192dbf1461050e578063d4cda0d81461054157600080fd5b8063ada9652e1161010a578063ada9652e14610483578063b428b0b014610498578063b7d2b162146104ab578063bb1e0e59146104be578063bf7e214f146104d157600080fd5b8063770ab102146104215780637a9e5e4b146104345780638689231314610447578063893d20e81461045a5780638fb360371461046257600080fd5b8063311adb68116101d45780635fa8aad4116101985780635fa8aad4146103c457806361f5f420146103d7578063644c45e0146103e8578063675393bf146104065780636b9bf08b1461041957600080fd5b8063311adb681461037f57806336fc697e14610390578063422c9d00146103985780634288121d146103ab5780635ab1bd53146103b357600080fd5b8063214cdb801161021b578063214cdb80146103295780632449aea81461033e5780632781d4431461035157806327bb7a331461035957806329db8c3d1461036c57600080fd5b806301ffc9a71461025857806302cd30711461029a5780630fec111c146102bf578063138461e0146102d45780631eff4b22146102f4575b600080fd5b610285610266366004611e50565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610291565b6102c76105a3565b6040516102919190611ec2565b6102dc610767565b6040516001600160601b039091168152602001610291565b61031b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610291565b61033c610337366004611e50565b610777565b005b61033c61034c366004611f62565b6107a4565b61031b600381565b61033c61036736600461203c565b6108bf565b61033c61037a366004612128565b610964565b6002546001600160a01b03166102a7565b61033c6109d1565b61033c6103a6366004611f62565b610a17565b6102a7610bc1565b6001546001600160a01b03166102a7565b61033c6103d23660046121d2565b610c4f565b6004546001600160a01b03166102a7565b600080516020612771833981519152546001600160601b03166102dc565b61033c610414366004611f62565b610cc0565b6102a7610dce565b61033c61042f366004611f62565b610df7565b61033c610442366004611f62565b610f09565b61033c610455366004612221565b610f8c565b6102a7610fcf565b61046a611106565b6040516001600160e01b03199091168152602001610291565b61031b60008051602061277183398151915281565b61033c6104a636600461225a565b61113e565b61033c6104b936600461225a565b611220565b61033c6104cc366004612288565b6112fb565b6102a76113be565b61033c6104e73660046122b4565b6113da565b6102a76115a6565b6104fc6115cf565b60405160ff9091168152602001610291565b61052161051c3660046122ff565b611646565b604080516001600160401b03938416815292909116602083015201610291565b6005546001600160a01b03166102a7565b6102a76116d1565b6102a76116fa565b61033c610570366004612358565b611704565b61033c610583366004611f62565b6117fa565b61033c610596366004612399565b6118ba565b6102a7611931565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906123b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106c3610fcf565b6001600160a01b031681526020018260010180546106e0906123d4565b80601f016020809104026020016040519081016040528092919081815260200182805461070c906123d4565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b505050505081525091505090565b60006107723061195a565b905090565b61077f611b5b565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107b1335b600036611ba6565b6005546001600160a01b0316156107ef57600554604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6107f76113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610862919061240e565b6001600160a01b03161461089d576108786113be565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107e6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108c7611b5b565b6108d182876118ba565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161095a8382612476565b5050505050505050565b61096d336107a9565b60025460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109a3908790879087908790600401612535565b600060405180830381600087803b1580156109bd57600080fd5b505af115801561095a573d6000803e3d6000fd5b6109d9611b5b565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610a20336107a9565b6004546001600160a01b031615610a5c576004805460405163384c2dbd60e11b81526001600160a01b03909116918101919091526024016107e6565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac8919061240e565b6001600160a01b031614610af15760405163decb98c560e01b81523060048201526024016107e6565b610af96113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061240e565b6001600160a01b031614610b9f57610b7a6113be565b604051630312205960e41b81526001600160a01b0390911660048201526024016107e6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd56001546001600160a01b031690565b6001600160a01b031663d39e6043606e5b6040516001600160e01b031960e084901b16815260ff909116600482015260036024820152604401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610772919061240e565b610c58336107a9565b6002546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610c8a90859085906004016125aa565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050505050565b610cc8611b5b565b806001600160a01b03163b600003610cfe5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610d78575060408051601f3d908101601f19168201909252610d75918101906125ce565b60015b610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b80610dc95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107e6565b505b50565b6000610de26001546001600160a01b031690565b6001600160a01b031663d39e6043608c610be6565b610e00336107a9565b6002546001600160a01b031615610e395760025460405163078a818f60e31b81526001600160a01b0390911660048201526024016107e6565b610e416113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac919061240e565b6001600160a01b031614610ee757610ec26113be565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107e6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b33610f126113be565b6001600160a01b0316816001600160a01b031614610f4d5760405162d1953b60e31b81526001600160a01b03821660048201526024016107e6565b816001600160a01b03163b600003610f83576040516361798f2f60e11b81526001600160a01b03831660048201526024016107e6565b610dc982611ca4565b610f95336107a9565b6002546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610c8a565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561103f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106391906125ce565b156110f0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061240e565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020612791833981519152805460009190600160a01b900460ff166111305760006110ea565b638fb3603760e01b91505090565b611147336107a9565b61114f6113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610c8a565b611229336107a9565b6112316113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c091906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610c8a565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611368919061240e565b6001600160a01b0316336001600160a01b03161461138557600080fd5b600254604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610c8a565b600080516020612791833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561141f5750825b90506000826001600160401b0316600114801561143b5750303b155b905081158015611449575080155b156114675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149157845460ff60401b1916600160401b1785555b6001600160a01b0388166114b8576040516377dbcd1760e01b815260040160405180910390fd5b6114c188611d05565b600087905061154688826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c91906123b7565b604660018b604051806020016040528060008152506108bf565b611556637344136d60e01b610777565b50831561095a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b60006115ba6001546001600160a01b031690565b6001600160a01b031663d39e60436078610be6565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190612608565b600080611652336107a9565b60025460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906116849087908790600401612625565b60408051808303816000875af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190612653565b909590945092505050565b60006116e56001546001600160a01b031690565b6001600160a01b031663d39e604360d3610be6565b60006107726113be565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611771919061240e565b6001600160a01b0316336001600160a01b03161461178e57600080fd5b600254604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b50505050505050565b611803336107a9565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f919061240e565b6001600160a01b031614611898576040516345789cf560e01b81523060048201526024016107e6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6118c2611b5b565b6118cb81610cc0565b6118d36109d1565b6001600160a01b0382166118fa5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061277183398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006119456001546001600160a01b031690565b6001600160a01b031663d39e604360dc610be6565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ee91906125ce565b15611a1a5780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107e6565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9291906125ce565b611aba5760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107e6565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3291906123b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ba457604051631afcd79f60e31b815260040160405180910390fd5b565b600080516020612791833981519152600080611be1611bc36113be565b8730611bd3600460008a8c612682565b611bdc916126ac565b611d16565b9150915081610cb85763ffffffff811615611c8157825460ff60a01b1916600160a01b178355611c0f6113be565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611c3e939291906126dc565b600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b5050845460ff60a01b1916855550610cb89050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107e6565b60008051602061279183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611d0d611b5b565b610dcb81611e22565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d85919061271c565b600060405180830381855afa9150503d8060008114611dc0576040519150601f19603f3d011682016040523d82523d6000602084013e611dc5565b606091505b50915091508115611e17576040815110611df75780806020019051810190611ded9190612738565b9094509250611e17565b6020815110611e175780806020019051810190611e1491906125ce565b93505b505094509492505050565b611e2a611b5b565b610dcb81611ca4565b80356001600160e01b031981168114611e4b57600080fd5b919050565b600060208284031215611e6257600080fd5b611e6b82611e33565b9392505050565b60005b83811015611e8d578181015183820152602001611e75565b50506000910152565b60008151808452611eae816020860160208601611e72565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151611f2b60c08401826001600160a01b03169052565b5060c083015160e080840152611f45610100840182611e96565b949350505050565b6001600160a01b0381168114610dcb57600080fd5b600060208284031215611f7457600080fd5b8135611e6b81611f4d565b6001600160601b0381168114610dcb57600080fd5b60ff81168114610dcb57600080fd5b8015158114610dcb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611fe157611fe1611fb1565b604051601f8501601f19908116603f0116810190828211818310171561200957612009611fb1565b8160405280935085815286868601111561202257600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561205557600080fd5b863561206081611f4d565b9550602087013561207081611f7f565b9450604087013561208081611f94565b9350606087013561209081611fa3565b925060808701356120a081611f4d565b915060a08701356001600160401b038111156120bb57600080fd5b8701601f810189136120cc57600080fd5b6120db89823560208401611fc7565b9150509295509295509295565b600082601f8301126120f957600080fd5b611e6b83833560208501611fc7565b6001600160401b0381168114610dcb57600080fd5b8035611e4b81612108565b6000806000806060858703121561213e57600080fd5b84356001600160401b038082111561215557600080fd5b612161888389016120e8565b9550602087013591508082111561217757600080fd5b818701915087601f83011261218b57600080fd5b81358181111561219a57600080fd5b8860208260051b85010111156121af57600080fd5b6020830195508094505050506121c76040860161211d565b905092959194509250565b600080604083850312156121e557600080fd5b82356121f081611f4d565b915060208301356001600160401b0381111561220b57600080fd5b612217858286016120e8565b9150509250929050565b6000806040838503121561223457600080fd5b823561223f81611f4d565b9150602083013561224f81611fa3565b809150509250929050565b6000806040838503121561226d57600080fd5b823561227881612108565b9150602083013561224f81611f4d565b6000806040838503121561229b57600080fd5b82356122a681611f4d565b946020939093013593505050565b6000806000606084860312156122c957600080fd5b83356122d481611f4d565b925060208401356122e481611f4d565b915060408401356122f481611f4d565b809150509250925092565b6000806040838503121561231257600080fd5b82356001600160401b038082111561232957600080fd5b612335868387016120e8565b9350602085013591508082111561234b57600080fd5b50612217858286016120e8565b60008060006060848603121561236d57600080fd5b833561237881611f4d565b9250602084013561238881611f4d565b929592945050506040919091013590565b600080604083850312156123ac57600080fd5b823561227881611f4d565b6000602082840312156123c957600080fd5b8151611e6b81611f7f565b600181811c908216806123e857607f821691505b60208210810361240857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561242057600080fd5b8151611e6b81611f4d565b601f82111561247157600081815260208120601f850160051c810160208610156124525750805b601f850160051c820191505b81811015610cb85782815560010161245e565b505050565b81516001600160401b0381111561248f5761248f611fb1565b6124a38161249d84546123d4565b8461242b565b602080601f8311600181146124d857600084156124c05750858301515b600019600386901b1c1916600185901b178555610cb8565b600085815260208120601f198616915b82811015612507578886015182559484019460019091019084016124e8565b50858210156125255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6060815260006125486060830187611e96565b8281036020848101919091528582528691810160005b8781101561258b576001600160e01b031961257885611e33565b168252928201929082019060010161255e565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b0383168152604060208201819052600090611f4590830184611e96565b6000602082840312156125e057600080fd5b8151611e6b81611fa3565b6000602082840312156125fd57600080fd5b8151611e6b81612108565b60006020828403121561261a57600080fd5b8151611e6b81611f94565b6040815260006126386040830185611e96565b828103602084015261264a8185611e96565b95945050505050565b6000806040838503121561266657600080fd5b825161267181612108565b602084015190925061224f81612108565b6000808585111561269257600080fd5b8386111561269f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156126d45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825161272e818460208701611e72565b9190910192915050565b6000806040838503121561274b57600080fd5b825161275681611fa3565b602084015190925063ffffffff8116811461224f57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a264697066735822122029679b66e897fa94d3d7f25221a3d644bbb98dc86c8b685ad8271036c8fdd91e64736f6c63430008140033",
896
+ "linkReferences": {
897
+ "contracts/type/NftId.sol": {
898
+ "NftIdLib": [
3190
899
  {
3191
900
  "length": 20,
3192
- "start": 10907
901
+ "start": 1584
3193
902
  },
3194
903
  {
3195
904
  "length": 20,
3196
- "start": 12560
905
+ "start": 4133
3197
906
  },
3198
907
  {
3199
908
  "length": 20,
3200
- "start": 13824
909
+ "start": 6576
3201
910
  }
3202
911
  ]
3203
912
  },
3204
- "contracts/types/RoleId.sol": {
913
+ "contracts/type/RoleId.sol": {
3205
914
  "RoleIdLib": [
3206
915
  {
3207
916
  "length": 20,
3208
- "start": 233
3209
- },
3210
- {
3211
- "length": 20,
3212
- "start": 404
3213
- },
3214
- {
3215
- "length": 20,
3216
- "start": 3337
3217
- },
3218
- {
3219
- "length": 20,
3220
- "start": 3662
3221
- },
3222
- {
3223
- "length": 20,
3224
- "start": 11359
3225
- },
3226
- {
3227
- "length": 20,
3228
- "start": 12687
3229
- },
3230
- {
3231
- "length": 20,
3232
- "start": 12773
3233
- },
3234
- {
3235
- "length": 20,
3236
- "start": 14426
3237
- },
3238
- {
3239
- "length": 20,
3240
- "start": 14839
917
+ "start": 4512
3241
918
  },
3242
919
  {
3243
920
  "length": 20,
3244
- "start": 16720
921
+ "start": 4738
3245
922
  }
3246
923
  ]
3247
924
  },
3248
- "contracts/types/StateId.sol": {
3249
- "StateIdLib": [
3250
- {
3251
- "length": 20,
3252
- "start": 3863
3253
- },
3254
- {
3255
- "length": 20,
3256
- "start": 4613
3257
- },
3258
- {
3259
- "length": 20,
3260
- "start": 5730
3261
- },
3262
- {
3263
- "length": 20,
3264
- "start": 11656
3265
- },
3266
- {
3267
- "length": 20,
3268
- "start": 13978
3269
- },
3270
- {
3271
- "length": 20,
3272
- "start": 15232
3273
- },
3274
- {
3275
- "length": 20,
3276
- "start": 17670
3277
- },
3278
- {
3279
- "length": 20,
3280
- "start": 18389
3281
- },
925
+ "contracts/type/Version.sol": {
926
+ "VersionPartLib": [
3282
927
  {
3283
928
  "length": 20,
3284
- "start": 18609
3285
- },
3286
- {
3287
- "length": 20,
3288
- "start": 19209
3289
- },
3290
- {
3291
- "length": 20,
3292
- "start": 19429
929
+ "start": 5640
3293
930
  }
3294
931
  ]
3295
932
  }
3296
933
  },
3297
934
  "deployedLinkReferences": {
3298
- "contracts/types/Key32.sol": {
3299
- "Key32Lib": [
3300
- {
3301
- "length": 20,
3302
- "start": 4395
3303
- },
3304
- {
3305
- "length": 20,
3306
- "start": 8740
3307
- },
3308
- {
3309
- "length": 20,
3310
- "start": 10659
3311
- },
3312
- {
3313
- "length": 20,
3314
- "start": 11408
3315
- },
3316
- {
3317
- "length": 20,
3318
- "start": 11524
3319
- },
3320
- {
3321
- "length": 20,
3322
- "start": 12262
3323
- },
3324
- {
3325
- "length": 20,
3326
- "start": 12378
3327
- },
3328
- {
3329
- "length": 20,
3330
- "start": 13110
3331
- },
3332
- {
3333
- "length": 20,
3334
- "start": 13226
3335
- },
3336
- {
3337
- "length": 20,
3338
- "start": 13408
3339
- },
3340
- {
3341
- "length": 20,
3342
- "start": 13524
3343
- }
3344
- ]
3345
- },
3346
- "contracts/types/NftId.sol": {
935
+ "contracts/type/NftId.sol": {
3347
936
  "NftIdLib": [
3348
937
  {
3349
938
  "length": 20,
3350
- "start": 3391
3351
- },
3352
- {
3353
- "length": 20,
3354
- "start": 5151
3355
- },
3356
- {
3357
- "length": 20,
3358
- "start": 6277
3359
- },
3360
- {
3361
- "length": 20,
3362
- "start": 7066
3363
- },
3364
- {
3365
- "length": 20,
3366
- "start": 9281
3367
- }
3368
- ]
3369
- },
3370
- "contracts/types/ObjectType.sol": {
3371
- "ObjectTypeLib": [
3372
- {
3373
- "length": 20,
3374
- "start": 10780
3375
- }
3376
- ]
3377
- },
3378
- "contracts/types/RiskId.sol": {
3379
- "RiskIdLib": [
3380
- {
3381
- "length": 20,
3382
- "start": 4234
939
+ "start": 1552
3383
940
  },
3384
941
  {
3385
942
  "length": 20,
3386
- "start": 5887
943
+ "start": 4101
3387
944
  },
3388
945
  {
3389
946
  "length": 20,
3390
- "start": 7151
947
+ "start": 6544
3391
948
  }
3392
949
  ]
3393
950
  },
3394
- "contracts/types/RoleId.sol": {
951
+ "contracts/type/RoleId.sol": {
3395
952
  "RoleIdLib": [
3396
953
  {
3397
954
  "length": 20,
3398
- "start": 4686
3399
- },
3400
- {
3401
- "length": 20,
3402
- "start": 6014
3403
- },
3404
- {
3405
- "length": 20,
3406
- "start": 6100
3407
- },
3408
- {
3409
- "length": 20,
3410
- "start": 7753
955
+ "start": 4480
3411
956
  },
3412
957
  {
3413
958
  "length": 20,
3414
- "start": 8166
3415
- },
3416
- {
3417
- "length": 20,
3418
- "start": 10047
959
+ "start": 4706
3419
960
  }
3420
961
  ]
3421
962
  },
3422
- "contracts/types/StateId.sol": {
3423
- "StateIdLib": [
3424
- {
3425
- "length": 20,
3426
- "start": 4983
3427
- },
3428
- {
3429
- "length": 20,
3430
- "start": 7305
3431
- },
3432
- {
3433
- "length": 20,
3434
- "start": 8559
3435
- },
3436
- {
3437
- "length": 20,
3438
- "start": 10997
3439
- },
3440
- {
3441
- "length": 20,
3442
- "start": 11716
3443
- },
3444
- {
3445
- "length": 20,
3446
- "start": 11936
3447
- },
3448
- {
3449
- "length": 20,
3450
- "start": 12536
3451
- },
963
+ "contracts/type/Version.sol": {
964
+ "VersionPartLib": [
3452
965
  {
3453
966
  "length": 20,
3454
- "start": 12756
967
+ "start": 5608
3455
968
  }
3456
969
  ]
3457
970
  }