@etherisc/gif-next 0.0.2-e545d2c-624 → 0.0.2-e586bbf-616

Sign up to get free protection for your applications and to get access to all the features.
Files changed (782) hide show
  1. package/README.md +138 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1831 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1266 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2026 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2452 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -1254
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +604 -174
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +663 -2398
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +637 -354
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -93
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +384 -361
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1435 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1022 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +391 -347
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1430 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1814 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1017 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1533 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +313 -299
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +328 -231
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +527 -305
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +192 -168
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +835 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +605 -28
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +299 -222
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1031 -71
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +358 -274
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +381 -78
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -97
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +264 -253
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +264 -135
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1137 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +133 -145
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +154 -159
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +247 -0
  371. package/contracts/distribution/DistributionService.sol +448 -0
  372. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  373. package/contracts/distribution/IDistributionComponent.sol +45 -0
  374. package/contracts/distribution/IDistributionService.sol +115 -0
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +136 -53
  390. package/contracts/instance/IInstanceService.sol +95 -22
  391. package/contracts/instance/Instance.sol +256 -182
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +525 -208
  395. package/contracts/instance/InstanceService.sol +425 -258
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +298 -0
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +121 -0
  400. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +10 -9
  406. package/contracts/instance/module/IComponents.sol +62 -0
  407. package/contracts/instance/module/IDistribution.sol +25 -10
  408. package/contracts/instance/module/IPolicy.sol +81 -21
  409. package/contracts/instance/module/IRisk.sol +6 -1
  410. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +406 -0
  422. package/contracts/pool/BundleServiceManager.sol +39 -0
  423. package/contracts/pool/IBundleService.sol +121 -0
  424. package/contracts/pool/IPoolComponent.sol +62 -0
  425. package/contracts/pool/IPoolService.sol +170 -0
  426. package/contracts/pool/Pool.sol +343 -0
  427. package/contracts/pool/PoolLib.sol +359 -0
  428. package/contracts/pool/PoolService.sol +614 -0
  429. package/contracts/pool/PoolServiceManager.sol +39 -0
  430. package/contracts/product/ApplicationService.sol +327 -0
  431. package/contracts/product/ApplicationServiceManager.sol +38 -0
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +639 -0
  435. package/contracts/product/ClaimServiceManager.sol +38 -0
  436. package/contracts/product/IApplicationService.sol +88 -0
  437. package/contracts/product/IClaimService.sol +135 -0
  438. package/contracts/product/IPolicyService.sol +102 -0
  439. package/contracts/product/IPricingService.sol +40 -0
  440. package/contracts/product/IProductComponent.sol +62 -0
  441. package/contracts/product/IRiskService.sol +33 -0
  442. package/contracts/product/PolicyService.sol +645 -0
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +306 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +472 -0
  448. package/contracts/product/RiskService.sol +157 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +83 -36
  451. package/contracts/registry/IRegistry.sol +113 -29
  452. package/contracts/registry/IRegistryService.sol +38 -34
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -1
  455. package/contracts/registry/Registry.sol +550 -210
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +284 -0
  458. package/contracts/registry/RegistryService.sol +119 -198
  459. package/contracts/registry/RegistryServiceManager.sol +24 -33
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  464. package/contracts/registry/TokenRegistry.sol +265 -61
  465. package/contracts/shared/Component.sol +210 -0
  466. package/contracts/shared/ComponentService.sol +678 -0
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ContractLib.sol +311 -0
  469. package/contracts/shared/IComponent.sol +58 -0
  470. package/contracts/shared/IComponentService.sol +110 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  473. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  474. package/contracts/shared/INftOwnable.sol +15 -12
  475. package/contracts/shared/IPolicyHolder.sol +35 -0
  476. package/contracts/shared/IRegisterable.sol +24 -5
  477. package/contracts/shared/IRegistryLinked.sol +11 -0
  478. package/contracts/shared/IService.sol +12 -5
  479. package/contracts/shared/InitializableERC165.sol +35 -0
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +75 -82
  485. package/contracts/shared/PolicyHolder.sol +63 -0
  486. package/contracts/shared/Registerable.sol +54 -38
  487. package/contracts/shared/RegistryLinked.sol +38 -0
  488. package/contracts/shared/Service.sol +44 -35
  489. package/contracts/shared/TokenHandler.sol +327 -12
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +195 -0
  492. package/contracts/staking/IStakingService.sol +170 -0
  493. package/contracts/staking/Staking.sol +605 -0
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +199 -0
  498. package/contracts/staking/StakingService.sol +468 -0
  499. package/contracts/staking/StakingServiceManager.sol +45 -0
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/{types → type}/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/type/ClaimId.sol +80 -0
  506. package/contracts/{types → type}/DistributorType.sol +2 -2
  507. package/contracts/type/Fee.sol +66 -0
  508. package/contracts/{types → type}/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/{types → type}/NftId.sol +28 -15
  511. package/contracts/{types → type}/NftIdSet.sol +2 -2
  512. package/contracts/type/ObjectType.sol +307 -0
  513. package/contracts/type/PayoutId.sol +82 -0
  514. package/contracts/{types → type}/Referral.sol +6 -1
  515. package/contracts/type/RequestId.sol +75 -0
  516. package/contracts/type/RiskId.sol +75 -0
  517. package/contracts/type/RoleId.sol +180 -0
  518. package/contracts/type/Seconds.sol +105 -0
  519. package/contracts/type/Selector.sol +107 -0
  520. package/contracts/{types → type}/StateId.sol +48 -4
  521. package/contracts/type/String.sol +65 -0
  522. package/contracts/{types → type}/Timestamp.sol +33 -19
  523. package/contracts/type/UFixed.sol +262 -0
  524. package/contracts/{types → type}/Version.sol +59 -7
  525. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  526. package/contracts/upgradeability/ProxyManager.sol +246 -0
  527. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  528. package/contracts/upgradeability/Versionable.sol +62 -0
  529. package/package.json +12 -8
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  532. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -397
  534. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  540. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  548. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  550. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  552. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  554. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  556. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  558. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  560. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  565. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  567. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  571. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  573. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  575. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  581. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  582. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  583. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  585. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  586. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  587. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  589. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  590. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  591. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  593. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -532
  595. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  597. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  603. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  605. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
  609. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  611. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  617. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  621. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  624. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1156
  627. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  629. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  631. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  633. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  635. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  636. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  637. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  638. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  639. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  640. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  641. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  642. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  643. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  644. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  645. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  646. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  647. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  648. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  649. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  650. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  651. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  652. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  653. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  654. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  655. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  657. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  659. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  661. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  662. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  663. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  664. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  665. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  666. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  667. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  669. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  670. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  671. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  672. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  673. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  675. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  677. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  679. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  681. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  683. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  685. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  686. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  687. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  689. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  691. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  693. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  695. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  697. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  699. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  701. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  703. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  705. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  707. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  709. package/contracts/components/BaseComponent.sol +0 -159
  710. package/contracts/components/Distribution.sol +0 -164
  711. package/contracts/components/IBaseComponent.sol +0 -34
  712. package/contracts/components/IDistributionComponent.sol +0 -44
  713. package/contracts/components/IPoolComponent.sol +0 -66
  714. package/contracts/components/IProductComponent.sol +0 -35
  715. package/contracts/components/Pool.sol +0 -272
  716. package/contracts/components/Product.sol +0 -301
  717. package/contracts/experiment/cloning/Cloner.sol +0 -47
  718. package/contracts/experiment/errors/Require.sol +0 -38
  719. package/contracts/experiment/errors/Revert.sol +0 -44
  720. package/contracts/experiment/inheritance/A.sol +0 -53
  721. package/contracts/experiment/inheritance/B.sol +0 -28
  722. package/contracts/experiment/inheritance/C.sol +0 -34
  723. package/contracts/experiment/inheritance/IA.sol +0 -13
  724. package/contracts/experiment/inheritance/IB.sol +0 -10
  725. package/contracts/experiment/inheritance/IC.sol +0 -12
  726. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  727. package/contracts/experiment/statemachine/ISM.sol +0 -25
  728. package/contracts/experiment/statemachine/SM.sol +0 -57
  729. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  730. package/contracts/experiment/types/TypeA.sol +0 -47
  731. package/contracts/experiment/types/TypeB.sol +0 -29
  732. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  733. package/contracts/instance/BundleManager.sol +0 -129
  734. package/contracts/instance/IInstanceBase.sol +0 -26
  735. package/contracts/instance/InstanceAccessManager.sol +0 -303
  736. package/contracts/instance/InstanceBase.sol +0 -41
  737. package/contracts/instance/ObjectManager.sol +0 -101
  738. package/contracts/instance/base/ComponentServiceBase.sol +0 -76
  739. package/contracts/instance/base/IInstanceBase.sol +0 -23
  740. package/contracts/instance/base/KeyValueStore.sol +0 -172
  741. package/contracts/instance/base/Lifecycle.sol +0 -100
  742. package/contracts/instance/module/IAccess.sol +0 -48
  743. package/contracts/instance/module/ISetup.sol +0 -46
  744. package/contracts/instance/module/ITreasury.sol +0 -23
  745. package/contracts/instance/service/BundleService.sol +0 -294
  746. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  747. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  748. package/contracts/instance/service/DistributionService.sol +0 -120
  749. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  750. package/contracts/instance/service/IBundleService.sol +0 -44
  751. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  752. package/contracts/instance/service/IDistributionService.sol +0 -12
  753. package/contracts/instance/service/IPolicyService.sol +0 -94
  754. package/contracts/instance/service/IPoolService.sol +0 -20
  755. package/contracts/instance/service/IProductService.sol +0 -40
  756. package/contracts/instance/service/PolicyService.sol +0 -539
  757. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  758. package/contracts/instance/service/PoolService.sol +0 -145
  759. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  760. package/contracts/instance/service/ProductService.sol +0 -213
  761. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  762. package/contracts/registry/RegistryAccessManager.sol +0 -210
  763. package/contracts/registry/ReleaseManager.sol +0 -342
  764. package/contracts/shared/ContractDeployerLib.sol +0 -72
  765. package/contracts/shared/ERC165.sol +0 -25
  766. package/contracts/shared/ProxyManager.sol +0 -94
  767. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  768. package/contracts/shared/Versionable.sol +0 -147
  769. package/contracts/test/TestFee.sol +0 -25
  770. package/contracts/test/TestRegisterable.sol +0 -18
  771. package/contracts/test/TestRoleId.sol +0 -14
  772. package/contracts/test/TestService.sol +0 -25
  773. package/contracts/test/TestToken.sol +0 -26
  774. package/contracts/test/TestVersion.sol +0 -44
  775. package/contracts/test/TestVersionable.sol +0 -17
  776. package/contracts/types/ChainId.sol +0 -38
  777. package/contracts/types/Fee.sol +0 -56
  778. package/contracts/types/NumberId.sol +0 -52
  779. package/contracts/types/ObjectType.sol +0 -152
  780. package/contracts/types/RiskId.sol +0 -43
  781. package/contracts/types/RoleId.sol +0 -90
  782. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,2035 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Staking",
4
+ "sourceName": "contracts/staking/Staking.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "authority",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorAuthorityInvalid",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [],
57
+ "name": "ErrorComponentNameLengthZero",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "caller",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "ErrorComponentNotChainNft",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "ErrorComponentProductNftIdNonzero",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "ErrorComponentProductNftIdZero",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "ErrorComponentWalletAddressIsSameAsCurrent",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "ErrorComponentWalletAddressZero",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "ErrorComponentWalletNotComponent",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "NftId",
100
+ "name": "nftId",
101
+ "type": "uint96"
102
+ }
103
+ ],
104
+ "name": "ErrorNftOwnableAlreadyLinked",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [
109
+ {
110
+ "internalType": "address",
111
+ "name": "contractAddress",
112
+ "type": "address"
113
+ }
114
+ ],
115
+ "name": "ErrorNftOwnableContractNotRegistered",
116
+ "type": "error"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "ErrorNftOwnableInitialOwnerZero",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "NftId",
127
+ "name": "nftId",
128
+ "type": "uint96"
129
+ },
130
+ {
131
+ "internalType": "ObjectType",
132
+ "name": "expectedObjectType",
133
+ "type": "uint8"
134
+ }
135
+ ],
136
+ "name": "ErrorNftOwnableInvalidType",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "address",
143
+ "name": "account",
144
+ "type": "address"
145
+ }
146
+ ],
147
+ "name": "ErrorNftOwnableNotOwner",
148
+ "type": "error"
149
+ },
150
+ {
151
+ "inputs": [
152
+ {
153
+ "internalType": "address",
154
+ "name": "registryAddress",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "ErrorNotRegistry",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [],
163
+ "name": "ErrorRegisterableNotActive",
164
+ "type": "error"
165
+ },
166
+ {
167
+ "inputs": [
168
+ {
169
+ "internalType": "address",
170
+ "name": "owner",
171
+ "type": "address"
172
+ },
173
+ {
174
+ "internalType": "address",
175
+ "name": "tokenHandler",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "internalType": "uint256",
180
+ "name": "amount",
181
+ "type": "uint256"
182
+ },
183
+ {
184
+ "internalType": "uint256",
185
+ "name": "dipAllowance",
186
+ "type": "uint256"
187
+ }
188
+ ],
189
+ "name": "ErrorStakingDipAllowanceInsufficient",
190
+ "type": "error"
191
+ },
192
+ {
193
+ "inputs": [
194
+ {
195
+ "internalType": "address",
196
+ "name": "owner",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "internalType": "uint256",
201
+ "name": "amount",
202
+ "type": "uint256"
203
+ },
204
+ {
205
+ "internalType": "uint256",
206
+ "name": "dipBalance",
207
+ "type": "uint256"
208
+ }
209
+ ],
210
+ "name": "ErrorStakingDipBalanceInsufficient",
211
+ "type": "error"
212
+ },
213
+ {
214
+ "inputs": [
215
+ {
216
+ "internalType": "NftId",
217
+ "name": "targetNftId",
218
+ "type": "uint96"
219
+ },
220
+ {
221
+ "internalType": "Seconds",
222
+ "name": "maxLockingPeriod",
223
+ "type": "uint40"
224
+ },
225
+ {
226
+ "internalType": "Seconds",
227
+ "name": "lockingPeriod",
228
+ "type": "uint40"
229
+ }
230
+ ],
231
+ "name": "ErrorStakingLockingPeriodTooLong",
232
+ "type": "error"
233
+ },
234
+ {
235
+ "inputs": [
236
+ {
237
+ "internalType": "NftId",
238
+ "name": "targetNftId",
239
+ "type": "uint96"
240
+ },
241
+ {
242
+ "internalType": "Seconds",
243
+ "name": "minLockingPeriod",
244
+ "type": "uint40"
245
+ },
246
+ {
247
+ "internalType": "Seconds",
248
+ "name": "lockingPeriod",
249
+ "type": "uint40"
250
+ }
251
+ ],
252
+ "name": "ErrorStakingLockingPeriodTooShort",
253
+ "type": "error"
254
+ },
255
+ {
256
+ "inputs": [
257
+ {
258
+ "internalType": "NftId",
259
+ "name": "nftId",
260
+ "type": "uint96"
261
+ }
262
+ ],
263
+ "name": "ErrorStakingNotNftOwner",
264
+ "type": "error"
265
+ },
266
+ {
267
+ "inputs": [
268
+ {
269
+ "internalType": "address",
270
+ "name": "registry",
271
+ "type": "address"
272
+ }
273
+ ],
274
+ "name": "ErrorStakingNotRegistry",
275
+ "type": "error"
276
+ },
277
+ {
278
+ "inputs": [
279
+ {
280
+ "internalType": "NftId",
281
+ "name": "stakeNftId",
282
+ "type": "uint96"
283
+ }
284
+ ],
285
+ "name": "ErrorStakingNotStake",
286
+ "type": "error"
287
+ },
288
+ {
289
+ "inputs": [],
290
+ "name": "ErrorStakingNotStakingOwner",
291
+ "type": "error"
292
+ },
293
+ {
294
+ "inputs": [
295
+ {
296
+ "internalType": "NftId",
297
+ "name": "targetNftId",
298
+ "type": "uint96"
299
+ }
300
+ ],
301
+ "name": "ErrorStakingNotTarget",
302
+ "type": "error"
303
+ },
304
+ {
305
+ "inputs": [
306
+ {
307
+ "internalType": "NftId",
308
+ "name": "targetNftId",
309
+ "type": "uint96"
310
+ },
311
+ {
312
+ "internalType": "UFixed",
313
+ "name": "maxRewardRate",
314
+ "type": "uint160"
315
+ },
316
+ {
317
+ "internalType": "UFixed",
318
+ "name": "rewardRate",
319
+ "type": "uint160"
320
+ }
321
+ ],
322
+ "name": "ErrorStakingRewardRateTooHigh",
323
+ "type": "error"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "NftId",
329
+ "name": "targetNftId",
330
+ "type": "uint96"
331
+ }
332
+ ],
333
+ "name": "ErrorStakingStakeAmountZero",
334
+ "type": "error"
335
+ },
336
+ {
337
+ "inputs": [
338
+ {
339
+ "internalType": "NftId",
340
+ "name": "stakeNftId",
341
+ "type": "uint96"
342
+ },
343
+ {
344
+ "internalType": "Timestamp",
345
+ "name": "lockedUntil",
346
+ "type": "uint40"
347
+ }
348
+ ],
349
+ "name": "ErrorStakingStakeLocked",
350
+ "type": "error"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address",
356
+ "name": "stakingByStakingReader",
357
+ "type": "address"
358
+ }
359
+ ],
360
+ "name": "ErrorStakingStakingReaderStakingMismatch",
361
+ "type": "error"
362
+ },
363
+ {
364
+ "inputs": [
365
+ {
366
+ "internalType": "NftId",
367
+ "name": "targetNftId",
368
+ "type": "uint96"
369
+ }
370
+ ],
371
+ "name": "ErrorStakingTargetAlreadyRegistered",
372
+ "type": "error"
373
+ },
374
+ {
375
+ "inputs": [
376
+ {
377
+ "internalType": "NftId",
378
+ "name": "targetNftId",
379
+ "type": "uint96"
380
+ },
381
+ {
382
+ "internalType": "Amount",
383
+ "name": "maxStakedAmount",
384
+ "type": "uint96"
385
+ },
386
+ {
387
+ "internalType": "Amount",
388
+ "name": "stakedAmount",
389
+ "type": "uint96"
390
+ }
391
+ ],
392
+ "name": "ErrorStakingTargetMaxStakedAmountExceeded",
393
+ "type": "error"
394
+ },
395
+ {
396
+ "inputs": [],
397
+ "name": "ErrorStakingTargetNftIdZero",
398
+ "type": "error"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "NftId",
404
+ "name": "targetNftId",
405
+ "type": "uint96"
406
+ }
407
+ ],
408
+ "name": "ErrorStakingTargetNotFound",
409
+ "type": "error"
410
+ },
411
+ {
412
+ "inputs": [
413
+ {
414
+ "internalType": "NftId",
415
+ "name": "targetNftId",
416
+ "type": "uint96"
417
+ },
418
+ {
419
+ "internalType": "uint256",
420
+ "name": "chainId",
421
+ "type": "uint256"
422
+ },
423
+ {
424
+ "internalType": "address",
425
+ "name": "token",
426
+ "type": "address"
427
+ }
428
+ ],
429
+ "name": "ErrorStakingTargetTokenNotFound",
430
+ "type": "error"
431
+ },
432
+ {
433
+ "inputs": [
434
+ {
435
+ "internalType": "NftId",
436
+ "name": "targetNftId",
437
+ "type": "uint96"
438
+ },
439
+ {
440
+ "internalType": "ObjectType",
441
+ "name": "objectType",
442
+ "type": "uint8"
443
+ }
444
+ ],
445
+ "name": "ErrorStakingTargetTypeNotSupported",
446
+ "type": "error"
447
+ },
448
+ {
449
+ "inputs": [
450
+ {
451
+ "internalType": "NftId",
452
+ "name": "targetNftId",
453
+ "type": "uint96"
454
+ },
455
+ {
456
+ "internalType": "ObjectType",
457
+ "name": "expectedObjectType",
458
+ "type": "uint8"
459
+ },
460
+ {
461
+ "internalType": "ObjectType",
462
+ "name": "actualObjectType",
463
+ "type": "uint8"
464
+ }
465
+ ],
466
+ "name": "ErrorStakingTargetUnexpectedObjectType",
467
+ "type": "error"
468
+ },
469
+ {
470
+ "inputs": [
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "chainId",
474
+ "type": "uint256"
475
+ },
476
+ {
477
+ "internalType": "address",
478
+ "name": "token",
479
+ "type": "address"
480
+ }
481
+ ],
482
+ "name": "ErrorStakingTokenNotRegistered",
483
+ "type": "error"
484
+ },
485
+ {
486
+ "inputs": [],
487
+ "name": "ErrorVersionableInitializeNotImplemented",
488
+ "type": "error"
489
+ },
490
+ {
491
+ "inputs": [],
492
+ "name": "ErrorVersionableUpgradeNotImplemented",
493
+ "type": "error"
494
+ },
495
+ {
496
+ "inputs": [],
497
+ "name": "InvalidInitialization",
498
+ "type": "error"
499
+ },
500
+ {
501
+ "inputs": [],
502
+ "name": "NotInitializing",
503
+ "type": "error"
504
+ },
505
+ {
506
+ "anonymous": false,
507
+ "inputs": [
508
+ {
509
+ "indexed": false,
510
+ "internalType": "address",
511
+ "name": "authority",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "name": "AuthorityUpdated",
516
+ "type": "event"
517
+ },
518
+ {
519
+ "anonymous": false,
520
+ "inputs": [
521
+ {
522
+ "indexed": false,
523
+ "internalType": "uint64",
524
+ "name": "version",
525
+ "type": "uint64"
526
+ }
527
+ ],
528
+ "name": "Initialized",
529
+ "type": "event"
530
+ },
531
+ {
532
+ "anonymous": false,
533
+ "inputs": [
534
+ {
535
+ "indexed": false,
536
+ "internalType": "address",
537
+ "name": "tokenHandler",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "indexed": false,
542
+ "internalType": "address",
543
+ "name": "token",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "indexed": false,
548
+ "internalType": "Amount",
549
+ "name": "limit",
550
+ "type": "uint96"
551
+ },
552
+ {
553
+ "indexed": false,
554
+ "internalType": "bool",
555
+ "name": "isMaxAmount",
556
+ "type": "bool"
557
+ }
558
+ ],
559
+ "name": "LogComponentTokenHandlerApproved",
560
+ "type": "event"
561
+ },
562
+ {
563
+ "anonymous": false,
564
+ "inputs": [
565
+ {
566
+ "indexed": false,
567
+ "internalType": "address",
568
+ "name": "oldWallet",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "indexed": false,
573
+ "internalType": "address",
574
+ "name": "newWallet",
575
+ "type": "address"
576
+ }
577
+ ],
578
+ "name": "LogComponentWalletAddressChanged",
579
+ "type": "event"
580
+ },
581
+ {
582
+ "anonymous": false,
583
+ "inputs": [
584
+ {
585
+ "indexed": false,
586
+ "internalType": "address",
587
+ "name": "from",
588
+ "type": "address"
589
+ },
590
+ {
591
+ "indexed": false,
592
+ "internalType": "address",
593
+ "name": "to",
594
+ "type": "address"
595
+ },
596
+ {
597
+ "indexed": false,
598
+ "internalType": "uint256",
599
+ "name": "amount",
600
+ "type": "uint256"
601
+ }
602
+ ],
603
+ "name": "LogComponentWalletTokensTransferred",
604
+ "type": "event"
605
+ },
606
+ {
607
+ "anonymous": false,
608
+ "inputs": [
609
+ {
610
+ "indexed": false,
611
+ "internalType": "NftId",
612
+ "name": "targetNftId",
613
+ "type": "uint96"
614
+ },
615
+ {
616
+ "indexed": false,
617
+ "internalType": "Seconds",
618
+ "name": "oldLockingPeriod",
619
+ "type": "uint40"
620
+ },
621
+ {
622
+ "indexed": false,
623
+ "internalType": "Seconds",
624
+ "name": "lockingPeriod",
625
+ "type": "uint40"
626
+ }
627
+ ],
628
+ "name": "LogStakingLockingPeriodSet",
629
+ "type": "event"
630
+ },
631
+ {
632
+ "anonymous": false,
633
+ "inputs": [
634
+ {
635
+ "indexed": false,
636
+ "internalType": "NftId",
637
+ "name": "targetNftId",
638
+ "type": "uint96"
639
+ },
640
+ {
641
+ "indexed": false,
642
+ "internalType": "Amount",
643
+ "name": "maxStakedAmount",
644
+ "type": "uint96"
645
+ }
646
+ ],
647
+ "name": "LogStakingMaxStakedAmountSet",
648
+ "type": "event"
649
+ },
650
+ {
651
+ "anonymous": false,
652
+ "inputs": [
653
+ {
654
+ "indexed": false,
655
+ "internalType": "NftId",
656
+ "name": "targetNftId",
657
+ "type": "uint96"
658
+ },
659
+ {
660
+ "indexed": false,
661
+ "internalType": "Seconds",
662
+ "name": "oldLockingPeriod",
663
+ "type": "uint40"
664
+ },
665
+ {
666
+ "indexed": false,
667
+ "internalType": "Seconds",
668
+ "name": "lockingPeriod",
669
+ "type": "uint40"
670
+ }
671
+ ],
672
+ "name": "LogStakingProtocolLockingPeriodSet",
673
+ "type": "event"
674
+ },
675
+ {
676
+ "anonymous": false,
677
+ "inputs": [
678
+ {
679
+ "indexed": false,
680
+ "internalType": "NftId",
681
+ "name": "targetNftId",
682
+ "type": "uint96"
683
+ },
684
+ {
685
+ "indexed": false,
686
+ "internalType": "UFixed",
687
+ "name": "oldRewardRate",
688
+ "type": "uint160"
689
+ },
690
+ {
691
+ "indexed": false,
692
+ "internalType": "UFixed",
693
+ "name": "rewardRate",
694
+ "type": "uint160"
695
+ }
696
+ ],
697
+ "name": "LogStakingProtocolRewardRateSet",
698
+ "type": "event"
699
+ },
700
+ {
701
+ "anonymous": false,
702
+ "inputs": [
703
+ {
704
+ "indexed": false,
705
+ "internalType": "NftId",
706
+ "name": "targetNftId",
707
+ "type": "uint96"
708
+ },
709
+ {
710
+ "indexed": false,
711
+ "internalType": "UFixed",
712
+ "name": "oldRewardRate",
713
+ "type": "uint160"
714
+ },
715
+ {
716
+ "indexed": false,
717
+ "internalType": "UFixed",
718
+ "name": "rewardRate",
719
+ "type": "uint160"
720
+ }
721
+ ],
722
+ "name": "LogStakingRewardRateSet",
723
+ "type": "event"
724
+ },
725
+ {
726
+ "anonymous": false,
727
+ "inputs": [
728
+ {
729
+ "indexed": false,
730
+ "internalType": "uint256",
731
+ "name": "chainId",
732
+ "type": "uint256"
733
+ },
734
+ {
735
+ "indexed": false,
736
+ "internalType": "address",
737
+ "name": "token",
738
+ "type": "address"
739
+ },
740
+ {
741
+ "indexed": false,
742
+ "internalType": "UFixed",
743
+ "name": "oldStakingRate",
744
+ "type": "uint160"
745
+ },
746
+ {
747
+ "indexed": false,
748
+ "internalType": "UFixed",
749
+ "name": "newStakingRate",
750
+ "type": "uint160"
751
+ }
752
+ ],
753
+ "name": "LogStakingStakingRateSet",
754
+ "type": "event"
755
+ },
756
+ {
757
+ "anonymous": false,
758
+ "inputs": [
759
+ {
760
+ "indexed": false,
761
+ "internalType": "NftId",
762
+ "name": "targetNftId",
763
+ "type": "uint96"
764
+ },
765
+ {
766
+ "indexed": false,
767
+ "internalType": "ObjectType",
768
+ "name": "objectType",
769
+ "type": "uint8"
770
+ },
771
+ {
772
+ "indexed": false,
773
+ "internalType": "Seconds",
774
+ "name": "lockingPeriod",
775
+ "type": "uint40"
776
+ },
777
+ {
778
+ "indexed": false,
779
+ "internalType": "UFixed",
780
+ "name": "rewardRate",
781
+ "type": "uint160"
782
+ },
783
+ {
784
+ "indexed": false,
785
+ "internalType": "Amount",
786
+ "name": "maxStakedAmount",
787
+ "type": "uint96"
788
+ }
789
+ ],
790
+ "name": "LogStakingTargetRegistered",
791
+ "type": "event"
792
+ },
793
+ {
794
+ "inputs": [],
795
+ "name": "COMPONENT_LOCATION_V1",
796
+ "outputs": [
797
+ {
798
+ "internalType": "bytes32",
799
+ "name": "",
800
+ "type": "bytes32"
801
+ }
802
+ ],
803
+ "stateMutability": "view",
804
+ "type": "function"
805
+ },
806
+ {
807
+ "inputs": [],
808
+ "name": "CONTRACT_NAME",
809
+ "outputs": [
810
+ {
811
+ "internalType": "string",
812
+ "name": "",
813
+ "type": "string"
814
+ }
815
+ ],
816
+ "stateMutability": "view",
817
+ "type": "function"
818
+ },
819
+ {
820
+ "inputs": [],
821
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
822
+ "outputs": [
823
+ {
824
+ "internalType": "bytes32",
825
+ "name": "",
826
+ "type": "bytes32"
827
+ }
828
+ ],
829
+ "stateMutability": "view",
830
+ "type": "function"
831
+ },
832
+ {
833
+ "inputs": [],
834
+ "name": "REGISTERABLE_LOCATION_V1",
835
+ "outputs": [
836
+ {
837
+ "internalType": "bytes32",
838
+ "name": "",
839
+ "type": "bytes32"
840
+ }
841
+ ],
842
+ "stateMutability": "view",
843
+ "type": "function"
844
+ },
845
+ {
846
+ "inputs": [],
847
+ "name": "STAKING_LOCATION_V1",
848
+ "outputs": [
849
+ {
850
+ "internalType": "bytes32",
851
+ "name": "",
852
+ "type": "bytes32"
853
+ }
854
+ ],
855
+ "stateMutability": "view",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [
860
+ {
861
+ "internalType": "contract IERC20Metadata",
862
+ "name": "token",
863
+ "type": "address"
864
+ },
865
+ {
866
+ "internalType": "Amount",
867
+ "name": "amount",
868
+ "type": "uint96"
869
+ }
870
+ ],
871
+ "name": "approveTokenHandler",
872
+ "outputs": [],
873
+ "stateMutability": "nonpayable",
874
+ "type": "function"
875
+ },
876
+ {
877
+ "inputs": [],
878
+ "name": "authority",
879
+ "outputs": [
880
+ {
881
+ "internalType": "address",
882
+ "name": "",
883
+ "type": "address"
884
+ }
885
+ ],
886
+ "stateMutability": "view",
887
+ "type": "function"
888
+ },
889
+ {
890
+ "inputs": [
891
+ {
892
+ "internalType": "NftId",
893
+ "name": "stakeNftId",
894
+ "type": "uint96"
895
+ }
896
+ ],
897
+ "name": "claimRewards",
898
+ "outputs": [
899
+ {
900
+ "internalType": "Amount",
901
+ "name": "rewardsClaimedAmount",
902
+ "type": "uint96"
903
+ }
904
+ ],
905
+ "stateMutability": "nonpayable",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "NftId",
912
+ "name": "stakeNftId",
913
+ "type": "uint96"
914
+ },
915
+ {
916
+ "internalType": "NftId",
917
+ "name": "targetNftId",
918
+ "type": "uint96"
919
+ },
920
+ {
921
+ "internalType": "Amount",
922
+ "name": "stakeAmount",
923
+ "type": "uint96"
924
+ }
925
+ ],
926
+ "name": "createStake",
927
+ "outputs": [],
928
+ "stateMutability": "nonpayable",
929
+ "type": "function"
930
+ },
931
+ {
932
+ "inputs": [
933
+ {
934
+ "internalType": "NftId",
935
+ "name": "targetNftId",
936
+ "type": "uint96"
937
+ },
938
+ {
939
+ "internalType": "address",
940
+ "name": "token",
941
+ "type": "address"
942
+ },
943
+ {
944
+ "internalType": "Amount",
945
+ "name": "amount",
946
+ "type": "uint96"
947
+ }
948
+ ],
949
+ "name": "decreaseTotalValueLocked",
950
+ "outputs": [
951
+ {
952
+ "internalType": "Amount",
953
+ "name": "newBalance",
954
+ "type": "uint96"
955
+ }
956
+ ],
957
+ "stateMutability": "nonpayable",
958
+ "type": "function"
959
+ },
960
+ {
961
+ "inputs": [],
962
+ "name": "getComponentInfo",
963
+ "outputs": [
964
+ {
965
+ "components": [
966
+ {
967
+ "internalType": "string",
968
+ "name": "name",
969
+ "type": "string"
970
+ },
971
+ {
972
+ "internalType": "contract TokenHandler",
973
+ "name": "tokenHandler",
974
+ "type": "address"
975
+ },
976
+ {
977
+ "internalType": "bytes",
978
+ "name": "data",
979
+ "type": "bytes"
980
+ }
981
+ ],
982
+ "internalType": "struct IComponents.ComponentInfo",
983
+ "name": "info",
984
+ "type": "tuple"
985
+ }
986
+ ],
987
+ "stateMutability": "view",
988
+ "type": "function"
989
+ },
990
+ {
991
+ "inputs": [],
992
+ "name": "getInitialComponentInfo",
993
+ "outputs": [
994
+ {
995
+ "components": [
996
+ {
997
+ "internalType": "string",
998
+ "name": "name",
999
+ "type": "string"
1000
+ },
1001
+ {
1002
+ "internalType": "contract TokenHandler",
1003
+ "name": "tokenHandler",
1004
+ "type": "address"
1005
+ },
1006
+ {
1007
+ "internalType": "bytes",
1008
+ "name": "data",
1009
+ "type": "bytes"
1010
+ }
1011
+ ],
1012
+ "internalType": "struct IComponents.ComponentInfo",
1013
+ "name": "info",
1014
+ "type": "tuple"
1015
+ }
1016
+ ],
1017
+ "stateMutability": "view",
1018
+ "type": "function"
1019
+ },
1020
+ {
1021
+ "inputs": [],
1022
+ "name": "getInitialInfo",
1023
+ "outputs": [
1024
+ {
1025
+ "components": [
1026
+ {
1027
+ "internalType": "NftId",
1028
+ "name": "nftId",
1029
+ "type": "uint96"
1030
+ },
1031
+ {
1032
+ "internalType": "NftId",
1033
+ "name": "parentNftId",
1034
+ "type": "uint96"
1035
+ },
1036
+ {
1037
+ "internalType": "ObjectType",
1038
+ "name": "objectType",
1039
+ "type": "uint8"
1040
+ },
1041
+ {
1042
+ "internalType": "bool",
1043
+ "name": "isInterceptor",
1044
+ "type": "bool"
1045
+ },
1046
+ {
1047
+ "internalType": "address",
1048
+ "name": "objectAddress",
1049
+ "type": "address"
1050
+ },
1051
+ {
1052
+ "internalType": "address",
1053
+ "name": "initialOwner",
1054
+ "type": "address"
1055
+ },
1056
+ {
1057
+ "internalType": "bytes",
1058
+ "name": "data",
1059
+ "type": "bytes"
1060
+ }
1061
+ ],
1062
+ "internalType": "struct IRegistry.ObjectInfo",
1063
+ "name": "info",
1064
+ "type": "tuple"
1065
+ }
1066
+ ],
1067
+ "stateMutability": "view",
1068
+ "type": "function"
1069
+ },
1070
+ {
1071
+ "inputs": [],
1072
+ "name": "getName",
1073
+ "outputs": [
1074
+ {
1075
+ "internalType": "string",
1076
+ "name": "name",
1077
+ "type": "string"
1078
+ }
1079
+ ],
1080
+ "stateMutability": "view",
1081
+ "type": "function"
1082
+ },
1083
+ {
1084
+ "inputs": [],
1085
+ "name": "getNftId",
1086
+ "outputs": [
1087
+ {
1088
+ "internalType": "NftId",
1089
+ "name": "",
1090
+ "type": "uint96"
1091
+ }
1092
+ ],
1093
+ "stateMutability": "view",
1094
+ "type": "function"
1095
+ },
1096
+ {
1097
+ "inputs": [],
1098
+ "name": "getOwner",
1099
+ "outputs": [
1100
+ {
1101
+ "internalType": "address",
1102
+ "name": "",
1103
+ "type": "address"
1104
+ }
1105
+ ],
1106
+ "stateMutability": "view",
1107
+ "type": "function"
1108
+ },
1109
+ {
1110
+ "inputs": [],
1111
+ "name": "getRegistry",
1112
+ "outputs": [
1113
+ {
1114
+ "internalType": "contract IRegistry",
1115
+ "name": "",
1116
+ "type": "address"
1117
+ }
1118
+ ],
1119
+ "stateMutability": "view",
1120
+ "type": "function"
1121
+ },
1122
+ {
1123
+ "inputs": [],
1124
+ "name": "getRelease",
1125
+ "outputs": [
1126
+ {
1127
+ "internalType": "VersionPart",
1128
+ "name": "",
1129
+ "type": "uint8"
1130
+ }
1131
+ ],
1132
+ "stateMutability": "pure",
1133
+ "type": "function"
1134
+ },
1135
+ {
1136
+ "inputs": [],
1137
+ "name": "getStakingReader",
1138
+ "outputs": [
1139
+ {
1140
+ "internalType": "contract StakingReader",
1141
+ "name": "reader",
1142
+ "type": "address"
1143
+ }
1144
+ ],
1145
+ "stateMutability": "view",
1146
+ "type": "function"
1147
+ },
1148
+ {
1149
+ "inputs": [],
1150
+ "name": "getStakingStore",
1151
+ "outputs": [
1152
+ {
1153
+ "internalType": "contract StakingStore",
1154
+ "name": "stakingStore",
1155
+ "type": "address"
1156
+ }
1157
+ ],
1158
+ "stateMutability": "view",
1159
+ "type": "function"
1160
+ },
1161
+ {
1162
+ "inputs": [],
1163
+ "name": "getToken",
1164
+ "outputs": [
1165
+ {
1166
+ "internalType": "contract IERC20Metadata",
1167
+ "name": "token",
1168
+ "type": "address"
1169
+ }
1170
+ ],
1171
+ "stateMutability": "view",
1172
+ "type": "function"
1173
+ },
1174
+ {
1175
+ "inputs": [],
1176
+ "name": "getTokenHandler",
1177
+ "outputs": [
1178
+ {
1179
+ "internalType": "contract TokenHandler",
1180
+ "name": "tokenHandler",
1181
+ "type": "address"
1182
+ }
1183
+ ],
1184
+ "stateMutability": "view",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [],
1189
+ "name": "getTokenRegistryAddress",
1190
+ "outputs": [
1191
+ {
1192
+ "internalType": "address",
1193
+ "name": "tokenRegistry",
1194
+ "type": "address"
1195
+ }
1196
+ ],
1197
+ "stateMutability": "view",
1198
+ "type": "function"
1199
+ },
1200
+ {
1201
+ "inputs": [],
1202
+ "name": "getVersion",
1203
+ "outputs": [
1204
+ {
1205
+ "internalType": "Version",
1206
+ "name": "",
1207
+ "type": "uint24"
1208
+ }
1209
+ ],
1210
+ "stateMutability": "pure",
1211
+ "type": "function"
1212
+ },
1213
+ {
1214
+ "inputs": [],
1215
+ "name": "getWallet",
1216
+ "outputs": [
1217
+ {
1218
+ "internalType": "address",
1219
+ "name": "walletAddress",
1220
+ "type": "address"
1221
+ }
1222
+ ],
1223
+ "stateMutability": "view",
1224
+ "type": "function"
1225
+ },
1226
+ {
1227
+ "inputs": [
1228
+ {
1229
+ "internalType": "NftId",
1230
+ "name": "targetNftId",
1231
+ "type": "uint96"
1232
+ },
1233
+ {
1234
+ "internalType": "address",
1235
+ "name": "token",
1236
+ "type": "address"
1237
+ },
1238
+ {
1239
+ "internalType": "Amount",
1240
+ "name": "amount",
1241
+ "type": "uint96"
1242
+ }
1243
+ ],
1244
+ "name": "increaseTotalValueLocked",
1245
+ "outputs": [
1246
+ {
1247
+ "internalType": "Amount",
1248
+ "name": "newBalance",
1249
+ "type": "uint96"
1250
+ }
1251
+ ],
1252
+ "stateMutability": "nonpayable",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [],
1257
+ "name": "initializeTokenHandler",
1258
+ "outputs": [],
1259
+ "stateMutability": "nonpayable",
1260
+ "type": "function"
1261
+ },
1262
+ {
1263
+ "inputs": [
1264
+ {
1265
+ "internalType": "address",
1266
+ "name": "activatedBy",
1267
+ "type": "address"
1268
+ },
1269
+ {
1270
+ "internalType": "bytes",
1271
+ "name": "data",
1272
+ "type": "bytes"
1273
+ }
1274
+ ],
1275
+ "name": "initializeVersionable",
1276
+ "outputs": [],
1277
+ "stateMutability": "nonpayable",
1278
+ "type": "function"
1279
+ },
1280
+ {
1281
+ "inputs": [],
1282
+ "name": "isActive",
1283
+ "outputs": [
1284
+ {
1285
+ "internalType": "bool",
1286
+ "name": "active",
1287
+ "type": "bool"
1288
+ }
1289
+ ],
1290
+ "stateMutability": "view",
1291
+ "type": "function"
1292
+ },
1293
+ {
1294
+ "inputs": [],
1295
+ "name": "isConsumingScheduledOp",
1296
+ "outputs": [
1297
+ {
1298
+ "internalType": "bytes4",
1299
+ "name": "",
1300
+ "type": "bytes4"
1301
+ }
1302
+ ],
1303
+ "stateMutability": "view",
1304
+ "type": "function"
1305
+ },
1306
+ {
1307
+ "inputs": [],
1308
+ "name": "isNftInterceptor",
1309
+ "outputs": [
1310
+ {
1311
+ "internalType": "bool",
1312
+ "name": "isInterceptor",
1313
+ "type": "bool"
1314
+ }
1315
+ ],
1316
+ "stateMutability": "view",
1317
+ "type": "function"
1318
+ },
1319
+ {
1320
+ "inputs": [],
1321
+ "name": "isRegistered",
1322
+ "outputs": [
1323
+ {
1324
+ "internalType": "bool",
1325
+ "name": "",
1326
+ "type": "bool"
1327
+ }
1328
+ ],
1329
+ "stateMutability": "view",
1330
+ "type": "function"
1331
+ },
1332
+ {
1333
+ "inputs": [],
1334
+ "name": "linkToRegisteredNftId",
1335
+ "outputs": [
1336
+ {
1337
+ "internalType": "NftId",
1338
+ "name": "nftId",
1339
+ "type": "uint96"
1340
+ }
1341
+ ],
1342
+ "stateMutability": "nonpayable",
1343
+ "type": "function"
1344
+ },
1345
+ {
1346
+ "inputs": [
1347
+ {
1348
+ "internalType": "address",
1349
+ "name": "from",
1350
+ "type": "address"
1351
+ },
1352
+ {
1353
+ "internalType": "address",
1354
+ "name": "to",
1355
+ "type": "address"
1356
+ },
1357
+ {
1358
+ "internalType": "uint256",
1359
+ "name": "tokenId",
1360
+ "type": "uint256"
1361
+ },
1362
+ {
1363
+ "internalType": "address",
1364
+ "name": "operator",
1365
+ "type": "address"
1366
+ }
1367
+ ],
1368
+ "name": "nftTransferFrom",
1369
+ "outputs": [],
1370
+ "stateMutability": "nonpayable",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [
1375
+ {
1376
+ "internalType": "NftId",
1377
+ "name": "targetNftId",
1378
+ "type": "uint96"
1379
+ },
1380
+ {
1381
+ "internalType": "Amount",
1382
+ "name": "dipAmount",
1383
+ "type": "uint96"
1384
+ }
1385
+ ],
1386
+ "name": "refillRewardReserves",
1387
+ "outputs": [
1388
+ {
1389
+ "internalType": "Amount",
1390
+ "name": "newBalance",
1391
+ "type": "uint96"
1392
+ }
1393
+ ],
1394
+ "stateMutability": "nonpayable",
1395
+ "type": "function"
1396
+ },
1397
+ {
1398
+ "inputs": [
1399
+ {
1400
+ "internalType": "NftId",
1401
+ "name": "targetNftId",
1402
+ "type": "uint96"
1403
+ },
1404
+ {
1405
+ "components": [
1406
+ {
1407
+ "internalType": "UFixed",
1408
+ "name": "rewardRate",
1409
+ "type": "uint160"
1410
+ },
1411
+ {
1412
+ "internalType": "Amount",
1413
+ "name": "maxStakedAmount",
1414
+ "type": "uint96"
1415
+ },
1416
+ {
1417
+ "internalType": "ObjectType",
1418
+ "name": "objectType",
1419
+ "type": "uint8"
1420
+ },
1421
+ {
1422
+ "internalType": "Seconds",
1423
+ "name": "lockingPeriod",
1424
+ "type": "uint40"
1425
+ },
1426
+ {
1427
+ "internalType": "uint256",
1428
+ "name": "chainId",
1429
+ "type": "uint256"
1430
+ }
1431
+ ],
1432
+ "internalType": "struct IStaking.TargetInfo",
1433
+ "name": "targetInfo",
1434
+ "type": "tuple"
1435
+ }
1436
+ ],
1437
+ "name": "registerRemoteTarget",
1438
+ "outputs": [],
1439
+ "stateMutability": "nonpayable",
1440
+ "type": "function"
1441
+ },
1442
+ {
1443
+ "inputs": [
1444
+ {
1445
+ "internalType": "NftId",
1446
+ "name": "targetNftId",
1447
+ "type": "uint96"
1448
+ },
1449
+ {
1450
+ "internalType": "ObjectType",
1451
+ "name": "expectedObjectType",
1452
+ "type": "uint8"
1453
+ },
1454
+ {
1455
+ "internalType": "uint256",
1456
+ "name": "chainId",
1457
+ "type": "uint256"
1458
+ },
1459
+ {
1460
+ "internalType": "Seconds",
1461
+ "name": "initialLockingPeriod",
1462
+ "type": "uint40"
1463
+ },
1464
+ {
1465
+ "internalType": "UFixed",
1466
+ "name": "initialRewardRate",
1467
+ "type": "uint160"
1468
+ }
1469
+ ],
1470
+ "name": "registerTarget",
1471
+ "outputs": [],
1472
+ "stateMutability": "nonpayable",
1473
+ "type": "function"
1474
+ },
1475
+ {
1476
+ "inputs": [
1477
+ {
1478
+ "internalType": "NftId",
1479
+ "name": "stakeNftId",
1480
+ "type": "uint96"
1481
+ },
1482
+ {
1483
+ "internalType": "NftId",
1484
+ "name": "newStakeNftId",
1485
+ "type": "uint96"
1486
+ }
1487
+ ],
1488
+ "name": "restake",
1489
+ "outputs": [
1490
+ {
1491
+ "internalType": "Amount",
1492
+ "name": "newStakeBalance",
1493
+ "type": "uint96"
1494
+ }
1495
+ ],
1496
+ "stateMutability": "nonpayable",
1497
+ "type": "function"
1498
+ },
1499
+ {
1500
+ "inputs": [
1501
+ {
1502
+ "internalType": "address",
1503
+ "name": "newAuthority",
1504
+ "type": "address"
1505
+ }
1506
+ ],
1507
+ "name": "setAuthority",
1508
+ "outputs": [],
1509
+ "stateMutability": "nonpayable",
1510
+ "type": "function"
1511
+ },
1512
+ {
1513
+ "inputs": [
1514
+ {
1515
+ "internalType": "NftId",
1516
+ "name": "targetNftId",
1517
+ "type": "uint96"
1518
+ },
1519
+ {
1520
+ "internalType": "Seconds",
1521
+ "name": "lockingPeriod",
1522
+ "type": "uint40"
1523
+ }
1524
+ ],
1525
+ "name": "setLockingPeriod",
1526
+ "outputs": [],
1527
+ "stateMutability": "nonpayable",
1528
+ "type": "function"
1529
+ },
1530
+ {
1531
+ "inputs": [
1532
+ {
1533
+ "internalType": "NftId",
1534
+ "name": "targetNftId",
1535
+ "type": "uint96"
1536
+ },
1537
+ {
1538
+ "internalType": "Amount",
1539
+ "name": "maxStakedAmount",
1540
+ "type": "uint96"
1541
+ }
1542
+ ],
1543
+ "name": "setMaxStakedAmount",
1544
+ "outputs": [],
1545
+ "stateMutability": "nonpayable",
1546
+ "type": "function"
1547
+ },
1548
+ {
1549
+ "inputs": [
1550
+ {
1551
+ "internalType": "Seconds",
1552
+ "name": "lockingPeriod",
1553
+ "type": "uint40"
1554
+ }
1555
+ ],
1556
+ "name": "setProtocolLockingPeriod",
1557
+ "outputs": [],
1558
+ "stateMutability": "nonpayable",
1559
+ "type": "function"
1560
+ },
1561
+ {
1562
+ "inputs": [
1563
+ {
1564
+ "internalType": "UFixed",
1565
+ "name": "rewardRate",
1566
+ "type": "uint160"
1567
+ }
1568
+ ],
1569
+ "name": "setProtocolRewardRate",
1570
+ "outputs": [],
1571
+ "stateMutability": "nonpayable",
1572
+ "type": "function"
1573
+ },
1574
+ {
1575
+ "inputs": [
1576
+ {
1577
+ "internalType": "NftId",
1578
+ "name": "targetNftId",
1579
+ "type": "uint96"
1580
+ },
1581
+ {
1582
+ "internalType": "UFixed",
1583
+ "name": "rewardRate",
1584
+ "type": "uint160"
1585
+ }
1586
+ ],
1587
+ "name": "setRewardRate",
1588
+ "outputs": [],
1589
+ "stateMutability": "nonpayable",
1590
+ "type": "function"
1591
+ },
1592
+ {
1593
+ "inputs": [
1594
+ {
1595
+ "internalType": "uint256",
1596
+ "name": "chainId",
1597
+ "type": "uint256"
1598
+ },
1599
+ {
1600
+ "internalType": "address",
1601
+ "name": "token",
1602
+ "type": "address"
1603
+ },
1604
+ {
1605
+ "internalType": "UFixed",
1606
+ "name": "stakingRate",
1607
+ "type": "uint160"
1608
+ }
1609
+ ],
1610
+ "name": "setStakingRate",
1611
+ "outputs": [],
1612
+ "stateMutability": "nonpayable",
1613
+ "type": "function"
1614
+ },
1615
+ {
1616
+ "inputs": [
1617
+ {
1618
+ "internalType": "contract StakingReader",
1619
+ "name": "stakingReader",
1620
+ "type": "address"
1621
+ }
1622
+ ],
1623
+ "name": "setStakingReader",
1624
+ "outputs": [],
1625
+ "stateMutability": "nonpayable",
1626
+ "type": "function"
1627
+ },
1628
+ {
1629
+ "inputs": [
1630
+ {
1631
+ "internalType": "NftId",
1632
+ "name": "stakeNftId",
1633
+ "type": "uint96"
1634
+ },
1635
+ {
1636
+ "internalType": "Amount",
1637
+ "name": "stakeAmount",
1638
+ "type": "uint96"
1639
+ }
1640
+ ],
1641
+ "name": "stake",
1642
+ "outputs": [
1643
+ {
1644
+ "internalType": "Amount",
1645
+ "name": "stakeBalance",
1646
+ "type": "uint96"
1647
+ }
1648
+ ],
1649
+ "stateMutability": "nonpayable",
1650
+ "type": "function"
1651
+ },
1652
+ {
1653
+ "inputs": [
1654
+ {
1655
+ "internalType": "bytes4",
1656
+ "name": "interfaceId",
1657
+ "type": "bytes4"
1658
+ }
1659
+ ],
1660
+ "name": "supportsInterface",
1661
+ "outputs": [
1662
+ {
1663
+ "internalType": "bool",
1664
+ "name": "",
1665
+ "type": "bool"
1666
+ }
1667
+ ],
1668
+ "stateMutability": "view",
1669
+ "type": "function"
1670
+ },
1671
+ {
1672
+ "inputs": [
1673
+ {
1674
+ "internalType": "NftId",
1675
+ "name": "stakeNftId",
1676
+ "type": "uint96"
1677
+ }
1678
+ ],
1679
+ "name": "unstake",
1680
+ "outputs": [
1681
+ {
1682
+ "internalType": "Amount",
1683
+ "name": "unstakedAmount",
1684
+ "type": "uint96"
1685
+ },
1686
+ {
1687
+ "internalType": "Amount",
1688
+ "name": "rewardsClaimedAmount",
1689
+ "type": "uint96"
1690
+ }
1691
+ ],
1692
+ "stateMutability": "nonpayable",
1693
+ "type": "function"
1694
+ },
1695
+ {
1696
+ "inputs": [
1697
+ {
1698
+ "internalType": "NftId",
1699
+ "name": "targetNftId",
1700
+ "type": "uint96"
1701
+ },
1702
+ {
1703
+ "internalType": "address",
1704
+ "name": "token",
1705
+ "type": "address"
1706
+ },
1707
+ {
1708
+ "internalType": "Amount",
1709
+ "name": "amount",
1710
+ "type": "uint96"
1711
+ }
1712
+ ],
1713
+ "name": "updateRemoteTvl",
1714
+ "outputs": [],
1715
+ "stateMutability": "nonpayable",
1716
+ "type": "function"
1717
+ },
1718
+ {
1719
+ "inputs": [
1720
+ {
1721
+ "internalType": "NftId",
1722
+ "name": "stakeNftId",
1723
+ "type": "uint96"
1724
+ }
1725
+ ],
1726
+ "name": "updateRewards",
1727
+ "outputs": [],
1728
+ "stateMutability": "nonpayable",
1729
+ "type": "function"
1730
+ },
1731
+ {
1732
+ "inputs": [
1733
+ {
1734
+ "internalType": "bytes",
1735
+ "name": "data",
1736
+ "type": "bytes"
1737
+ }
1738
+ ],
1739
+ "name": "upgradeVersionable",
1740
+ "outputs": [],
1741
+ "stateMutability": "nonpayable",
1742
+ "type": "function"
1743
+ },
1744
+ {
1745
+ "inputs": [
1746
+ {
1747
+ "internalType": "NftId",
1748
+ "name": "targetNftId",
1749
+ "type": "uint96"
1750
+ },
1751
+ {
1752
+ "internalType": "Amount",
1753
+ "name": "dipAmount",
1754
+ "type": "uint96"
1755
+ }
1756
+ ],
1757
+ "name": "withdrawRewardReserves",
1758
+ "outputs": [
1759
+ {
1760
+ "internalType": "Amount",
1761
+ "name": "newBalance",
1762
+ "type": "uint96"
1763
+ }
1764
+ ],
1765
+ "stateMutability": "nonpayable",
1766
+ "type": "function"
1767
+ }
1768
+ ],
1769
+ "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615242806100d65f395ff3fe608060405234801561000f575f80fd5b5060043610610319575f3560e01c80636291423a116101af578063ad12ad60116100fe578063caed98971161009e578063dea4ccf211610079578063dea4ccf2146106fc578063e8ce883d1461072f578063ea15869f14610742578063ea48ce9b14610769575f80fd5b8063caed9897146106ce578063d44f8a4b146106d6578063de0eb85f146106e9575f80fd5b8063b2ab76ec116100d9578063b2ab76ec14610698578063b423086c146106ab578063b47f4888146106b3578063bf7e214f146106c6575f80fd5b8063ad12ad601461065e578063ada9652e14610671578063b283765d14610685575f80fd5b80637a9e5e4b116101695780638fb36037116101445780638fb360371461060257806390edbd3514610623578063958697a01461063857806396c9a2601461064b575f80fd5b80637a9e5e4b146105df57806386c75754146105f2578063893d20e8146105fa575f80fd5b80636291423a14610567578063644c45e01461056f5780636c1e9dff1461058c5780636d387fe41461059f578063719f761a146105b257806376b707b7146105c5575f80fd5b806322f3e2d41161026b57806349bb9e4b116102255780635cbb7d85116102005780635cbb7d85146105085780635ecf260f1461051b5780635fd1efec1461052e578063614d08f814610541575f80fd5b806349bb9e4b146104dc5780635741e5e9146104ef5780635ab1bd53146104f7575f80fd5b806322f3e2d41461048057806331ecc5cc14610488578063329d6e741461049b5780633fb728fb146104ae578063419197fe146104c157806343d752d3146104d4575f80fd5b806310a0638a116102d657806317d7de7c116102b157806317d7de7c146104345780631eff4b221461044957806321df0da7146104705780632236684414610478575f80fd5b806310a0638a146103e157806313299604146103f4578063138461e014610414575f80fd5b806301ffc9a71461031d5780630345861d1461035e578063062c9cdf1461037357806309980bfd146103a85780630d8e6e2c146103b05780630fec111c146103cc575b5f80fd5b61034961032b36600461454b565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61037161036c3660046145a1565b61077c565b005b61039a7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001610355565b61037161090f565b6103b8610b00565b60405162ffffff9091168152602001610355565b6103d4610b87565b6040516103559190614606565b6103716103ef366004614692565b610d41565b6103fc610e22565b6040516001600160a01b039091168152602001610355565b61041c610e8a565b6040516001600160601b039091168152602001610355565b61043c610e94565b60405161035591906146ad565b61039a7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6103fc610ea4565b610349610ee8565b610349610fde565b6103716104963660046146bf565b611055565b6103716104a936600461480d565b6111ff565b6103716104bc36600461485e565b61134a565b6103716104cf3660046148f3565b611392565b6103fc6113e0565b6103716104ea36600461491f565b6113fb565b6103496114f7565b6001546001600160a01b03166103fc565b61041c61051636600461496b565b6115ad565b610371610529366004614987565b61172b565b61037161053c3660046149b3565b6118aa565b61043c604051806040016040528060078152602001665374616b696e6760c81b81525081565b6103fc611a0f565b5f805160206151ad833981519152546001600160601b031661041c565b61041c61059a36600461496b565b611a2a565b6103716105ad36600461496b565b611b6e565b61041c6105c0366004614692565b611dc2565b6105cd612033565b60405160ff9091168152602001610355565b6103716105ed3660046149b3565b6120a7565b6103fc612129565b6103fc612144565b61060a612275565b6040516001600160e01b03199091168152602001610355565b61062b6122aa565b60405161035591906149ce565b610371610646366004614a1c565b6122cf565b610371610659366004614a49565b612318565b61037161066c366004614a7d565b612549565b61039a5f805160206151ad83398151915281565b6103716106933660046149b3565b6125eb565b6103716106a6366004614acd565b612704565b61062b6129cb565b6103716106c1366004614b31565b6129db565b6103fc612af2565b6103fc612b0d565b61041c6106e4366004614a1c565b612b25565b61041c6106f736600461496b565b612cb4565b61070f61070a366004614692565b612d4f565b604080516001600160601b03938416815292909116602083015201610355565b61041c61073d36600461496b565b6130c6565b61039a7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0081565b61041c610777366004614a1c565b61311d565b610788335b5f36613261565b8161079161335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108069190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015610853573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108779190614b7b565b6108a4576040516396cff01560e01b81526001600160601b03821660048201526024015b60405180910390fd5b5f6108af8484613383565b604080516001600160601b03871681526001600160a01b0380841660208301528616918101919091529091507ff206df7189bdea43efbee065af0b00ea5e1143d254865c1ed77469d54146af14906060015b60405180910390a150505050565b6001546001600160a01b0316331461093c57604051632a6e1a8960e01b815233600482015260240161089b565b5f61094561335f565b90505f61095061335f565b546040805163b201f70960e01b815290516001600160a01b039092169163b201f709916004808201926020929091908290030181865afa158015610996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ba9190614b4c565b905073__$51089c37ca0df1177a910c640c8c5f8165$__6350c6470d6109e86001546001600160a01b031690565b30846109fc6001546001600160a01b031690565b6001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5b9190614b4c565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152928416602484015290831660448301529091166064820152608401602060405180830381865af4158015610ab5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad99190614b4c565b60019290920180546001600160a01b0319166001600160a01b039093169290921790915550565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610b5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b9f565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610c33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c579190614bcc565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c9f612144565b6001600160a01b03168152602001826001018054610cbc90614be7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce890614be7565b8015610d335780601f10610d0a57610100808354040283529160200191610d33565b820191905f5260205f20905b815481529060010190602001808311610d1657829003601f168201915b505050505081525091505090565b610d4a33610781565b80610d5361335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015610da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc79190614b7b565b610def57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f610df861335f565b60038101546002820154919250610e1c916001600160a01b039182169116856134af565b50505050565b5f610e2b6113e0565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b4c565b5f610b8230613632565b6060610e9e6122aa565b51919050565b5f610ead6113e0565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d5f803e3d5ffd5b5f610efb6001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610f3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f639190614bcc565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610fba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b7b565b5f610fe7612af2565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa15801561102b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104f9190614b7b565b15905090565b61105e33610781565b5f61106761335f565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b038086166024830152841660448201529091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063746c22b890606401602060405180830381865af41580156110df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111039190614c1f565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be2906044015f604051808303815f87803b15801561116f575f80fd5b505af1158015611181573d5f803e3d5ffd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015f604051808303815f87803b1580156111e2575f80fd5b505af11580156111f4573d5f803e3d5ffd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c611221610b00565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190614c3a565b5f805160206151ed8339815191528054600160401b900460ff16806112b5575080546001600160401b03808416911610155b156112d35760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556112fd8361382b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b61135333610781565b61135b612144565b6001600160a01b0316336001600160a01b03161461138e5760405163086391f760e31b815233600482015260240161089b565b5050565b61139b33610781565b6113a3612144565b6001600160a01b0316336001600160a01b0316146113d65760405163086391f760e31b815233600482015260240161089b565b61138e828261384c565b5f6113e961335f565b600101546001600160a01b0316919050565b5f805160206151ed8339815191528054600160401b810460ff1615906001600160401b03165f8115801561142c5750825b90505f826001600160401b031660011480156114475750303b155b905081158015611455575080155b156114735760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149d57845460ff60401b1916600160401b1785555b6114a787876138b9565b83156114ee57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f611500610ee8565b15611584576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015611554573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261157b9190810190614cb8565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b5f6115b733610781565b826115c061335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611610573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116349190614b7b565b61165c57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b61166784601e613c1b565b61167283601e613c1b565b5f61167b61335f565b6003810154600282015460405163060550e560e41b81526001600160a01b039283166004820152911660248201526001600160601b0380881660448301528616606482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__906360550e50906084015b602060405180830381865af41580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117229190614bcc565b95945050505050565b61173433610781565b8161173d61335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b29190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa1580156117ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118239190614b7b565b61184b576040516396cff01560e01b81526001600160601b038216600482015260240161089b565b5f6118568484613d4f565b604080516001600160601b038716815264ffffffffff80841660208301528616918101919091529091507fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e790606001610901565b6118b2612144565b6001600160a01b0316336001600160a01b0316146118e55760405163086391f760e31b815233600482015260240161089b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561192b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194f9190614b4c565b6001600160a01b0316146119e257806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611999573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119bd9190614b4c565b604051631641c88f60e11b81526001600160a01b03909116600482015260240161089b565b806119eb61335f565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b5f611a1861335f565b600301546001600160a01b0316919050565b5f611a3433610781565b82611a3d61335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab19190614b7b565b611ad957604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f611ae261335f565b905073__$f048dbd5170c0ac319fa0222065b281d84$__630fcf5d08611b106001546001600160a01b031690565b6003840154600285015460405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529190911660448201526001600160601b0380891660648301528716608482015260a4016116e3565b611b7733610781565b81611b8061335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bf59190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611c42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c669190614b7b565b611c8e576040516396cff01560e01b81526001600160601b038216600482015260240161089b565b5f611c97611a0f565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b03919091169063a9ea09289060240160a060405180830381865afa158015611ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d089190614dfa565b6001600160601b03841660208201529050611d2161335f565b600201546040516306540bb360e01b81526001600160a01b03909116906306540bb390611d549087908590600401614e14565b5f604051808303815f87803b158015611d6b575f80fd5b505af1158015611d7d573d5f803e3d5ffd5b5050604080516001600160601b038089168252871660208201527fad500c174503de7381b30d4ef78eace9ae22e817b4843b07b9b0522a231a75d79350019050610901565b5f611dcc33610781565b81611dd561335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611e25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e499190614b7b565b611e7157604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f611e7a61335f565b600381015460028201549192505f91611ea0916001600160a01b039081169116876134af565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611f10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f349190614bcc565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303815f875af1158015611f87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fab9190614bcc565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612006573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202a9190614bcc565b50505050919050565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612083573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614e78565b336120b0612af2565b6001600160a01b0316816001600160a01b0316146120eb5760405162d1953b60e31b81526001600160a01b038216600482015260240161089b565b816001600160a01b03163b5f03612120576040516361798f2f60e11b81526001600160a01b038316600482015260240161089b565b61138e82613e05565b5f61213261335f565b600201546001600160a01b0316919050565b5f805f805160206151ad83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156121b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d49190614b7b565b1561225f576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122599190614b4c565b91505090565b54600160601b90046001600160a01b0316919050565b5f805160206151cd83398151915280545f9190600160a01b900460ff1661229c575f612259565b638fb3603760e01b91505090565b6122b2614522565b6122ba610ee8565b156122c757610b82613e65565b610b826129cb565b6122d833610781565b6122e0612144565b6001600160a01b0316336001600160a01b0316146123135760405163086391f760e31b815233600482015260240161089b565b505050565b61232133610781565b612329612144565b6001600160a01b0316336001600160a01b03161461235c5760405163086391f760e31b815233600482015260240161089b565b5f61236561335f565b8054604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190614b7b565b612408576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440161089b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301525f921690637b21556190604401602060405180830381865afa158015612459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061247d9190614b4c565b60028301546040516304b64d1360e51b8152600481018890526001600160a01b03878116602483015286811660448301529293509116906396c9a260906064015f604051808303815f87803b1580156124d4575f80fd5b505af11580156124e6573d5f803e3d5ffd5b5050604080518881526001600160a01b0380891660208301528086169282019290925290861660608201527fdd9d377e8c07558b5346d4164dcc63baf02af34d5ebeabb560c53079ee208135925060800190505b60405180910390a15050505050565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612590573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b49190614b4c565b6001600160a01b0316336001600160a01b0316146125e65760405162f0630960e01b815233600482015260240161089b565b610e1c565b6125f433610781565b6125fc612144565b6001600160a01b0316336001600160a01b03161461262f5760405163086391f760e31b815233600482015260240161089b565b5f6126426001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a19190614bcc565b90505f6126ae8284613383565b604080516001600160601b03851681526001600160a01b0380841660208301528616918101919091529091507ff0a1c8d966553d3b5ea8a4ef706021a545b80b9291b28f9947efaf477930db759060600161133d565b61270d33610781565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63647b8c2f6127396001546001600160a01b031690565b61274161335f565b6003015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015290821660248201526001600160601b038916604482015260ff8816606482015264ffffffffff8616608482015290841660a482015260c4015f6040518083038186803b1580156127b7575f80fd5b505af41580156127c9573d5f803e3d5ffd5b505050506127d561335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b031663991a2b1e866040518060a00160405280856001600160a01b0316815260200173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561285b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287f9190614bcc565b6001600160601b031681526020018860ff1681526020018664ffffffffff168152602001878152506040518363ffffffff1660e01b81526004016128c4929190614e14565b5f604051808303815f87803b1580156128db575f80fd5b505af11580156128ed573d5f803e3d5ffd5b505050507f873d76fe85e6874e9fd929dcad715c812a8adae573357e1f38d7dbf4d2ab70f88585848473__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561295d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129819190614bcc565b604080516001600160601b03968716815260ff909516602086015264ffffffffff909316928401929092526001600160a01b0316606083015291909116608082015260a00161253a565b6129d3614522565b610b82613e65565b6129e433610781565b6129ec612144565b6001600160a01b0316336001600160a01b031614612a1f5760405163086391f760e31b815233600482015260240161089b565b5f612a326001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a919190614bcc565b90505f612a9e8284613d4f565b604080516001600160601b038516815264ffffffffff80841660208301528616918101919091529091507f0e389abfbc6e5568e060c42a0e00883dc7dd07b2baf0f9dff8c70a98953234a29060600161133d565b5f805160206151cd833981519152546001600160a01b031690565b5f612b1661335f565b546001600160a01b0316919050565b5f612b2f33610781565b5f612b3861335f565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015612b8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb29190614dfa565b608001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015612c0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c309190614b4c565b6002840154604051633627f07760e11b81529192506001600160a01b031690636c4fe0ee90612c69908a9085908b908b90600401614e93565b6020604051808303815f875af1158015612c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca99190614bcc565b979650505050505050565b5f612cbe33610781565b5f612cc761335f565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303815f875af1158015612d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d479190614bcc565b949350505050565b5f80612d5a33610781565b82612d6361335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612db3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dd79190614b7b565b612dff57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f612e0861335f565b600381015460405163b3eff9e160e01b81526001600160a01b0390911660048201526001600160601b038716602482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__9063b3eff9e190604401602060405180830381865af4158015612e76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e9a9190614c1f565b50600381015460028201545f91612ebe916001600160a01b039182169116886134af565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f529190614bcc565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbd9190614bcc565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303815f875af1158015613017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061303b9190614ec6565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015613099573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130bd9190614bcc565b50505050915091565b5f6130d033610781565b5f6130d961335f565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef790604401612d07565b5f61312733610781565b5f61313061335f565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015613186573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131aa9190614dfa565b608001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015613204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132289190614b4c565b600284015460405163d4851fcb60e01b81529192506001600160a01b03169063d4851fcb90612c69908a9085908b908b90600401614e93565b5f805160206151cd8339815191525f8061329961327c612af2565b873061328b60045f8a8c614ef3565b61329491614f1a565b613f49565b91509150816133575763ffffffff81161561333457825460ff60a01b1916600160a01b1783556132c7612af2565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016132f693929190614f52565b5f604051808303815f87803b15801561330d575f80fd5b505af115801561331f573d5f803e3d5ffd5b5050845460ff60a01b19168555506133579050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161089b565b505050505050565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052604051636f678e2960e01b81523060048201526001600160601b03851660248201526001600160a01b038416604482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90636f678e299060640160c060405180830381865af4158015613417573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343b9190614f91565b909250905061344861335f565b600201546040516306540bb360e01b81526001600160a01b03909116906306540bb39061347b9087908590600401614e14565b5f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b505050505092915050565b6040516312b9a5c960e01b81526001600160601b03821660048201525f9081906001600160a01b038616906312b9a5c9906024016040805180830381865afa1580156134fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135219190614fc5565b604051637d3822fb60e11b81526001600160a01b0380891660048301526001600160601b03871660248301528216604482015291935091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063fa7045f6906064016040805180830381865af4158015613594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135b89190614ec6565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d1906064015f604051808303815f87803b158015613613575f80fd5b505af1158015613625573d5f803e3d5ffd5b5050505050509392505050565b5f805f805160206151ad83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561369e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136c29190614b7b565b156136ee5780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161089b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613740573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137649190614b7b565b61378c5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161089b565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa1580156137de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138029190614bcc565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b613833614051565b60405163502ec37160e01b815260040160405180910390fd5b6138566003614089565b6040516320c8cbff60e11b81526001600160a01b0384811660048301526001600160601b0384166024830152919091169063419197fe906044015f604051808303815f87803b1580156138a7575f80fd5b505af1158015613357573d5f803e3d5ffd5b5f805160206151ed8339815191528054600160401b810460ff1615906001600160401b03165f811580156138ea5750825b90505f826001600160401b031660011480156139055750303b155b905081158015613913575080155b156139315760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561395b57845460ff60401b1916600160401b1785555b5f805f80898060200190518101906139739190614ff2565b93509350935093505f8490505f816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e09190614b4c565b90505f6139eb61335f565b9050826001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4d9190614bcc565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549187166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa158015613ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613aea9190614b4c565b6003820180546001600160a01b03199081166001600160a01b039384161790915582541687821617825560408051630322622f60e51b81529051613bc29285928b929188169163644c45e0916004808201926020929091908290030181865afa158015613b59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b7d9190614bcc565b6040805180820190915260078152665374616b696e6760c81b602082015260035f8a60405180602001604052805f81525060405180602001604052805f815250614120565b613bd2631846299d60e31b6141fc565b5050505050505083156114ee57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016114e5565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015613c6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c8f9190614b7b565b80613d1d57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613cf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d1b9190614b7b565b155b1561138e5760405163d711af7560e01b81526001600160601b038316600482015260ff8216602482015260440161089b565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052604051635f9c0df360e11b81523060048201526001600160601b038516602482015264ffffffffff8416604482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160c060405180830381865af4158015613de1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343b9190615043565b5f805160206151cd83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b613e6d614522565b5f7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0090506040518060600160405280825f018054613eaa90614be7565b80601f0160208091040260200160405190810160405280929190818152602001828054613ed690614be7565b8015613f215780601f10613ef857610100808354040283529160200191613f21565b820191905f5260205f20905b815481529060010190602001808311613f0457829003601f168201915b505050505081526020015f6001600160a01b03168152602001826002018054610cbc90614be7565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251613fb7919061505f565b5f60405180830381855afa9150503d805f8114613fef576040519150601f19603f3d011682016040523d82523d5f602084013e613ff4565b606091505b50915091508115614046576040815110614026578080602001905181019061401c9190615075565b9094509250614046565b602081511061404657808060200190518101906140439190614b7b565b93505b505094509492505050565b5f805160206151ed83398151915254600160401b900460ff1661408757604051631afcd79f60e31b815260040160405180910390fd5b565b5f61409c6001546001600160a01b031690565b6001600160a01b031663d39e6043836140b3612033565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156140f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061411a9190614b4c565b92915050565b614128614051565b85515f036141495760405163591eebf360e11b815260040160405180910390fd5b6141588989898888888861422f565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f008061418488826150f2565b5060018101805460ff1916861515179055600281016141a383826150f2565b506141ae600b614089565b6003820180546001600160a01b0319166001600160a01b03929092169190911790556141e0634a531f3360e01b6141fc565b6141f06306e9e5ff60e31b6141fc565b50505050505050505050565b614204614051565b61422c816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b614237614051565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af415801561428d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142b19190614b7b565b6142d95760405163cf6935e560e01b81526001600160a01b038816600482015260240161089b565b6142e287614376565b6142ec8683614387565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161435b83826150f2565b5061436c634a531f3360e01b6141fc565b5050505050505050565b61437e614051565b61422c816143fd565b61438f614051565b61439761440e565b6143a082614456565b6001600160a01b0381166143c75760405163f17ef42d60e01b815260040160405180910390fd5b5f805160206151ad83398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b614405614051565b61422c81613e05565b614416614051565b6140876301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b61445e614051565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af41580156144b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144d89190614b7b565b6145005760405163fdeac91f60e01b81526001600160a01b038216600482015260240161089b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060600160405280606081526020015f6001600160a01b03168152602001606081525090565b5f6020828403121561455b575f80fd5b81356001600160e01b031981168114614572575f80fd5b9392505050565b6001600160601b038116811461422c575f80fd5b6001600160a01b038116811461422c575f80fd5b5f80604083850312156145b2575f80fd5b82356145bd81614579565b915060208301356145cd8161458d565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f606083015161464e608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612d476101008401826145d8565b5f602082840312156146a2575f80fd5b813561457281614579565b602081525f61457260208301846145d8565b5f805f606084860312156146d1575f80fd5b83356146dc81614579565b925060208401356146ec81614579565b915060408401356146fc81614579565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b038111828210171561473d5761473d614707565b60405290565b60405160e081016001600160401b038111828210171561473d5761473d614707565b604051601f8201601f191681016001600160401b038111828210171561478d5761478d614707565b604052919050565b5f6001600160401b038211156147ad576147ad614707565b50601f01601f191660200190565b5f82601f8301126147ca575f80fd5b81356147dd6147d882614795565b614765565b8181528460208386010111156147f1575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561481d575f80fd5b81356001600160401b03811115614832575f80fd5b612d47848285016147bb565b60ff8116811461422c575f80fd5b64ffffffffff8116811461422c575f80fd5b5f8082840360c0811215614870575f80fd5b833561487b81614579565b925060a0601f198201121561488e575f80fd5b5061489761471b565b60208401356148a58161458d565b815260408401356148b581614579565b602082015260608401356148c88161483e565b604082015260808401356148db8161484c565b606082015260a0939093013560808401525092909150565b5f8060408385031215614904575f80fd5b823561490f8161458d565b915060208301356145cd81614579565b5f8060408385031215614930575f80fd5b823561493b8161458d565b915060208301356001600160401b03811115614955575f80fd5b614961858286016147bb565b9150509250929050565b5f806040838503121561497c575f80fd5b823561490f81614579565b5f8060408385031215614998575f80fd5b82356149a381614579565b915060208301356145cd8161484c565b5f602082840312156149c3575f80fd5b81356145728161458d565b602081525f8251606060208401526149e960808401826145d8565b60208501516001600160a01b0316604085810191909152850151848203601f1901606086015290915061172282826145d8565b5f805f60608486031215614a2e575f80fd5b8335614a3981614579565b925060208401356146ec8161458d565b5f805f60608486031215614a5b575f80fd5b833592506020840135614a6d8161458d565b915060408401356146fc8161458d565b5f805f8060808587031215614a90575f80fd5b8435614a9b8161458d565b93506020850135614aab8161458d565b9250604085013591506060850135614ac28161458d565b939692955090935050565b5f805f805f60a08688031215614ae1575f80fd5b8535614aec81614579565b94506020860135614afc8161483e565b9350604086013592506060860135614b138161484c565b91506080860135614b238161458d565b809150509295509295909350565b5f60208284031215614b41575f80fd5b81356145728161484c565b5f60208284031215614b5c575f80fd5b81516145728161458d565b80518015158114614b76575f80fd5b919050565b5f60208284031215614b8b575f80fd5b61457282614b67565b8051614b768161458d565b5f60208284031215614baf575f80fd5b815162ffffff81168114614572575f80fd5b8051614b7681614579565b5f60208284031215614bdc575f80fd5b815161457281614579565b600181811c90821680614bfb57607f821691505b602082108103614c1957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215614c2f575f80fd5b81516145728161484c565b5f60208284031215614c4a575f80fd5b81516001600160401b0381168114614572575f80fd5b8051614b768161483e565b5f82601f830112614c7a575f80fd5b8151614c886147d882614795565b818152846020838601011115614c9c575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215614cc8575f80fd5b81516001600160401b03811115614cdd575f80fd5b820160e08185031215614cee575f80fd5b614cf6614743565b614cff82614bc1565b8152614d0d60208301614bc1565b6020820152614d1e60408301614c60565b6040820152614d2f60608301614b67565b6060820152614d4060808301614b94565b6080820152614d5160a08301614b94565b60a082015260c08201516001600160401b03811115614d6e575f80fd5b614d7a86828501614c6b565b60c083015250949350505050565b5f60a08284031215614d98575f80fd5b614da061471b565b90508151614dad8161458d565b81526020820151614dbd81614579565b60208201526040820151614dd08161483e565b60408201526060820151614de38161484c565b806060830152506080820151608082015292915050565b5f60a08284031215614e0a575f80fd5b6145728383614d88565b5f60c0820190506001600160601b038416825260018060a01b0383511660208301526001600160601b03602084015116604083015260ff604084015116606083015264ffffffffff6060840151166080830152608083015160a08301529392505050565b5f60208284031215614e88575f80fd5b81516145728161483e565b6001600160601b0394851681526001600160a01b0393841660208201529190921660408201529116606082015260800190565b5f8060408385031215614ed7575f80fd5b8251614ee281614579565b60208401519092506145cd81614579565b5f8085851115614f01575f80fd5b83861115614f0d575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614f4b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f8060c08385031215614fa2575f80fd5b8251614fad8161458d565b9150614fbc8460208501614d88565b90509250929050565b5f8060408385031215614fd6575f80fd5b8251614fe181614579565b60208401519092506145cd8161458d565b5f805f8060808587031215615005575f80fd5b84516150108161458d565b60208601519094506150218161458d565b60408601519093506150328161458d565b6060860151909250614ac28161458d565b5f8060c08385031215615054575f80fd5b8251614fad8161484c565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615086575f80fd5b61508f83614b67565b9150602083015163ffffffff811681146145cd575f80fd5b601f82111561231357805f5260205f20601f840160051c810160208510156150cc5750805b601f840160051c820191505b818110156150eb575f81556001016150d8565b5050505050565b81516001600160401b0381111561510b5761510b614707565b61511f816151198454614be7565b846150a7565b6020601f821160018114615151575f831561513a5750848201515b5f19600385901b1c1916600184901b1784556150eb565b5f84815260208120601f198516915b828110156151805787850151825560209485019460019092019101615160565b508482101561519d57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220704351ae6bfdd80490c1333edec68d256d9e816bf127041dd3aa41d2021c43c764736f6c634300081a0033",
1770
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610319575f3560e01c80636291423a116101af578063ad12ad60116100fe578063caed98971161009e578063dea4ccf211610079578063dea4ccf2146106fc578063e8ce883d1461072f578063ea15869f14610742578063ea48ce9b14610769575f80fd5b8063caed9897146106ce578063d44f8a4b146106d6578063de0eb85f146106e9575f80fd5b8063b2ab76ec116100d9578063b2ab76ec14610698578063b423086c146106ab578063b47f4888146106b3578063bf7e214f146106c6575f80fd5b8063ad12ad601461065e578063ada9652e14610671578063b283765d14610685575f80fd5b80637a9e5e4b116101695780638fb36037116101445780638fb360371461060257806390edbd3514610623578063958697a01461063857806396c9a2601461064b575f80fd5b80637a9e5e4b146105df57806386c75754146105f2578063893d20e8146105fa575f80fd5b80636291423a14610567578063644c45e01461056f5780636c1e9dff1461058c5780636d387fe41461059f578063719f761a146105b257806376b707b7146105c5575f80fd5b806322f3e2d41161026b57806349bb9e4b116102255780635cbb7d85116102005780635cbb7d85146105085780635ecf260f1461051b5780635fd1efec1461052e578063614d08f814610541575f80fd5b806349bb9e4b146104dc5780635741e5e9146104ef5780635ab1bd53146104f7575f80fd5b806322f3e2d41461048057806331ecc5cc14610488578063329d6e741461049b5780633fb728fb146104ae578063419197fe146104c157806343d752d3146104d4575f80fd5b806310a0638a116102d657806317d7de7c116102b157806317d7de7c146104345780631eff4b221461044957806321df0da7146104705780632236684414610478575f80fd5b806310a0638a146103e157806313299604146103f4578063138461e014610414575f80fd5b806301ffc9a71461031d5780630345861d1461035e578063062c9cdf1461037357806309980bfd146103a85780630d8e6e2c146103b05780630fec111c146103cc575b5f80fd5b61034961032b36600461454b565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61037161036c3660046145a1565b61077c565b005b61039a7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001610355565b61037161090f565b6103b8610b00565b60405162ffffff9091168152602001610355565b6103d4610b87565b6040516103559190614606565b6103716103ef366004614692565b610d41565b6103fc610e22565b6040516001600160a01b039091168152602001610355565b61041c610e8a565b6040516001600160601b039091168152602001610355565b61043c610e94565b60405161035591906146ad565b61039a7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6103fc610ea4565b610349610ee8565b610349610fde565b6103716104963660046146bf565b611055565b6103716104a936600461480d565b6111ff565b6103716104bc36600461485e565b61134a565b6103716104cf3660046148f3565b611392565b6103fc6113e0565b6103716104ea36600461491f565b6113fb565b6103496114f7565b6001546001600160a01b03166103fc565b61041c61051636600461496b565b6115ad565b610371610529366004614987565b61172b565b61037161053c3660046149b3565b6118aa565b61043c604051806040016040528060078152602001665374616b696e6760c81b81525081565b6103fc611a0f565b5f805160206151ad833981519152546001600160601b031661041c565b61041c61059a36600461496b565b611a2a565b6103716105ad36600461496b565b611b6e565b61041c6105c0366004614692565b611dc2565b6105cd612033565b60405160ff9091168152602001610355565b6103716105ed3660046149b3565b6120a7565b6103fc612129565b6103fc612144565b61060a612275565b6040516001600160e01b03199091168152602001610355565b61062b6122aa565b60405161035591906149ce565b610371610646366004614a1c565b6122cf565b610371610659366004614a49565b612318565b61037161066c366004614a7d565b612549565b61039a5f805160206151ad83398151915281565b6103716106933660046149b3565b6125eb565b6103716106a6366004614acd565b612704565b61062b6129cb565b6103716106c1366004614b31565b6129db565b6103fc612af2565b6103fc612b0d565b61041c6106e4366004614a1c565b612b25565b61041c6106f736600461496b565b612cb4565b61070f61070a366004614692565b612d4f565b604080516001600160601b03938416815292909116602083015201610355565b61041c61073d36600461496b565b6130c6565b61039a7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0081565b61041c610777366004614a1c565b61311d565b610788335b5f36613261565b8161079161335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108069190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015610853573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108779190614b7b565b6108a4576040516396cff01560e01b81526001600160601b03821660048201526024015b60405180910390fd5b5f6108af8484613383565b604080516001600160601b03871681526001600160a01b0380841660208301528616918101919091529091507ff206df7189bdea43efbee065af0b00ea5e1143d254865c1ed77469d54146af14906060015b60405180910390a150505050565b6001546001600160a01b0316331461093c57604051632a6e1a8960e01b815233600482015260240161089b565b5f61094561335f565b90505f61095061335f565b546040805163b201f70960e01b815290516001600160a01b039092169163b201f709916004808201926020929091908290030181865afa158015610996573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ba9190614b4c565b905073__$51089c37ca0df1177a910c640c8c5f8165$__6350c6470d6109e86001546001600160a01b031690565b30846109fc6001546001600160a01b031690565b6001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5b9190614b4c565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152928416602484015290831660448301529091166064820152608401602060405180830381865af4158015610ab5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad99190614b4c565b60019290920180546001600160a01b0319166001600160a01b039093169290921790915550565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610b5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b9f565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610c33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c579190614bcc565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c9f612144565b6001600160a01b03168152602001826001018054610cbc90614be7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce890614be7565b8015610d335780601f10610d0a57610100808354040283529160200191610d33565b820191905f5260205f20905b815481529060010190602001808311610d1657829003601f168201915b505050505081525091505090565b610d4a33610781565b80610d5361335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015610da3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc79190614b7b565b610def57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f610df861335f565b60038101546002820154919250610e1c916001600160a01b039182169116856134af565b50505050565b5f610e2b6113e0565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b4c565b5f610b8230613632565b6060610e9e6122aa565b51919050565b5f610ead6113e0565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e66573d5f803e3d5ffd5b5f610efb6001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610f3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f639190614bcc565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610fba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614b7b565b5f610fe7612af2565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa15801561102b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104f9190614b7b565b15905090565b61105e33610781565b5f61106761335f565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b038086166024830152841660448201529091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063746c22b890606401602060405180830381865af41580156110df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111039190614c1f565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be2906044015f604051808303815f87803b15801561116f575f80fd5b505af1158015611181573d5f803e3d5ffd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015f604051808303815f87803b1580156111e2575f80fd5b505af11580156111f4573d5f803e3d5ffd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c611221610b00565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190614c3a565b5f805160206151ed8339815191528054600160401b900460ff16806112b5575080546001600160401b03808416911610155b156112d35760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556112fd8361382b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b61135333610781565b61135b612144565b6001600160a01b0316336001600160a01b03161461138e5760405163086391f760e31b815233600482015260240161089b565b5050565b61139b33610781565b6113a3612144565b6001600160a01b0316336001600160a01b0316146113d65760405163086391f760e31b815233600482015260240161089b565b61138e828261384c565b5f6113e961335f565b600101546001600160a01b0316919050565b5f805160206151ed8339815191528054600160401b810460ff1615906001600160401b03165f8115801561142c5750825b90505f826001600160401b031660011480156114475750303b155b905081158015611455575080155b156114735760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149d57845460ff60401b1916600160401b1785555b6114a787876138b9565b83156114ee57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f611500610ee8565b15611584576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015611554573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261157b9190810190614cb8565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b5f6115b733610781565b826115c061335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611610573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116349190614b7b565b61165c57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b61166784601e613c1b565b61167283601e613c1b565b5f61167b61335f565b6003810154600282015460405163060550e560e41b81526001600160a01b039283166004820152911660248201526001600160601b0380881660448301528616606482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__906360550e50906084015b602060405180830381865af41580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117229190614bcc565b95945050505050565b61173433610781565b8161173d61335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b29190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa1580156117ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118239190614b7b565b61184b576040516396cff01560e01b81526001600160601b038216600482015260240161089b565b5f6118568484613d4f565b604080516001600160601b038716815264ffffffffff80841660208301528616918101919091529091507fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e790606001610901565b6118b2612144565b6001600160a01b0316336001600160a01b0316146118e55760405163086391f760e31b815233600482015260240161089b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561192b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194f9190614b4c565b6001600160a01b0316146119e257806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611999573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119bd9190614b4c565b604051631641c88f60e11b81526001600160a01b03909116600482015260240161089b565b806119eb61335f565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b5f611a1861335f565b600301546001600160a01b0316919050565b5f611a3433610781565b82611a3d61335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab19190614b7b565b611ad957604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f611ae261335f565b905073__$f048dbd5170c0ac319fa0222065b281d84$__630fcf5d08611b106001546001600160a01b031690565b6003840154600285015460405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529190911660448201526001600160601b0380891660648301528716608482015260a4016116e3565b611b7733610781565b81611b8061335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bf59190614b4c565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611c42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c669190614b7b565b611c8e576040516396cff01560e01b81526001600160601b038216600482015260240161089b565b5f611c97611a0f565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b03919091169063a9ea09289060240160a060405180830381865afa158015611ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d089190614dfa565b6001600160601b03841660208201529050611d2161335f565b600201546040516306540bb360e01b81526001600160a01b03909116906306540bb390611d549087908590600401614e14565b5f604051808303815f87803b158015611d6b575f80fd5b505af1158015611d7d573d5f803e3d5ffd5b5050604080516001600160601b038089168252871660208201527fad500c174503de7381b30d4ef78eace9ae22e817b4843b07b9b0522a231a75d79350019050610901565b5f611dcc33610781565b81611dd561335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611e25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e499190614b7b565b611e7157604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f611e7a61335f565b600381015460028201549192505f91611ea0916001600160a01b039081169116876134af565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611f10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f349190614bcc565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303815f875af1158015611f87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fab9190614bcc565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612006573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202a9190614bcc565b50505050919050565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612083573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b829190614e78565b336120b0612af2565b6001600160a01b0316816001600160a01b0316146120eb5760405162d1953b60e31b81526001600160a01b038216600482015260240161089b565b816001600160a01b03163b5f03612120576040516361798f2f60e11b81526001600160a01b038316600482015260240161089b565b61138e82613e05565b5f61213261335f565b600201546001600160a01b0316919050565b5f805f805160206151ad83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156121b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d49190614b7b565b1561225f576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122599190614b4c565b91505090565b54600160601b90046001600160a01b0316919050565b5f805160206151cd83398151915280545f9190600160a01b900460ff1661229c575f612259565b638fb3603760e01b91505090565b6122b2614522565b6122ba610ee8565b156122c757610b82613e65565b610b826129cb565b6122d833610781565b6122e0612144565b6001600160a01b0316336001600160a01b0316146123135760405163086391f760e31b815233600482015260240161089b565b505050565b61232133610781565b612329612144565b6001600160a01b0316336001600160a01b03161461235c5760405163086391f760e31b815233600482015260240161089b565b5f61236561335f565b8054604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa1580156123b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123d99190614b7b565b612408576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440161089b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301525f921690637b21556190604401602060405180830381865afa158015612459573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061247d9190614b4c565b60028301546040516304b64d1360e51b8152600481018890526001600160a01b03878116602483015286811660448301529293509116906396c9a260906064015f604051808303815f87803b1580156124d4575f80fd5b505af11580156124e6573d5f803e3d5ffd5b5050604080518881526001600160a01b0380891660208301528086169282019290925290861660608201527fdd9d377e8c07558b5346d4164dcc63baf02af34d5ebeabb560c53079ee208135925060800190505b60405180910390a15050505050565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612590573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b49190614b4c565b6001600160a01b0316336001600160a01b0316146125e65760405162f0630960e01b815233600482015260240161089b565b610e1c565b6125f433610781565b6125fc612144565b6001600160a01b0316336001600160a01b03161461262f5760405163086391f760e31b815233600482015260240161089b565b5f6126426001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a19190614bcc565b90505f6126ae8284613383565b604080516001600160601b03851681526001600160a01b0380841660208301528616918101919091529091507ff0a1c8d966553d3b5ea8a4ef706021a545b80b9291b28f9947efaf477930db759060600161133d565b61270d33610781565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63647b8c2f6127396001546001600160a01b031690565b61274161335f565b6003015460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015290821660248201526001600160601b038916604482015260ff8816606482015264ffffffffff8616608482015290841660a482015260c4015f6040518083038186803b1580156127b7575f80fd5b505af41580156127c9573d5f803e3d5ffd5b505050506127d561335f565b6002015f9054906101000a90046001600160a01b03166001600160a01b031663991a2b1e866040518060a00160405280856001600160a01b0316815260200173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561285b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287f9190614bcc565b6001600160601b031681526020018860ff1681526020018664ffffffffff168152602001878152506040518363ffffffff1660e01b81526004016128c4929190614e14565b5f604051808303815f87803b1580156128db575f80fd5b505af11580156128ed573d5f803e3d5ffd5b505050507f873d76fe85e6874e9fd929dcad715c812a8adae573357e1f38d7dbf4d2ab70f88585848473__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561295d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129819190614bcc565b604080516001600160601b03968716815260ff909516602086015264ffffffffff909316928401929092526001600160a01b0316606083015291909116608082015260a00161253a565b6129d3614522565b610b82613e65565b6129e433610781565b6129ec612144565b6001600160a01b0316336001600160a01b031614612a1f5760405163086391f760e31b815233600482015260240161089b565b5f612a326001546001600160a01b031690565b6001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a919190614bcc565b90505f612a9e8284613d4f565b604080516001600160601b038516815264ffffffffff80841660208301528616918101919091529091507f0e389abfbc6e5568e060c42a0e00883dc7dd07b2baf0f9dff8c70a98953234a29060600161133d565b5f805160206151cd833981519152546001600160a01b031690565b5f612b1661335f565b546001600160a01b0316919050565b5f612b2f33610781565b5f612b3861335f565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015612b8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb29190614dfa565b608001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015612c0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c309190614b4c565b6002840154604051633627f07760e11b81529192506001600160a01b031690636c4fe0ee90612c69908a9085908b908b90600401614e93565b6020604051808303815f875af1158015612c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca99190614bcc565b979650505050505050565b5f612cbe33610781565b5f612cc761335f565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303815f875af1158015612d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d479190614bcc565b949350505050565b5f80612d5a33610781565b82612d6361335f565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612db3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dd79190614b7b565b612dff57604051632ab4595b60e11b81526001600160601b038216600482015260240161089b565b5f612e0861335f565b600381015460405163b3eff9e160e01b81526001600160a01b0390911660048201526001600160601b038716602482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__9063b3eff9e190604401602060405180830381865af4158015612e76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e9a9190614c1f565b50600381015460028201545f91612ebe916001600160a01b039182169116886134af565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f529190614bcc565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fbd9190614bcc565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303815f875af1158015613017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061303b9190614ec6565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015613099573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130bd9190614bcc565b50505050915091565b5f6130d033610781565b5f6130d961335f565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef790604401612d07565b5f61312733610781565b5f61313061335f565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015613186573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131aa9190614dfa565b608001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015613204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132289190614b4c565b600284015460405163d4851fcb60e01b81529192506001600160a01b03169063d4851fcb90612c69908a9085908b908b90600401614e93565b5f805160206151cd8339815191525f8061329961327c612af2565b873061328b60045f8a8c614ef3565b61329491614f1a565b613f49565b91509150816133575763ffffffff81161561333457825460ff60a01b1916600160a01b1783556132c7612af2565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016132f693929190614f52565b5f604051808303815f87803b15801561330d575f80fd5b505af115801561331f573d5f803e3d5ffd5b5050845460ff60a01b19168555506133579050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161089b565b505050505050565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052604051636f678e2960e01b81523060048201526001600160601b03851660248201526001600160a01b038416604482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90636f678e299060640160c060405180830381865af4158015613417573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343b9190614f91565b909250905061344861335f565b600201546040516306540bb360e01b81526001600160a01b03909116906306540bb39061347b9087908590600401614e14565b5f604051808303815f87803b158015613492575f80fd5b505af11580156134a4573d5f803e3d5ffd5b505050505092915050565b6040516312b9a5c960e01b81526001600160601b03821660048201525f9081906001600160a01b038616906312b9a5c9906024016040805180830381865afa1580156134fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135219190614fc5565b604051637d3822fb60e11b81526001600160a01b0380891660048301526001600160601b03871660248301528216604482015291935091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063fa7045f6906064016040805180830381865af4158015613594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135b89190614ec6565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d1906064015f604051808303815f87803b158015613613575f80fd5b505af1158015613625573d5f803e3d5ffd5b5050505050509392505050565b5f805f805160206151ad83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561369e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136c29190614b7b565b156136ee5780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161089b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613740573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137649190614b7b565b61378c5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161089b565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa1580156137de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138029190614bcc565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b613833614051565b60405163502ec37160e01b815260040160405180910390fd5b6138566003614089565b6040516320c8cbff60e11b81526001600160a01b0384811660048301526001600160601b0384166024830152919091169063419197fe906044015f604051808303815f87803b1580156138a7575f80fd5b505af1158015613357573d5f803e3d5ffd5b5f805160206151ed8339815191528054600160401b810460ff1615906001600160401b03165f811580156138ea5750825b90505f826001600160401b031660011480156139055750303b155b905081158015613913575080155b156139315760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561395b57845460ff60401b1916600160401b1785555b5f805f80898060200190518101906139739190614ff2565b93509350935093505f8490505f816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e09190614b4c565b90505f6139eb61335f565b9050826001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a4d9190614bcc565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549187166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa158015613ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613aea9190614b4c565b6003820180546001600160a01b03199081166001600160a01b039384161790915582541687821617825560408051630322622f60e51b81529051613bc29285928b929188169163644c45e0916004808201926020929091908290030181865afa158015613b59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b7d9190614bcc565b6040805180820190915260078152665374616b696e6760c81b602082015260035f8a60405180602001604052805f81525060405180602001604052805f815250614120565b613bd2631846299d60e31b6141fc565b5050505050505083156114ee57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016114e5565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015613c6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c8f9190614b7b565b80613d1d57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613cf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d1b9190614b7b565b155b1561138e5760405163d711af7560e01b81526001600160601b038316600482015260ff8216602482015260440161089b565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101829052604051635f9c0df360e11b81523060048201526001600160601b038516602482015264ffffffffff8416604482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160c060405180830381865af4158015613de1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343b9190615043565b5f805160206151cd83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b613e6d614522565b5f7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0090506040518060600160405280825f018054613eaa90614be7565b80601f0160208091040260200160405190810160405280929190818152602001828054613ed690614be7565b8015613f215780601f10613ef857610100808354040283529160200191613f21565b820191905f5260205f20905b815481529060010190602001808311613f0457829003601f168201915b505050505081526020015f6001600160a01b03168152602001826002018054610cbc90614be7565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251613fb7919061505f565b5f60405180830381855afa9150503d805f8114613fef576040519150601f19603f3d011682016040523d82523d5f602084013e613ff4565b606091505b50915091508115614046576040815110614026578080602001905181019061401c9190615075565b9094509250614046565b602081511061404657808060200190518101906140439190614b7b565b93505b505094509492505050565b5f805160206151ed83398151915254600160401b900460ff1661408757604051631afcd79f60e31b815260040160405180910390fd5b565b5f61409c6001546001600160a01b031690565b6001600160a01b031663d39e6043836140b3612033565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156140f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061411a9190614b4c565b92915050565b614128614051565b85515f036141495760405163591eebf360e11b815260040160405180910390fd5b6141588989898888888861422f565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f008061418488826150f2565b5060018101805460ff1916861515179055600281016141a383826150f2565b506141ae600b614089565b6003820180546001600160a01b0319166001600160a01b03929092169190911790556141e0634a531f3360e01b6141fc565b6141f06306e9e5ff60e31b6141fc565b50505050505050505050565b614204614051565b61422c816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b614237614051565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af415801561428d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142b19190614b7b565b6142d95760405163cf6935e560e01b81526001600160a01b038816600482015260240161089b565b6142e287614376565b6142ec8683614387565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161435b83826150f2565b5061436c634a531f3360e01b6141fc565b5050505050505050565b61437e614051565b61422c816143fd565b61438f614051565b61439761440e565b6143a082614456565b6001600160a01b0381166143c75760405163f17ef42d60e01b815260040160405180910390fd5b5f805160206151ad83398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b614405614051565b61422c81613e05565b614416614051565b6140876301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b61445e614051565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af41580156144b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144d89190614b7b565b6145005760405163fdeac91f60e01b81526001600160a01b038216600482015260240161089b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060600160405280606081526020015f6001600160a01b03168152602001606081525090565b5f6020828403121561455b575f80fd5b81356001600160e01b031981168114614572575f80fd5b9392505050565b6001600160601b038116811461422c575f80fd5b6001600160a01b038116811461422c575f80fd5b5f80604083850312156145b2575f80fd5b82356145bd81614579565b915060208301356145cd8161458d565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f606083015161464e608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612d476101008401826145d8565b5f602082840312156146a2575f80fd5b813561457281614579565b602081525f61457260208301846145d8565b5f805f606084860312156146d1575f80fd5b83356146dc81614579565b925060208401356146ec81614579565b915060408401356146fc81614579565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b038111828210171561473d5761473d614707565b60405290565b60405160e081016001600160401b038111828210171561473d5761473d614707565b604051601f8201601f191681016001600160401b038111828210171561478d5761478d614707565b604052919050565b5f6001600160401b038211156147ad576147ad614707565b50601f01601f191660200190565b5f82601f8301126147ca575f80fd5b81356147dd6147d882614795565b614765565b8181528460208386010111156147f1575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561481d575f80fd5b81356001600160401b03811115614832575f80fd5b612d47848285016147bb565b60ff8116811461422c575f80fd5b64ffffffffff8116811461422c575f80fd5b5f8082840360c0811215614870575f80fd5b833561487b81614579565b925060a0601f198201121561488e575f80fd5b5061489761471b565b60208401356148a58161458d565b815260408401356148b581614579565b602082015260608401356148c88161483e565b604082015260808401356148db8161484c565b606082015260a0939093013560808401525092909150565b5f8060408385031215614904575f80fd5b823561490f8161458d565b915060208301356145cd81614579565b5f8060408385031215614930575f80fd5b823561493b8161458d565b915060208301356001600160401b03811115614955575f80fd5b614961858286016147bb565b9150509250929050565b5f806040838503121561497c575f80fd5b823561490f81614579565b5f8060408385031215614998575f80fd5b82356149a381614579565b915060208301356145cd8161484c565b5f602082840312156149c3575f80fd5b81356145728161458d565b602081525f8251606060208401526149e960808401826145d8565b60208501516001600160a01b0316604085810191909152850151848203601f1901606086015290915061172282826145d8565b5f805f60608486031215614a2e575f80fd5b8335614a3981614579565b925060208401356146ec8161458d565b5f805f60608486031215614a5b575f80fd5b833592506020840135614a6d8161458d565b915060408401356146fc8161458d565b5f805f8060808587031215614a90575f80fd5b8435614a9b8161458d565b93506020850135614aab8161458d565b9250604085013591506060850135614ac28161458d565b939692955090935050565b5f805f805f60a08688031215614ae1575f80fd5b8535614aec81614579565b94506020860135614afc8161483e565b9350604086013592506060860135614b138161484c565b91506080860135614b238161458d565b809150509295509295909350565b5f60208284031215614b41575f80fd5b81356145728161484c565b5f60208284031215614b5c575f80fd5b81516145728161458d565b80518015158114614b76575f80fd5b919050565b5f60208284031215614b8b575f80fd5b61457282614b67565b8051614b768161458d565b5f60208284031215614baf575f80fd5b815162ffffff81168114614572575f80fd5b8051614b7681614579565b5f60208284031215614bdc575f80fd5b815161457281614579565b600181811c90821680614bfb57607f821691505b602082108103614c1957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215614c2f575f80fd5b81516145728161484c565b5f60208284031215614c4a575f80fd5b81516001600160401b0381168114614572575f80fd5b8051614b768161483e565b5f82601f830112614c7a575f80fd5b8151614c886147d882614795565b818152846020838601011115614c9c575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215614cc8575f80fd5b81516001600160401b03811115614cdd575f80fd5b820160e08185031215614cee575f80fd5b614cf6614743565b614cff82614bc1565b8152614d0d60208301614bc1565b6020820152614d1e60408301614c60565b6040820152614d2f60608301614b67565b6060820152614d4060808301614b94565b6080820152614d5160a08301614b94565b60a082015260c08201516001600160401b03811115614d6e575f80fd5b614d7a86828501614c6b565b60c083015250949350505050565b5f60a08284031215614d98575f80fd5b614da061471b565b90508151614dad8161458d565b81526020820151614dbd81614579565b60208201526040820151614dd08161483e565b60408201526060820151614de38161484c565b806060830152506080820151608082015292915050565b5f60a08284031215614e0a575f80fd5b6145728383614d88565b5f60c0820190506001600160601b038416825260018060a01b0383511660208301526001600160601b03602084015116604083015260ff604084015116606083015264ffffffffff6060840151166080830152608083015160a08301529392505050565b5f60208284031215614e88575f80fd5b81516145728161483e565b6001600160601b0394851681526001600160a01b0393841660208201529190921660408201529116606082015260800190565b5f8060408385031215614ed7575f80fd5b8251614ee281614579565b60208401519092506145cd81614579565b5f8085851115614f01575f80fd5b83861115614f0d575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614f4b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f8060c08385031215614fa2575f80fd5b8251614fad8161458d565b9150614fbc8460208501614d88565b90509250929050565b5f8060408385031215614fd6575f80fd5b8251614fe181614579565b60208401519092506145cd8161458d565b5f805f8060808587031215615005575f80fd5b84516150108161458d565b60208601519094506150218161458d565b60408601519093506150328161458d565b6060860151909250614ac28161458d565b5f8060c08385031215615054575f80fd5b8251614fad8161484c565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615086575f80fd5b61508f83614b67565b9150602083015163ffffffff811681146145cd575f80fd5b601f82111561231357805f5260205f20601f840160051c810160208510156150cc5750805b601f840160051c820191505b818110156150eb575f81556001016150d8565b5050505050565b81516001600160401b0381111561510b5761510b614707565b61511f816151198454614be7565b846150a7565b6020601f821160018114615151575f831561513a5750848201515b5f19600385901b1c1916600184901b1784556150eb565b5f84815260208120601f198516915b828110156151805787850151825560209485019460019092019101615160565b508482101561519d57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220704351ae6bfdd80490c1333edec68d256d9e816bf127041dd3aa41d2021c43c764736f6c634300081a0033",
1771
+ "linkReferences": {
1772
+ "contracts/shared/ContractLib.sol": {
1773
+ "ContractLib": [
1774
+ {
1775
+ "length": 20,
1776
+ "start": 17195
1777
+ },
1778
+ {
1779
+ "length": 20,
1780
+ "start": 17746
1781
+ }
1782
+ ]
1783
+ },
1784
+ "contracts/shared/TokenHandlerDeployerLib.sol": {
1785
+ "TokenHandlerDeployerLib": [
1786
+ {
1787
+ "length": 20,
1788
+ "start": 2708
1789
+ }
1790
+ ]
1791
+ },
1792
+ "contracts/staking/StakingLib.sol": {
1793
+ "StakingLib": [
1794
+ {
1795
+ "length": 20,
1796
+ "start": 4477
1797
+ },
1798
+ {
1799
+ "length": 20,
1800
+ "start": 6043
1801
+ },
1802
+ {
1803
+ "length": 20,
1804
+ "start": 7100
1805
+ },
1806
+ {
1807
+ "length": 20,
1808
+ "start": 12052
1809
+ },
1810
+ {
1811
+ "length": 20,
1812
+ "start": 13875
1813
+ }
1814
+ ]
1815
+ },
1816
+ "contracts/staking/TargetManagerLib.sol": {
1817
+ "TargetManagerLib": [
1818
+ {
1819
+ "length": 20,
1820
+ "start": 10213
1821
+ },
1822
+ {
1823
+ "length": 20,
1824
+ "start": 13493
1825
+ },
1826
+ {
1827
+ "length": 20,
1828
+ "start": 15999
1829
+ }
1830
+ ]
1831
+ },
1832
+ "contracts/type/Amount.sol": {
1833
+ "AmountLib": [
1834
+ {
1835
+ "length": 20,
1836
+ "start": 8097
1837
+ },
1838
+ {
1839
+ "length": 20,
1840
+ "start": 10476
1841
+ },
1842
+ {
1843
+ "length": 20,
1844
+ "start": 10734
1845
+ },
1846
+ {
1847
+ "length": 20,
1848
+ "start": 12223
1849
+ },
1850
+ {
1851
+ "length": 20,
1852
+ "start": 12330
1853
+ }
1854
+ ]
1855
+ },
1856
+ "contracts/type/NftId.sol": {
1857
+ "NftIdLib": [
1858
+ {
1859
+ "length": 20,
1860
+ "start": 3268
1861
+ },
1862
+ {
1863
+ "length": 20,
1864
+ "start": 4184
1865
+ },
1866
+ {
1867
+ "length": 20,
1868
+ "start": 8782
1869
+ },
1870
+ {
1871
+ "length": 20,
1872
+ "start": 14140
1873
+ }
1874
+ ]
1875
+ },
1876
+ "contracts/type/ObjectType.sol": {
1877
+ "ObjectTypeLib": [
1878
+ {
1879
+ "length": 20,
1880
+ "start": 15625
1881
+ }
1882
+ ]
1883
+ },
1884
+ "contracts/type/Version.sol": {
1885
+ "VersionLib": [
1886
+ {
1887
+ "length": 20,
1888
+ "start": 3068
1889
+ },
1890
+ {
1891
+ "length": 20,
1892
+ "start": 4823
1893
+ }
1894
+ ],
1895
+ "VersionPartLib": [
1896
+ {
1897
+ "length": 20,
1898
+ "start": 8481
1899
+ }
1900
+ ]
1901
+ }
1902
+ },
1903
+ "deployedLinkReferences": {
1904
+ "contracts/shared/ContractLib.sol": {
1905
+ "ContractLib": [
1906
+ {
1907
+ "length": 20,
1908
+ "start": 16981
1909
+ },
1910
+ {
1911
+ "length": 20,
1912
+ "start": 17532
1913
+ }
1914
+ ]
1915
+ },
1916
+ "contracts/shared/TokenHandlerDeployerLib.sol": {
1917
+ "TokenHandlerDeployerLib": [
1918
+ {
1919
+ "length": 20,
1920
+ "start": 2494
1921
+ }
1922
+ ]
1923
+ },
1924
+ "contracts/staking/StakingLib.sol": {
1925
+ "StakingLib": [
1926
+ {
1927
+ "length": 20,
1928
+ "start": 4263
1929
+ },
1930
+ {
1931
+ "length": 20,
1932
+ "start": 5829
1933
+ },
1934
+ {
1935
+ "length": 20,
1936
+ "start": 6886
1937
+ },
1938
+ {
1939
+ "length": 20,
1940
+ "start": 11838
1941
+ },
1942
+ {
1943
+ "length": 20,
1944
+ "start": 13661
1945
+ }
1946
+ ]
1947
+ },
1948
+ "contracts/staking/TargetManagerLib.sol": {
1949
+ "TargetManagerLib": [
1950
+ {
1951
+ "length": 20,
1952
+ "start": 9999
1953
+ },
1954
+ {
1955
+ "length": 20,
1956
+ "start": 13279
1957
+ },
1958
+ {
1959
+ "length": 20,
1960
+ "start": 15785
1961
+ }
1962
+ ]
1963
+ },
1964
+ "contracts/type/Amount.sol": {
1965
+ "AmountLib": [
1966
+ {
1967
+ "length": 20,
1968
+ "start": 7883
1969
+ },
1970
+ {
1971
+ "length": 20,
1972
+ "start": 10262
1973
+ },
1974
+ {
1975
+ "length": 20,
1976
+ "start": 10520
1977
+ },
1978
+ {
1979
+ "length": 20,
1980
+ "start": 12009
1981
+ },
1982
+ {
1983
+ "length": 20,
1984
+ "start": 12116
1985
+ }
1986
+ ]
1987
+ },
1988
+ "contracts/type/NftId.sol": {
1989
+ "NftIdLib": [
1990
+ {
1991
+ "length": 20,
1992
+ "start": 3054
1993
+ },
1994
+ {
1995
+ "length": 20,
1996
+ "start": 3970
1997
+ },
1998
+ {
1999
+ "length": 20,
2000
+ "start": 8568
2001
+ },
2002
+ {
2003
+ "length": 20,
2004
+ "start": 13926
2005
+ }
2006
+ ]
2007
+ },
2008
+ "contracts/type/ObjectType.sol": {
2009
+ "ObjectTypeLib": [
2010
+ {
2011
+ "length": 20,
2012
+ "start": 15411
2013
+ }
2014
+ ]
2015
+ },
2016
+ "contracts/type/Version.sol": {
2017
+ "VersionLib": [
2018
+ {
2019
+ "length": 20,
2020
+ "start": 2854
2021
+ },
2022
+ {
2023
+ "length": 20,
2024
+ "start": 4609
2025
+ }
2026
+ ],
2027
+ "VersionPartLib": [
2028
+ {
2029
+ "length": 20,
2030
+ "start": 8267
2031
+ }
2032
+ ]
2033
+ }
2034
+ }
2035
+ }