@etherisc/gif-next 0.0.2-7bf5f47-222 → 0.0.2-7bf6e1c-877

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. package/README.md +147 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +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 +817 -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 +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{IInstanceBase.sol/IInstanceBase.json → IBaseStore.sol/IBaseStore.json} +66 -210
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +670 -1232
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +696 -164
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +700 -2388
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1829 -725
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +710 -325
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +419 -87
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  108. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  109. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +398 -345
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +327 -367
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +541 -310
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +272 -287
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +607 -30
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +306 -210
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +1033 -73
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +363 -260
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +415 -73
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +400 -76
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +273 -253
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +273 -135
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +148 -141
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Service.sol/Service.json +165 -151
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  283. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  362. package/contracts/accounting/AccountingService.sol +274 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +47 -0
  365. package/contracts/authorization/AccessAdmin.sol +679 -0
  366. package/contracts/authorization/AccessAdminLib.sol +678 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  368. package/contracts/authorization/Authorization.sol +190 -0
  369. package/contracts/authorization/IAccess.sol +66 -0
  370. package/contracts/authorization/IAccessAdmin.sol +142 -0
  371. package/contracts/authorization/IAuthorization.sol +26 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  374. package/contracts/distribution/BasicDistribution.sol +140 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +245 -0
  377. package/contracts/distribution/DistributionService.sol +448 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +115 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BaseStore.sol +93 -0
  395. package/contracts/instance/BundleSet.sol +130 -0
  396. package/contracts/instance/IBaseStore.sol +37 -0
  397. package/contracts/instance/IInstance.sol +148 -54
  398. package/contracts/instance/IInstanceService.sol +101 -22
  399. package/contracts/instance/Instance.sol +261 -186
  400. package/contracts/instance/InstanceAdmin.sol +307 -0
  401. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  402. package/contracts/instance/InstanceReader.sol +500 -209
  403. package/contracts/instance/InstanceService.sol +432 -268
  404. package/contracts/instance/InstanceServiceManager.sol +14 -29
  405. package/contracts/instance/InstanceStore.sol +323 -0
  406. package/contracts/instance/ProductStore.sol +290 -0
  407. package/contracts/instance/RiskSet.sol +126 -0
  408. package/contracts/instance/TargetNames.sol +10 -0
  409. package/contracts/instance/base/BalanceStore.sol +121 -0
  410. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  411. package/contracts/instance/base/ObjectCounter.sol +20 -0
  412. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  413. package/contracts/instance/base/ObjectSet.sol +77 -0
  414. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  415. package/contracts/instance/module/IBundle.sol +10 -9
  416. package/contracts/instance/module/IComponents.sol +60 -0
  417. package/contracts/instance/module/IDistribution.sol +25 -10
  418. package/contracts/instance/module/IPolicy.sol +81 -21
  419. package/contracts/instance/module/IRisk.sol +6 -1
  420. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  421. package/contracts/oracle/BasicOracle.sol +44 -0
  422. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  423. package/contracts/oracle/IOracle.sol +41 -0
  424. package/contracts/oracle/IOracleComponent.sol +33 -0
  425. package/contracts/oracle/IOracleService.sol +66 -0
  426. package/contracts/oracle/Oracle.sol +152 -0
  427. package/contracts/oracle/OracleService.sol +310 -0
  428. package/contracts/oracle/OracleServiceManager.sol +39 -0
  429. package/contracts/pool/BasicPool.sol +161 -0
  430. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  431. package/contracts/pool/BundleService.sol +386 -0
  432. package/contracts/pool/BundleServiceManager.sol +39 -0
  433. package/contracts/pool/IBundleService.sol +116 -0
  434. package/contracts/pool/IPoolComponent.sol +62 -0
  435. package/contracts/pool/IPoolService.sol +170 -0
  436. package/contracts/pool/Pool.sol +331 -0
  437. package/contracts/pool/PoolLib.sol +341 -0
  438. package/contracts/pool/PoolService.sol +614 -0
  439. package/contracts/pool/PoolServiceManager.sol +39 -0
  440. package/contracts/product/ApplicationService.sol +327 -0
  441. package/contracts/product/ApplicationServiceManager.sol +38 -0
  442. package/contracts/product/BasicProduct.sol +48 -0
  443. package/contracts/product/BasicProductAuthorization.sol +63 -0
  444. package/contracts/product/ClaimService.sol +626 -0
  445. package/contracts/product/ClaimServiceManager.sol +38 -0
  446. package/contracts/product/IApplicationService.sol +88 -0
  447. package/contracts/product/IClaimService.sol +136 -0
  448. package/contracts/product/IPolicyService.sol +102 -0
  449. package/contracts/product/IPricingService.sol +40 -0
  450. package/contracts/product/IProductComponent.sol +62 -0
  451. package/contracts/product/IRiskService.sol +48 -0
  452. package/contracts/product/PolicyService.sol +645 -0
  453. package/contracts/product/PolicyServiceLib.sol +139 -0
  454. package/contracts/product/PolicyServiceManager.sol +39 -0
  455. package/contracts/product/PricingService.sol +306 -0
  456. package/contracts/product/PricingServiceManager.sol +39 -0
  457. package/contracts/product/Product.sol +491 -0
  458. package/contracts/product/RiskService.sol +189 -0
  459. package/contracts/product/RiskServiceManager.sol +39 -0
  460. package/contracts/registry/ChainNft.sol +83 -36
  461. package/contracts/registry/IRegistry.sol +111 -30
  462. package/contracts/registry/IRegistryService.sol +38 -34
  463. package/contracts/registry/IRelease.sol +29 -0
  464. package/contracts/registry/ITransferInterceptor.sol +1 -1
  465. package/contracts/registry/Registry.sol +551 -211
  466. package/contracts/registry/RegistryAdmin.sol +173 -0
  467. package/contracts/registry/RegistryAuthorization.sol +337 -0
  468. package/contracts/registry/RegistryService.sol +119 -201
  469. package/contracts/registry/RegistryServiceManager.sol +24 -33
  470. package/contracts/registry/ReleaseAdmin.sol +199 -0
  471. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  472. package/contracts/registry/ReleaseRegistry.sol +525 -0
  473. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  474. package/contracts/registry/TokenRegistry.sol +267 -60
  475. package/contracts/shared/Component.sol +210 -0
  476. package/contracts/shared/ComponentService.sol +691 -0
  477. package/contracts/shared/ComponentServiceManager.sol +38 -0
  478. package/contracts/shared/ContractLib.sol +312 -0
  479. package/contracts/shared/IComponent.sol +58 -0
  480. package/contracts/shared/IComponentService.sol +111 -0
  481. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  482. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  483. package/contracts/shared/INftOwnable.sol +17 -12
  484. package/contracts/shared/IPolicyHolder.sol +35 -0
  485. package/contracts/shared/IRegisterable.sol +24 -5
  486. package/contracts/shared/IRegistryLinked.sol +11 -0
  487. package/contracts/shared/IService.sol +12 -5
  488. package/contracts/shared/InitializableERC165.sol +35 -0
  489. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  490. package/contracts/shared/Lifecycle.sol +88 -0
  491. package/contracts/shared/NftIdSet.sol +65 -0
  492. package/contracts/shared/NftOwnable.sol +77 -82
  493. package/contracts/shared/PolicyHolder.sol +63 -0
  494. package/contracts/shared/Registerable.sol +54 -38
  495. package/contracts/shared/RegistryLinked.sol +38 -0
  496. package/contracts/shared/Service.sol +44 -35
  497. package/contracts/shared/TokenHandler.sol +327 -12
  498. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  499. package/contracts/staking/IStaking.sol +366 -0
  500. package/contracts/staking/IStakingService.sol +127 -0
  501. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  502. package/contracts/staking/Staking.sol +797 -0
  503. package/contracts/staking/StakingLib.sol +195 -0
  504. package/contracts/staking/StakingManager.sol +53 -0
  505. package/contracts/staking/StakingReader.sol +171 -0
  506. package/contracts/staking/StakingService.sol +321 -0
  507. package/contracts/staking/StakingServiceManager.sol +46 -0
  508. package/contracts/staking/StakingStore.sol +1368 -0
  509. package/contracts/staking/TargetHandler.sol +132 -0
  510. package/contracts/staking/TargetManagerLib.sol +234 -0
  511. package/contracts/{types → type}/AddressSet.sol +1 -1
  512. package/contracts/type/Amount.sol +154 -0
  513. package/contracts/{types → type}/Blocknumber.sol +38 -19
  514. package/contracts/type/ChainId.sol +101 -0
  515. package/contracts/type/ClaimId.sol +80 -0
  516. package/contracts/{types → type}/DistributorType.sol +2 -2
  517. package/contracts/type/Fee.sol +66 -0
  518. package/contracts/{types → type}/Key32.sol +2 -2
  519. package/contracts/type/Key32Set.sol +62 -0
  520. package/contracts/{types → type}/NftId.sol +28 -15
  521. package/contracts/{types → type}/NftIdSet.sol +2 -2
  522. package/contracts/type/ObjectType.sol +307 -0
  523. package/contracts/type/PayoutId.sol +82 -0
  524. package/contracts/{types → type}/Referral.sol +6 -1
  525. package/contracts/type/RequestId.sol +75 -0
  526. package/contracts/type/RiskId.sol +75 -0
  527. package/contracts/type/RoleId.sol +180 -0
  528. package/contracts/type/Seconds.sol +120 -0
  529. package/contracts/type/Selector.sol +107 -0
  530. package/contracts/{types → type}/StateId.sol +48 -4
  531. package/contracts/type/String.sol +65 -0
  532. package/contracts/{types → type}/Timestamp.sol +36 -20
  533. package/contracts/type/UFixed.sol +263 -0
  534. package/contracts/{types → type}/Version.sol +59 -7
  535. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  536. package/contracts/upgradeability/ProxyManager.sol +246 -0
  537. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  538. package/contracts/upgradeability/Versionable.sol +62 -0
  539. package/package.json +12 -8
  540. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  542. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -397
  544. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  546. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  548. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  549. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  550. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  551. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  554. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  556. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  558. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  560. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  562. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  564. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  566. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  568. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  572. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  577. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  581. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  583. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  585. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  587. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  588. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  589. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  591. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  592. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  593. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  594. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  595. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  596. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  597. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  599. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  600. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  601. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  602. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  603. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  604. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -532
  605. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  606. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  607. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  608. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  609. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  610. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  611. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  612. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  613. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  614. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  615. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  616. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -968
  619. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -432
  621. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  623. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  625. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  627. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  629. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  630. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  631. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  632. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  633. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  635. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  636. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -536
  637. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  638. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1025
  639. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  640. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -472
  641. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  642. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  643. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  644. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  645. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  646. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  647. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  648. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  649. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  650. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  651. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  652. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -546
  653. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  654. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  655. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  656. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  657. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  658. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  659. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  660. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  661. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  662. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  663. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  664. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  665. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  666. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  667. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  669. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  670. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  671. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  672. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  673. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  674. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  675. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  676. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  677. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  678. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  679. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  681. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  682. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  683. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  684. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  685. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  687. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  689. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  691. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  693. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  695. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  697. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  698. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  699. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  701. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  703. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  705. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  707. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  709. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  710. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  711. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  712. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  713. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  715. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  717. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  719. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  721. package/contracts/components/BaseComponent.sol +0 -159
  722. package/contracts/components/Distribution.sol +0 -163
  723. package/contracts/components/IBaseComponent.sol +0 -34
  724. package/contracts/components/IDistributionComponent.sol +0 -44
  725. package/contracts/components/IPoolComponent.sol +0 -66
  726. package/contracts/components/IProductComponent.sol +0 -35
  727. package/contracts/components/Pool.sol +0 -271
  728. package/contracts/components/Product.sol +0 -292
  729. package/contracts/experiment/cloning/Cloner.sol +0 -47
  730. package/contracts/experiment/errors/Require.sol +0 -38
  731. package/contracts/experiment/errors/Revert.sol +0 -44
  732. package/contracts/experiment/inheritance/A.sol +0 -53
  733. package/contracts/experiment/inheritance/B.sol +0 -28
  734. package/contracts/experiment/inheritance/C.sol +0 -34
  735. package/contracts/experiment/inheritance/IA.sol +0 -13
  736. package/contracts/experiment/inheritance/IB.sol +0 -10
  737. package/contracts/experiment/inheritance/IC.sol +0 -12
  738. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  739. package/contracts/experiment/statemachine/ISM.sol +0 -25
  740. package/contracts/experiment/statemachine/SM.sol +0 -57
  741. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  742. package/contracts/experiment/types/TypeA.sol +0 -47
  743. package/contracts/experiment/types/TypeB.sol +0 -29
  744. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  745. package/contracts/instance/BundleManager.sol +0 -129
  746. package/contracts/instance/IInstanceBase.sol +0 -26
  747. package/contracts/instance/InstanceAccessManager.sol +0 -303
  748. package/contracts/instance/InstanceBase.sol +0 -41
  749. package/contracts/instance/ObjectManager.sol +0 -101
  750. package/contracts/instance/base/ComponentServiceBase.sol +0 -82
  751. package/contracts/instance/base/IInstanceBase.sol +0 -23
  752. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  753. package/contracts/instance/base/KeyValueStore.sol +0 -172
  754. package/contracts/instance/base/Lifecycle.sol +0 -100
  755. package/contracts/instance/module/IAccess.sol +0 -48
  756. package/contracts/instance/module/ISetup.sol +0 -46
  757. package/contracts/instance/module/ITreasury.sol +0 -23
  758. package/contracts/instance/service/BundleService.sol +0 -275
  759. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  760. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  761. package/contracts/instance/service/DistributionService.sol +0 -113
  762. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  763. package/contracts/instance/service/IBundleService.sol +0 -42
  764. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  765. package/contracts/instance/service/IDistributionService.sol +0 -12
  766. package/contracts/instance/service/IPolicyService.sol +0 -88
  767. package/contracts/instance/service/IPoolService.sol +0 -20
  768. package/contracts/instance/service/IProductService.sol +0 -40
  769. package/contracts/instance/service/PolicyService.sol +0 -505
  770. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  771. package/contracts/instance/service/PoolService.sol +0 -124
  772. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  773. package/contracts/instance/service/ProductService.sol +0 -170
  774. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  775. package/contracts/registry/RegistryAccessManager.sol +0 -210
  776. package/contracts/registry/ReleaseManager.sol +0 -348
  777. package/contracts/shared/ContractDeployerLib.sol +0 -72
  778. package/contracts/shared/ERC165.sol +0 -25
  779. package/contracts/shared/ProxyManager.sol +0 -94
  780. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  781. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  782. package/contracts/shared/Versionable.sol +0 -147
  783. package/contracts/test/TestFee.sol +0 -25
  784. package/contracts/test/TestRegisterable.sol +0 -18
  785. package/contracts/test/TestRoleId.sol +0 -14
  786. package/contracts/test/TestService.sol +0 -25
  787. package/contracts/test/TestToken.sol +0 -26
  788. package/contracts/test/TestVersion.sol +0 -44
  789. package/contracts/test/TestVersionable.sol +0 -17
  790. package/contracts/types/ChainId.sol +0 -38
  791. package/contracts/types/Fee.sol +0 -56
  792. package/contracts/types/NumberId.sol +0 -52
  793. package/contracts/types/ObjectType.sol +0 -152
  794. package/contracts/types/RiskId.sol +0 -43
  795. package/contracts/types/RoleId.sol +0 -90
  796. package/contracts/types/UFixed.sol +0 -325
@@ -1,1025 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "PolicyService",
4
- "sourceName": "contracts/instance/service/PolicyService.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "ObjectType",
10
- "name": "componentType",
11
- "type": "uint8"
12
- }
13
- ],
14
- "name": "ComponentTypeInvalid",
15
- "type": "error"
16
- },
17
- {
18
- "inputs": [
19
- {
20
- "internalType": "address",
21
- "name": "registry",
22
- "type": "address"
23
- },
24
- {
25
- "internalType": "NftId",
26
- "name": "nftId",
27
- "type": "uint96"
28
- }
29
- ],
30
- "name": "ErrorAlreadyLinked",
31
- "type": "error"
32
- },
33
- {
34
- "inputs": [
35
- {
36
- "internalType": "address",
37
- "name": "componentAddress",
38
- "type": "address"
39
- }
40
- ],
41
- "name": "ErrorComponentServiceBaseComponentLocked",
42
- "type": "error"
43
- },
44
- {
45
- "inputs": [
46
- {
47
- "internalType": "address",
48
- "name": "contractAddress",
49
- "type": "address"
50
- }
51
- ],
52
- "name": "ErrorContractNotRegistered",
53
- "type": "error"
54
- },
55
- {
56
- "inputs": [
57
- {
58
- "internalType": "address",
59
- "name": "target",
60
- "type": "address"
61
- }
62
- ],
63
- "name": "ErrorIAccessTargetLocked",
64
- "type": "error"
65
- },
66
- {
67
- "inputs": [
68
- {
69
- "internalType": "address",
70
- "name": "customer",
71
- "type": "address"
72
- },
73
- {
74
- "internalType": "address",
75
- "name": "tokenHandlerAddress",
76
- "type": "address"
77
- },
78
- {
79
- "internalType": "uint256",
80
- "name": "amount",
81
- "type": "uint256"
82
- }
83
- ],
84
- "name": "ErrorIPolicyServiceInsufficientAllowance",
85
- "type": "error"
86
- },
87
- {
88
- "inputs": [
89
- {
90
- "internalType": "NftId",
91
- "name": "policyNftId",
92
- "type": "uint96"
93
- },
94
- {
95
- "internalType": "uint256",
96
- "name": "premiumPaidAmount",
97
- "type": "uint256"
98
- }
99
- ],
100
- "name": "ErrorIPolicyServicePremiumAlreadyPaid",
101
- "type": "error"
102
- },
103
- {
104
- "inputs": [
105
- {
106
- "internalType": "address",
107
- "name": "account",
108
- "type": "address"
109
- }
110
- ],
111
- "name": "ErrorNotOwner",
112
- "type": "error"
113
- },
114
- {
115
- "inputs": [
116
- {
117
- "internalType": "address",
118
- "name": "registryAddress",
119
- "type": "address"
120
- }
121
- ],
122
- "name": "ErrorNotRegistry",
123
- "type": "error"
124
- },
125
- {
126
- "inputs": [
127
- {
128
- "internalType": "address",
129
- "name": "registryAddress",
130
- "type": "address"
131
- }
132
- ],
133
- "name": "ErrorRegisterableNotRegistry",
134
- "type": "error"
135
- },
136
- {
137
- "inputs": [],
138
- "name": "ErrorRegistryAddressZero",
139
- "type": "error"
140
- },
141
- {
142
- "inputs": [
143
- {
144
- "internalType": "address",
145
- "name": "registry",
146
- "type": "address"
147
- }
148
- ],
149
- "name": "ErrorRegistryAlreadyInitialized",
150
- "type": "error"
151
- },
152
- {
153
- "inputs": [],
154
- "name": "ErrorRegistryNotInitialized",
155
- "type": "error"
156
- },
157
- {
158
- "inputs": [
159
- {
160
- "internalType": "RoleId",
161
- "name": "expected",
162
- "type": "uint64"
163
- },
164
- {
165
- "internalType": "address",
166
- "name": "caller",
167
- "type": "address"
168
- }
169
- ],
170
- "name": "ExpectedRoleMissing",
171
- "type": "error"
172
- },
173
- {
174
- "inputs": [],
175
- "name": "InvalidInitialization",
176
- "type": "error"
177
- },
178
- {
179
- "inputs": [],
180
- "name": "NotInitializing",
181
- "type": "error"
182
- },
183
- {
184
- "anonymous": false,
185
- "inputs": [
186
- {
187
- "indexed": false,
188
- "internalType": "uint64",
189
- "name": "version",
190
- "type": "uint64"
191
- }
192
- ],
193
- "name": "Initialized",
194
- "type": "event"
195
- },
196
- {
197
- "anonymous": false,
198
- "inputs": [
199
- {
200
- "indexed": false,
201
- "internalType": "address",
202
- "name": "sender",
203
- "type": "address"
204
- }
205
- ],
206
- "name": "LogProductServiceSender",
207
- "type": "event"
208
- },
209
- {
210
- "anonymous": false,
211
- "inputs": [
212
- {
213
- "indexed": false,
214
- "internalType": "Version",
215
- "name": "version",
216
- "type": "uint24"
217
- },
218
- {
219
- "indexed": false,
220
- "internalType": "address",
221
- "name": "implementation",
222
- "type": "address"
223
- },
224
- {
225
- "indexed": false,
226
- "internalType": "address",
227
- "name": "activatedBy",
228
- "type": "address"
229
- }
230
- ],
231
- "name": "LogVersionableInitialized",
232
- "type": "event"
233
- },
234
- {
235
- "inputs": [],
236
- "name": "REGISTERABLE_LOCATION_V1",
237
- "outputs": [
238
- {
239
- "internalType": "bytes32",
240
- "name": "",
241
- "type": "bytes32"
242
- }
243
- ],
244
- "stateMutability": "view",
245
- "type": "function"
246
- },
247
- {
248
- "inputs": [
249
- {
250
- "internalType": "NftId",
251
- "name": "policyNftId",
252
- "type": "uint96"
253
- },
254
- {
255
- "internalType": "Timestamp",
256
- "name": "activateAt",
257
- "type": "uint40"
258
- }
259
- ],
260
- "name": "activate",
261
- "outputs": [],
262
- "stateMutability": "nonpayable",
263
- "type": "function"
264
- },
265
- {
266
- "inputs": [
267
- {
268
- "internalType": "RiskId",
269
- "name": "riskId",
270
- "type": "bytes8"
271
- },
272
- {
273
- "internalType": "uint256",
274
- "name": "sumInsuredAmount",
275
- "type": "uint256"
276
- },
277
- {
278
- "internalType": "uint256",
279
- "name": "lifetime",
280
- "type": "uint256"
281
- },
282
- {
283
- "internalType": "bytes",
284
- "name": "applicationData",
285
- "type": "bytes"
286
- },
287
- {
288
- "internalType": "NftId",
289
- "name": "bundleNftId",
290
- "type": "uint96"
291
- },
292
- {
293
- "internalType": "ReferralId",
294
- "name": "referralId",
295
- "type": "bytes8"
296
- }
297
- ],
298
- "name": "calculatePremium",
299
- "outputs": [
300
- {
301
- "internalType": "uint256",
302
- "name": "premiumAmount",
303
- "type": "uint256"
304
- },
305
- {
306
- "internalType": "uint256",
307
- "name": "productFeeAmount",
308
- "type": "uint256"
309
- },
310
- {
311
- "internalType": "uint256",
312
- "name": "poolFeeAmount",
313
- "type": "uint256"
314
- },
315
- {
316
- "internalType": "uint256",
317
- "name": "bundleFeeAmount",
318
- "type": "uint256"
319
- },
320
- {
321
- "internalType": "uint256",
322
- "name": "distributionFeeAmount",
323
- "type": "uint256"
324
- }
325
- ],
326
- "stateMutability": "view",
327
- "type": "function"
328
- },
329
- {
330
- "inputs": [
331
- {
332
- "internalType": "UFixed",
333
- "name": "collateralizationLevel",
334
- "type": "uint256"
335
- },
336
- {
337
- "internalType": "uint256",
338
- "name": "sumInsuredAmount",
339
- "type": "uint256"
340
- }
341
- ],
342
- "name": "calculateRequiredCollateral",
343
- "outputs": [
344
- {
345
- "internalType": "uint256",
346
- "name": "collateralAmount",
347
- "type": "uint256"
348
- }
349
- ],
350
- "stateMutability": "pure",
351
- "type": "function"
352
- },
353
- {
354
- "inputs": [
355
- {
356
- "internalType": "NftId",
357
- "name": "policyNftId",
358
- "type": "uint96"
359
- }
360
- ],
361
- "name": "close",
362
- "outputs": [],
363
- "stateMutability": "nonpayable",
364
- "type": "function"
365
- },
366
- {
367
- "inputs": [
368
- {
369
- "internalType": "NftId",
370
- "name": "policyNftId",
371
- "type": "uint96"
372
- },
373
- {
374
- "internalType": "Timestamp",
375
- "name": "activateAt",
376
- "type": "uint40"
377
- }
378
- ],
379
- "name": "collectPremium",
380
- "outputs": [],
381
- "stateMutability": "nonpayable",
382
- "type": "function"
383
- },
384
- {
385
- "inputs": [
386
- {
387
- "internalType": "address",
388
- "name": "applicationOwner",
389
- "type": "address"
390
- },
391
- {
392
- "internalType": "RiskId",
393
- "name": "riskId",
394
- "type": "bytes8"
395
- },
396
- {
397
- "internalType": "uint256",
398
- "name": "sumInsuredAmount",
399
- "type": "uint256"
400
- },
401
- {
402
- "internalType": "uint256",
403
- "name": "lifetime",
404
- "type": "uint256"
405
- },
406
- {
407
- "internalType": "bytes",
408
- "name": "applicationData",
409
- "type": "bytes"
410
- },
411
- {
412
- "internalType": "NftId",
413
- "name": "bundleNftId",
414
- "type": "uint96"
415
- },
416
- {
417
- "internalType": "ReferralId",
418
- "name": "referralId",
419
- "type": "bytes8"
420
- }
421
- ],
422
- "name": "createApplication",
423
- "outputs": [
424
- {
425
- "internalType": "NftId",
426
- "name": "policyNftId",
427
- "type": "uint96"
428
- }
429
- ],
430
- "stateMutability": "nonpayable",
431
- "type": "function"
432
- },
433
- {
434
- "inputs": [],
435
- "name": "getDomain",
436
- "outputs": [
437
- {
438
- "internalType": "ObjectType",
439
- "name": "",
440
- "type": "uint8"
441
- }
442
- ],
443
- "stateMutability": "pure",
444
- "type": "function"
445
- },
446
- {
447
- "inputs": [],
448
- "name": "getInitialInfo",
449
- "outputs": [
450
- {
451
- "components": [
452
- {
453
- "internalType": "NftId",
454
- "name": "nftId",
455
- "type": "uint96"
456
- },
457
- {
458
- "internalType": "NftId",
459
- "name": "parentNftId",
460
- "type": "uint96"
461
- },
462
- {
463
- "internalType": "ObjectType",
464
- "name": "objectType",
465
- "type": "uint8"
466
- },
467
- {
468
- "internalType": "bool",
469
- "name": "isInterceptor",
470
- "type": "bool"
471
- },
472
- {
473
- "internalType": "address",
474
- "name": "objectAddress",
475
- "type": "address"
476
- },
477
- {
478
- "internalType": "address",
479
- "name": "initialOwner",
480
- "type": "address"
481
- },
482
- {
483
- "internalType": "bytes",
484
- "name": "data",
485
- "type": "bytes"
486
- }
487
- ],
488
- "internalType": "struct IRegistry.ObjectInfo",
489
- "name": "",
490
- "type": "tuple"
491
- },
492
- {
493
- "internalType": "bytes",
494
- "name": "data",
495
- "type": "bytes"
496
- }
497
- ],
498
- "stateMutability": "view",
499
- "type": "function"
500
- },
501
- {
502
- "inputs": [],
503
- "name": "getInitializedVersion",
504
- "outputs": [
505
- {
506
- "internalType": "uint64",
507
- "name": "",
508
- "type": "uint64"
509
- }
510
- ],
511
- "stateMutability": "view",
512
- "type": "function"
513
- },
514
- {
515
- "inputs": [],
516
- "name": "getInstanceService",
517
- "outputs": [
518
- {
519
- "internalType": "contract InstanceService",
520
- "name": "",
521
- "type": "address"
522
- }
523
- ],
524
- "stateMutability": "view",
525
- "type": "function"
526
- },
527
- {
528
- "inputs": [],
529
- "name": "getMajorVersion",
530
- "outputs": [
531
- {
532
- "internalType": "VersionPart",
533
- "name": "majorVersion",
534
- "type": "uint8"
535
- }
536
- ],
537
- "stateMutability": "view",
538
- "type": "function"
539
- },
540
- {
541
- "inputs": [],
542
- "name": "getNftId",
543
- "outputs": [
544
- {
545
- "internalType": "NftId",
546
- "name": "",
547
- "type": "uint96"
548
- }
549
- ],
550
- "stateMutability": "view",
551
- "type": "function"
552
- },
553
- {
554
- "inputs": [],
555
- "name": "getOwner",
556
- "outputs": [
557
- {
558
- "internalType": "address",
559
- "name": "",
560
- "type": "address"
561
- }
562
- ],
563
- "stateMutability": "view",
564
- "type": "function"
565
- },
566
- {
567
- "inputs": [],
568
- "name": "getRegistry",
569
- "outputs": [
570
- {
571
- "internalType": "contract IRegistry",
572
- "name": "",
573
- "type": "address"
574
- }
575
- ],
576
- "stateMutability": "view",
577
- "type": "function"
578
- },
579
- {
580
- "inputs": [],
581
- "name": "getRegistryService",
582
- "outputs": [
583
- {
584
- "internalType": "contract IRegistryService",
585
- "name": "",
586
- "type": "address"
587
- }
588
- ],
589
- "stateMutability": "view",
590
- "type": "function"
591
- },
592
- {
593
- "inputs": [],
594
- "name": "getVersion",
595
- "outputs": [
596
- {
597
- "internalType": "Version",
598
- "name": "",
599
- "type": "uint24"
600
- }
601
- ],
602
- "stateMutability": "pure",
603
- "type": "function"
604
- },
605
- {
606
- "inputs": [
607
- {
608
- "internalType": "uint256",
609
- "name": "idx",
610
- "type": "uint256"
611
- }
612
- ],
613
- "name": "getVersion",
614
- "outputs": [
615
- {
616
- "internalType": "Version",
617
- "name": "",
618
- "type": "uint24"
619
- }
620
- ],
621
- "stateMutability": "view",
622
- "type": "function"
623
- },
624
- {
625
- "inputs": [],
626
- "name": "getVersionCount",
627
- "outputs": [
628
- {
629
- "internalType": "uint256",
630
- "name": "",
631
- "type": "uint256"
632
- }
633
- ],
634
- "stateMutability": "view",
635
- "type": "function"
636
- },
637
- {
638
- "inputs": [
639
- {
640
- "internalType": "Version",
641
- "name": "_version",
642
- "type": "uint24"
643
- }
644
- ],
645
- "name": "getVersionInfo",
646
- "outputs": [
647
- {
648
- "components": [
649
- {
650
- "internalType": "Version",
651
- "name": "version",
652
- "type": "uint24"
653
- },
654
- {
655
- "internalType": "address",
656
- "name": "implementation",
657
- "type": "address"
658
- },
659
- {
660
- "internalType": "address",
661
- "name": "activatedBy",
662
- "type": "address"
663
- },
664
- {
665
- "internalType": "Timestamp",
666
- "name": "activatedAt",
667
- "type": "uint40"
668
- },
669
- {
670
- "internalType": "Blocknumber",
671
- "name": "activatedIn",
672
- "type": "uint32"
673
- }
674
- ],
675
- "internalType": "struct IVersionable.VersionInfo",
676
- "name": "",
677
- "type": "tuple"
678
- }
679
- ],
680
- "stateMutability": "view",
681
- "type": "function"
682
- },
683
- {
684
- "inputs": [
685
- {
686
- "internalType": "address",
687
- "name": "implementation",
688
- "type": "address"
689
- },
690
- {
691
- "internalType": "address",
692
- "name": "activatedBy",
693
- "type": "address"
694
- },
695
- {
696
- "internalType": "bytes",
697
- "name": "data",
698
- "type": "bytes"
699
- }
700
- ],
701
- "name": "initialize",
702
- "outputs": [],
703
- "stateMutability": "nonpayable",
704
- "type": "function"
705
- },
706
- {
707
- "inputs": [
708
- {
709
- "internalType": "Version",
710
- "name": "_version",
711
- "type": "uint24"
712
- }
713
- ],
714
- "name": "isInitialized",
715
- "outputs": [
716
- {
717
- "internalType": "bool",
718
- "name": "",
719
- "type": "bool"
720
- }
721
- ],
722
- "stateMutability": "view",
723
- "type": "function"
724
- },
725
- {
726
- "inputs": [],
727
- "name": "linkToRegisteredNftId",
728
- "outputs": [],
729
- "stateMutability": "nonpayable",
730
- "type": "function"
731
- },
732
- {
733
- "inputs": [
734
- {
735
- "internalType": "NftId",
736
- "name": "policyNftId",
737
- "type": "uint96"
738
- }
739
- ],
740
- "name": "revoke",
741
- "outputs": [],
742
- "stateMutability": "nonpayable",
743
- "type": "function"
744
- },
745
- {
746
- "inputs": [
747
- {
748
- "internalType": "bytes4",
749
- "name": "interfaceId",
750
- "type": "bytes4"
751
- }
752
- ],
753
- "name": "supportsInterface",
754
- "outputs": [
755
- {
756
- "internalType": "bool",
757
- "name": "",
758
- "type": "bool"
759
- }
760
- ],
761
- "stateMutability": "view",
762
- "type": "function"
763
- },
764
- {
765
- "inputs": [
766
- {
767
- "internalType": "NftId",
768
- "name": "policyNftId",
769
- "type": "uint96"
770
- },
771
- {
772
- "internalType": "bool",
773
- "name": "requirePremiumPayment",
774
- "type": "bool"
775
- },
776
- {
777
- "internalType": "Timestamp",
778
- "name": "activateAt",
779
- "type": "uint40"
780
- }
781
- ],
782
- "name": "underwrite",
783
- "outputs": [],
784
- "stateMutability": "nonpayable",
785
- "type": "function"
786
- },
787
- {
788
- "inputs": [
789
- {
790
- "internalType": "address",
791
- "name": "implementation",
792
- "type": "address"
793
- },
794
- {
795
- "internalType": "address",
796
- "name": "activatedBy",
797
- "type": "address"
798
- },
799
- {
800
- "internalType": "bytes",
801
- "name": "data",
802
- "type": "bytes"
803
- }
804
- ],
805
- "name": "upgrade",
806
- "outputs": [],
807
- "stateMutability": "nonpayable",
808
- "type": "function"
809
- }
810
- ],
811
- "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b614d89806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610526578063cc9fc59a1461052e578063cde749f414610536578063cf7a1d771461053e57600080fd5b8063b88da759146104ed578063bbfbbfba14610500578063c2c749871461051357600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046a578063a745e3df146104a5578063b3c65015146104b8578063b68d1809146104d857600080fd5b8063644c45e01461040f578063893d20e81461043b578063946dfcfe1461044357600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b15780635fd1a5f5146103d6578063603ccaad146103e9578063630361f6146103fc57600080fd5b80634d459c90146102725780634d5e16a91461038b5780634f4213331461039e57600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102035780630fec111c1461021f578063138461e0146102355780631eff4b221461023d575b600080fd5b6101db6101bc366004613c1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102016101fe366004613c59565b50565b005b61020b610551565b60405162ffffff90911681526020016101e7565b6102276105db565b6040516101e7929190613d37565b61020161072e565b6102647f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b61032e610280366004613d76565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020614d3483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b610201610399366004613da6565b610950565b6101db6103ac366004613d76565b610c14565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102646103e4366004613ddf565b610cc7565b6102016103f7366004613c59565b610dd0565b61020161040a366004613e0f565b610e22565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103be611394565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610264565b61047d610478366004613fc4565b6114ad565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102016104b3366004614061565b61158b565b6104c06116e5565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020b6104fb3660046140c2565b611706565b61020161050e366004613da6565b611757565b6104236105213660046140db565b611acb565b6103be611d83565b6103be611e1a565b6104db611e44565b61020161054c366004614061565b611ec7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614177565b905090565b6105e3613b5e565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061062f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610677611394565b6001600160a01b0316815260200182600101805461069490614194565b80601f01602080910402602001604051908101604052809291908181526020018280546106c090614194565b801561070d5780601f106106e25761010080835404028352916020019161070d565b820191906000526020600020905b8154815290600101906020018083116106f057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b491906141de565b156107fb576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108245760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906141de565b6108b9576040516372657a5160e01b81526001600160a01b03821660048201526024016107f2565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190614206565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b600061095c606e611fcf565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190614223565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610a16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3e91908101906142ad565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac291906141de565b610b0e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016107f2565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d9190614421565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d5290610bdb908890859060649060040161456d565b600060405180830381600087803b158015610bf557600080fd5b505af1158015610c09573d6000803e3d6000fd5b505050505050505050565b600080600080516020614d3483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906145a2565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906145a2565b90506000610d4e8583612246565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af4158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906145a2565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016107f2565b600080610e2f606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190614223565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f1591908101906142ad565b80519091506001600160601b03838116911614610f745760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016107f2565b604051639096a1f360e01b81526001600160601b0389166004820152610ff2906001600160a01b03851690639096a1f390602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe991906145d5565b60ff16600a1490565b61103e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016107f2565b6000611048613b9c565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c1919061464b565b90506110cb613b9c565b6110d78a8a8985612262565b9197509094506110f092508a9150869050858f866123e5565b9250602864ffffffffff8b16156111a357606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190614421565b64ffffffffff166101c08701525b8b156111d9576111bd898b600001518f8960a0015161240c565b91508560a001518660c0018181516111d59190614758565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016112579594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b81526004016112b99392919061456d565b600060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611363919061476b565b90508060e00151156113845761138485600001518f898860400151886129c4565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d91906141de565b1561149d57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614223565b506002546001600160a01b031690565b6000806000806000806114be612ac9565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b81526004016114f49493929190614820565b602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153591906145a2565b905061154381838b8b612ae8565b929850909650945092506115578682614758565b96506115638486614758565b61156d9088614758565b96506115798388614758565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115ad610551565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611611919061485b565b600080516020614d148339815191528054600160401b900460ff1680611644575080546001600160401b03808416911610155b156116625760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561168d8585613181565b61169683613420565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105d6600080516020614d14833981519152546001600160401b031690565b6000600080516020614d34833981519152600101828154811061172b5761172b614884565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611764606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc9190614223565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184791908101906142ad565b90508060a001518160c00151036118895760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016107f2565b60008160c001518260a0015161189f919061489a565b905060006118b38587600001518a8561240c565b9050818360c0018181516118c79190614758565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d52898561196060ff90565b6040518463ffffffff1660e01b815260040161197e9392919061456d565b600060405180830381600087803b15801561199857600080fd5b505af11580156119ac573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2a91906141de565b8015611ab257506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab291906141de565b15611ac157611ac18888610950565b5050505050505050565b60008080611ad9606e611fcf565b91509150611ae5611d83565b6001600160a01b0316635c992fed6040518060e00160405280611b06600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b8152600401611b7f91906148ad565b6020604051808303816000875af1158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190614206565b92506000611bd48a8a8a8a8a8a6114ad565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001611c83600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d400090611cc990889085906004016148c0565b600060405180830381600087803b158015611ce357600080fd5b505af1158015611cf7573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86611d13600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611d5c57600080fd5b505af1158015611d70573d6000803e3d6000fd5b5050505050505050979650505050505050565b600080611d986001546001600160a01b031690565b6001600160a01b031663d39e604360285b611db1611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614223565b600080611e2f6001546001600160a01b031690565b6001600160a01b031663d39e60436046611da9565b6000611e4e610551565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d691906145d5565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b0316600081158015611efa5750825b90506000826001600160401b03166001148015611f165750303b155b905081158015611f24575080155b15611f425760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611f6c57845460ff60401b1916600160401b1785555b611f768888613181565b611f808787613428565b8315611ac157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b611fd7613b5e565b600080611fec6001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261205b91908101906148e2565b925061207183604001518560ff90811691161490565b6120b35760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016107f2565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261213191908101906148e2565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219e9190614223565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f91906141de565b1561223e57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016107f2565b505050915091565b600061225b8383670de0b6b3a7640000613696565b9392505050565b600061226c613b9c565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122ec91908101906149b4565b805160608601519193506001600160601b039081169116146123495760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016107f2565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c3919061476b565b90506123d781604001518860800151610cc7565b925050509450945094915050565b6123ed613b9c565b81846080018181516123ff9190614758565b9052509295945050505050565b600081156129bc576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124789190614223565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa1580156124c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ec919061464b565b602081015190915060006125086001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190614223565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e19190614223565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b919061476b565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c2906126a5908490600401614a85565b602060405180830381865af41580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e691906141de565b15612752576040516317d5759960e31b81526001600160a01b0386169063beabacc89061271b90879086908d90600401614a9c565b600060405180830381600087803b15801561273557600080fd5b505af1158015612749573d6000803e3d6000fd5b505050506129b5565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190614ac0565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190614223565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156128a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c691906145a2565b10156128eb5786888c604051636d675c4360e01b81526004016107f293929190614a9c565b6040516317d5759960e31b81526001600160a01b0389169063beabacc89061291b908a9085908890600401614a9c565b600060405180830381600087803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061297d908a9089908790600401614a9c565b600060405180830381600087803b15801561299757600080fd5b505af11580156129ab573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006129d86001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a4f91908101906148e2565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612a8e918a9189908990600401614ae4565b600060405180830381600087803b158015612aa857600080fd5b505af1158015612abc573d6000803e3d6000fd5b5050505050505050505050565b6000612ad3613b5e565b612add606e611fcf565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b539190614223565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190614223565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614206565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015612c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9991908101906149b4565b80519091506001600160601b03838116911614612d035760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016107f2565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d759190614206565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde919061464b565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6b9190614ac0565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee5919061476b565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190614ac0565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc9190614206565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130539190614b2a565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190614ac0565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af415801561314a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316e9190614ac0565b5080955050505050945094509450949050565b61318961377f565b600080516020614d3483398151915260006131b9600080516020614d14833981519152546001600160401b031690565b905060006131c5610551565b9050816001600160401b03166001036131f25760028301805462ffffff191662ffffff8316179055613240565b600283015462ffffff908116908216116132405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016107f2565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156132f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133189190614421565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116d69083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a961377f565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b031660008115801561345b5750825b90506000826001600160401b031660011480156134775750303b155b905081158015613485575080155b156134a35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156134cd57845460ff60401b1916600160401b1785555b600080878060200190518101906134e49190614bc0565b90925090506134f3828a6137b8565b6001546001600160a01b031663d39e6043608c61350e611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190614223565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e60436135a460dc90565b6135ac611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614223565b600480546001600160a01b0319166001600160a01b039290921691909117905561364563fefde12b60e01b613823565b5050831561368d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008080600019858709858702925082811083820303915050806000036136d0578382816136c6576136c6614bef565b049250505061225b565b8084116137175760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016107f2565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020614d1483398151915254600160401b900460ff166137b657604051631afcd79f60e31b815260040160405180910390fd5b565b600060d26137c4611e44565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006137f984613848565b9050600061380c8583603c8488886138b3565b61381c637b6a51fd60e01b613823565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561388f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614206565b6138f46301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6138fe828761397f565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161396e8382614c54565b5061368d6303fb044760e21b613823565b6001600160a01b0382166139d55760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016107f2565b600280546001600160a01b0319166001600160a01b0384161790556139f9816139fd565b5050565b6001546001600160a01b031615613a365760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016107f2565b6001600160a01b038116613a5d5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613a935760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613b0d575060408051601f3d908101601f19168201909252613b0a918101906141de565b60015b613b355760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b806139f95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107f2565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001613bd5604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b600060208284031215613c2c57600080fd5b81356001600160e01b03198116811461225b57600080fd5b6001600160601b03811681146101fe57600080fd5b600060208284031215613c6b57600080fd5b813561225b81613c44565b60005b83811015613c91578181015183820152602001613c79565b50506000910152565b60008151808452613cb2816020860160208601613c76565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c08501526129bc60e0850182613c9a565b604081526000613d4a6040830185613cc6565b8281036020840152613d5c8185613c9a565b95945050505050565b62ffffff811681146101fe57600080fd5b600060208284031215613d8857600080fd5b813561225b81613d65565b64ffffffffff811681146101fe57600080fd5b60008060408385031215613db957600080fd5b8235613dc481613c44565b91506020830135613dd481613d93565b809150509250929050565b60008060408385031215613df257600080fd5b50508035926020909101359150565b80151581146101fe57600080fd5b600080600060608486031215613e2457600080fd5b8335613e2f81613c44565b92506020840135613e3f81613e01565b91506040840135613e4f81613d93565b809150509250925092565b6001600160c01b0319811681146101fe57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715613ea957613ea9613e70565b60405290565b60405161018081016001600160401b0381118282101715613ea957613ea9613e70565b60405161012081016001600160401b0381118282101715613ea957613ea9613e70565b60405160e081016001600160401b0381118282101715613ea957613ea9613e70565b604051601f8201601f191681016001600160401b0381118282101715613f3f57613f3f613e70565b604052919050565b60006001600160401b03821115613f6057613f60613e70565b50601f01601f191660200190565b600082601f830112613f7f57600080fd5b8135613f92613f8d82613f47565b613f17565b818152846020838601011115613fa757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613fdd57600080fd5b8635613fe881613e5a565b9550602087013594506040870135935060608701356001600160401b0381111561401157600080fd5b61401d89828a01613f6e565b935050608087013561402e81613c44565b915060a087013561403e81613e5a565b809150509295509295509295565b6001600160a01b03811681146101fe57600080fd5b60008060006060848603121561407657600080fd5b83356140818161404c565b925060208401356140918161404c565b915060408401356001600160401b038111156140ac57600080fd5b6140b886828701613f6e565b9150509250925092565b6000602082840312156140d457600080fd5b5035919050565b600080600080600080600060e0888a0312156140f657600080fd5b87356141018161404c565b9650602088013561411181613e5a565b9550604088013594506060880135935060808801356001600160401b0381111561413a57600080fd5b6141468a828b01613f6e565b93505060a088013561415781613c44565b915060c088013561416781613e5a565b8091505092959891949750929550565b60006020828403121561418957600080fd5b815161225b81613d65565b600181811c908216806141a857607f821691505b6020821081036141c857634e487b7160e01b600052602260045260246000fd5b50919050565b80516141d981613e01565b919050565b6000602082840312156141f057600080fd5b815161225b81613e01565b80516141d981613c44565b60006020828403121561421857600080fd5b815161225b81613c44565b60006020828403121561423557600080fd5b815161225b8161404c565b80516141d981613e5a565b600082601f83011261425c57600080fd5b815161426a613f8d82613f47565b81815284602083860101111561427f57600080fd5b6129bc826020830160208701613c76565b805161ffff811681146141d957600080fd5b80516141d981613d93565b6000602082840312156142bf57600080fd5b81516001600160401b03808211156142d657600080fd5b9083019061020082860312156142eb57600080fd5b6142f3613e86565b6142fc836141fb565b815261430a602084016141fb565b602082015261431b60408401614240565b604082015261432c60608401614240565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561436d57600080fd5b6143798882870161424b565b828401525050610120808401518381111561439357600080fd5b61439f8882870161424b565b82840152505061014091506143b5828401614290565b8282015261016091506143c9828401614290565b82820152610180915081830151828201526101a091506143ea8284016142a2565b828201526101c091506143fe8284016142a2565b828201526101e091506144128284016142a2565b91810191909152949350505050565b60006020828403121561443357600080fd5b815161225b81613d93565b80516001600160601b031682526000610200602083015161446a60208601826001600160601b03169052565b50604083015161448660408601826001600160c01b0319169052565b5060608301516144a260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015182828701526144e383870182613c9a565b9250505061012080840151858303828701526144ff8382613c9a565b92505050610140808401516145198287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b038416815260606020820152600061458f606083018561443e565b905060ff83166040830152949350505050565b6000602082840312156145b457600080fd5b5051919050565b60ff811681146101fe57600080fd5b80516141d9816145bb565b6000602082840312156145e757600080fd5b815161225b816145bb565b80516141d98161404c565b60006040828403121561460f57600080fd5b604051604081018181106001600160401b038211171561463157614631613e70565b604052825181526020928301519281019290925250919050565b6000610240828403121561465e57600080fd5b614666613eaf565b61466f836145f2565b815261467d602084016145f2565b602082015261468e604084016141fb565b604082015261469f606084016141fb565b60608201526146b184608085016145fd565b60808201526146c38460c085016145fd565b60a08201526101006146d7858286016145fd565b60c08301526101406146eb868287016145fd565b60e08401526146fe8661018087016145fd565b82840152614710866101c087016145fd565b61012084015261472361020086016141ce565b908301525061473561022084016145f2565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610dca57610dca614742565b6000610180828403121561477e57600080fd5b614786613ed2565b61478f836141fb565b815261479d602084016145f2565b6020820152604083015160408201526147b984606085016145fd565b60608201526147cb8460a085016145fd565b60808201526147dd8460e085016145fd565b60a08201526147ef61012084016141ce565b60c082015261480161014084016141ce565b60e082015261481361016084016145f2565b6101008201529392505050565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006148516080830184613c9a565b9695505050505050565b60006020828403121561486d57600080fd5b81516001600160401b038116811461225b57600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115610dca57610dca614742565b60208152600061225b6020830184613cc6565b6001600160601b03831681526040602082015260006129bc604083018461443e565b6000602082840312156148f457600080fd5b81516001600160401b038082111561490b57600080fd5b9083019060e0828603121561491f57600080fd5b614927613ef5565b614930836141fb565b815261493e602084016141fb565b602082015261494f604084016145ca565b6040820152614960606084016141ce565b6060820152614971608084016145f2565b608082015261498260a084016145f2565b60a082015260c08301518281111561499957600080fd5b6149a58782860161424b565b60c08301525095945050505050565b6000602082840312156149c657600080fd5b81516001600160401b03808211156149dd57600080fd5b9083019061014082860312156149f257600080fd5b6149fa613ed2565b614a03836141fb565b8152614a1286602085016145fd565b6020820152606083015182811115614a2957600080fd5b614a358782860161424b565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614a738284016142a2565b60e082015261441261012084016142a2565b815181526020808301519082015260408101610dca565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060408385031215614ad357600080fd5b505080516020909101519092909150565b6001600160601b0385168152608060208201526000614b066080830186613c9a565b8281036040840152614b188186613c9a565b91505082606083015295945050505050565b600060c08284031215614b3c57600080fd5b60405160a081018181106001600160401b0382111715614b5e57614b5e613e70565b6040528251614b6c81613c44565b81526020830151614b7c8161404c565b6020820152614b8e84604085016145fd565b60408201526080830151614ba181613e01565b606082015260a0830151614bb48161404c565b60808201529392505050565b60008060408385031215614bd357600080fd5b8251614bde8161404c565b6020840151909250613dd48161404c565b634e487b7160e01b600052601260045260246000fd5b601f821115614c4f57600081815260208120601f850160051c81016020861015614c2c5750805b601f850160051c820191505b81811015614c4b57828155600101614c38565b5050505b505050565b81516001600160401b03811115614c6d57614c6d613e70565b614c8181614c7b8454614194565b84614c05565b602080601f831160018114614cb65760008415614c9e5750858301515b600019600386901b1c1916600185901b178555614c4b565b600085815260208120601f198616915b82811015614ce557888601518255948401946001909101908401614cc6565b5085821015614d035787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220c0e8c75929a02924bd461061df864c8e45a0cd43cc6f86bbe6bd24021644b2e364736f6c63430008140033",
812
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610526578063cc9fc59a1461052e578063cde749f414610536578063cf7a1d771461053e57600080fd5b8063b88da759146104ed578063bbfbbfba14610500578063c2c749871461051357600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046a578063a745e3df146104a5578063b3c65015146104b8578063b68d1809146104d857600080fd5b8063644c45e01461040f578063893d20e81461043b578063946dfcfe1461044357600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b15780635fd1a5f5146103d6578063603ccaad146103e9578063630361f6146103fc57600080fd5b80634d459c90146102725780634d5e16a91461038b5780634f4213331461039e57600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102035780630fec111c1461021f578063138461e0146102355780631eff4b221461023d575b600080fd5b6101db6101bc366004613c1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102016101fe366004613c59565b50565b005b61020b610551565b60405162ffffff90911681526020016101e7565b6102276105db565b6040516101e7929190613d37565b61020161072e565b6102647f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b61032e610280366004613d76565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020614d3483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b610201610399366004613da6565b610950565b6101db6103ac366004613d76565b610c14565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102646103e4366004613ddf565b610cc7565b6102016103f7366004613c59565b610dd0565b61020161040a366004613e0f565b610e22565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103be611394565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610264565b61047d610478366004613fc4565b6114ad565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102016104b3366004614061565b61158b565b6104c06116e5565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020b6104fb3660046140c2565b611706565b61020161050e366004613da6565b611757565b6104236105213660046140db565b611acb565b6103be611d83565b6103be611e1a565b6104db611e44565b61020161054c366004614061565b611ec7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614177565b905090565b6105e3613b5e565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061062f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610677611394565b6001600160a01b0316815260200182600101805461069490614194565b80601f01602080910402602001604051908101604052809291908181526020018280546106c090614194565b801561070d5780601f106106e25761010080835404028352916020019161070d565b820191906000526020600020905b8154815290600101906020018083116106f057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b491906141de565b156107fb576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108245760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906141de565b6108b9576040516372657a5160e01b81526001600160a01b03821660048201526024016107f2565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190614206565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b600061095c606e611fcf565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190614223565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610a16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3e91908101906142ad565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac291906141de565b610b0e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016107f2565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d9190614421565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d5290610bdb908890859060649060040161456d565b600060405180830381600087803b158015610bf557600080fd5b505af1158015610c09573d6000803e3d6000fd5b505050505050505050565b600080600080516020614d3483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906145a2565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906145a2565b90506000610d4e8583612246565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af4158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906145a2565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016107f2565b600080610e2f606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190614223565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f1591908101906142ad565b80519091506001600160601b03838116911614610f745760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016107f2565b604051639096a1f360e01b81526001600160601b0389166004820152610ff2906001600160a01b03851690639096a1f390602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe991906145d5565b60ff16600a1490565b61103e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016107f2565b6000611048613b9c565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c1919061464b565b90506110cb613b9c565b6110d78a8a8985612262565b9197509094506110f092508a9150869050858f866123e5565b9250602864ffffffffff8b16156111a357606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190614421565b64ffffffffff166101c08701525b8b156111d9576111bd898b600001518f8960a0015161240c565b91508560a001518660c0018181516111d59190614758565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016112579594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b81526004016112b99392919061456d565b600060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611363919061476b565b90508060e00151156113845761138485600001518f898860400151886129c4565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d91906141de565b1561149d57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614223565b506002546001600160a01b031690565b6000806000806000806114be612ac9565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b81526004016114f49493929190614820565b602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153591906145a2565b905061154381838b8b612ae8565b929850909650945092506115578682614758565b96506115638486614758565b61156d9088614758565b96506115798388614758565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115ad610551565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611611919061485b565b600080516020614d148339815191528054600160401b900460ff1680611644575080546001600160401b03808416911610155b156116625760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561168d8585613181565b61169683613420565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105d6600080516020614d14833981519152546001600160401b031690565b6000600080516020614d34833981519152600101828154811061172b5761172b614884565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611764606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc9190614223565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184791908101906142ad565b90508060a001518160c00151036118895760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016107f2565b60008160c001518260a0015161189f919061489a565b905060006118b38587600001518a8561240c565b9050818360c0018181516118c79190614758565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d52898561196060ff90565b6040518463ffffffff1660e01b815260040161197e9392919061456d565b600060405180830381600087803b15801561199857600080fd5b505af11580156119ac573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2a91906141de565b8015611ab257506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab291906141de565b15611ac157611ac18888610950565b5050505050505050565b60008080611ad9606e611fcf565b91509150611ae5611d83565b6001600160a01b0316635c992fed6040518060e00160405280611b06600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b8152600401611b7f91906148ad565b6020604051808303816000875af1158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190614206565b92506000611bd48a8a8a8a8a8a6114ad565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001611c83600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d400090611cc990889085906004016148c0565b600060405180830381600087803b158015611ce357600080fd5b505af1158015611cf7573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86611d13600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611d5c57600080fd5b505af1158015611d70573d6000803e3d6000fd5b5050505050505050979650505050505050565b600080611d986001546001600160a01b031690565b6001600160a01b031663d39e604360285b611db1611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614223565b600080611e2f6001546001600160a01b031690565b6001600160a01b031663d39e60436046611da9565b6000611e4e610551565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d691906145d5565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b0316600081158015611efa5750825b90506000826001600160401b03166001148015611f165750303b155b905081158015611f24575080155b15611f425760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611f6c57845460ff60401b1916600160401b1785555b611f768888613181565b611f808787613428565b8315611ac157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b611fd7613b5e565b600080611fec6001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261205b91908101906148e2565b925061207183604001518560ff90811691161490565b6120b35760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016107f2565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261213191908101906148e2565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219e9190614223565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f91906141de565b1561223e57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016107f2565b505050915091565b600061225b8383670de0b6b3a7640000613696565b9392505050565b600061226c613b9c565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122ec91908101906149b4565b805160608601519193506001600160601b039081169116146123495760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016107f2565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c3919061476b565b90506123d781604001518860800151610cc7565b925050509450945094915050565b6123ed613b9c565b81846080018181516123ff9190614758565b9052509295945050505050565b600081156129bc576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124789190614223565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa1580156124c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ec919061464b565b602081015190915060006125086001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190614223565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e19190614223565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b919061476b565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c2906126a5908490600401614a85565b602060405180830381865af41580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e691906141de565b15612752576040516317d5759960e31b81526001600160a01b0386169063beabacc89061271b90879086908d90600401614a9c565b600060405180830381600087803b15801561273557600080fd5b505af1158015612749573d6000803e3d6000fd5b505050506129b5565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190614ac0565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190614223565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156128a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c691906145a2565b10156128eb5786888c604051636d675c4360e01b81526004016107f293929190614a9c565b6040516317d5759960e31b81526001600160a01b0389169063beabacc89061291b908a9085908890600401614a9c565b600060405180830381600087803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061297d908a9089908790600401614a9c565b600060405180830381600087803b15801561299757600080fd5b505af11580156129ab573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006129d86001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a4f91908101906148e2565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612a8e918a9189908990600401614ae4565b600060405180830381600087803b158015612aa857600080fd5b505af1158015612abc573d6000803e3d6000fd5b5050505050505050505050565b6000612ad3613b5e565b612add606e611fcf565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b539190614223565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190614223565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614206565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015612c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9991908101906149b4565b80519091506001600160601b03838116911614612d035760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016107f2565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d759190614206565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde919061464b565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6b9190614ac0565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee5919061476b565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190614ac0565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc9190614206565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130539190614b2a565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190614ac0565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af415801561314a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316e9190614ac0565b5080955050505050945094509450949050565b61318961377f565b600080516020614d3483398151915260006131b9600080516020614d14833981519152546001600160401b031690565b905060006131c5610551565b9050816001600160401b03166001036131f25760028301805462ffffff191662ffffff8316179055613240565b600283015462ffffff908116908216116132405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016107f2565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156132f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133189190614421565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116d69083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a961377f565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b031660008115801561345b5750825b90506000826001600160401b031660011480156134775750303b155b905081158015613485575080155b156134a35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156134cd57845460ff60401b1916600160401b1785555b600080878060200190518101906134e49190614bc0565b90925090506134f3828a6137b8565b6001546001600160a01b031663d39e6043608c61350e611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190614223565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e60436135a460dc90565b6135ac611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614223565b600480546001600160a01b0319166001600160a01b039290921691909117905561364563fefde12b60e01b613823565b5050831561368d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008080600019858709858702925082811083820303915050806000036136d0578382816136c6576136c6614bef565b049250505061225b565b8084116137175760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016107f2565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020614d1483398151915254600160401b900460ff166137b657604051631afcd79f60e31b815260040160405180910390fd5b565b600060d26137c4611e44565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006137f984613848565b9050600061380c8583603c8488886138b3565b61381c637b6a51fd60e01b613823565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561388f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614206565b6138f46301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6138fe828761397f565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161396e8382614c54565b5061368d6303fb044760e21b613823565b6001600160a01b0382166139d55760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016107f2565b600280546001600160a01b0319166001600160a01b0384161790556139f9816139fd565b5050565b6001546001600160a01b031615613a365760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016107f2565b6001600160a01b038116613a5d5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613a935760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613b0d575060408051601f3d908101601f19168201909252613b0a918101906141de565b60015b613b355760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b806139f95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107f2565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001613bd5604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b600060208284031215613c2c57600080fd5b81356001600160e01b03198116811461225b57600080fd5b6001600160601b03811681146101fe57600080fd5b600060208284031215613c6b57600080fd5b813561225b81613c44565b60005b83811015613c91578181015183820152602001613c79565b50506000910152565b60008151808452613cb2816020860160208601613c76565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c08501526129bc60e0850182613c9a565b604081526000613d4a6040830185613cc6565b8281036020840152613d5c8185613c9a565b95945050505050565b62ffffff811681146101fe57600080fd5b600060208284031215613d8857600080fd5b813561225b81613d65565b64ffffffffff811681146101fe57600080fd5b60008060408385031215613db957600080fd5b8235613dc481613c44565b91506020830135613dd481613d93565b809150509250929050565b60008060408385031215613df257600080fd5b50508035926020909101359150565b80151581146101fe57600080fd5b600080600060608486031215613e2457600080fd5b8335613e2f81613c44565b92506020840135613e3f81613e01565b91506040840135613e4f81613d93565b809150509250925092565b6001600160c01b0319811681146101fe57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715613ea957613ea9613e70565b60405290565b60405161018081016001600160401b0381118282101715613ea957613ea9613e70565b60405161012081016001600160401b0381118282101715613ea957613ea9613e70565b60405160e081016001600160401b0381118282101715613ea957613ea9613e70565b604051601f8201601f191681016001600160401b0381118282101715613f3f57613f3f613e70565b604052919050565b60006001600160401b03821115613f6057613f60613e70565b50601f01601f191660200190565b600082601f830112613f7f57600080fd5b8135613f92613f8d82613f47565b613f17565b818152846020838601011115613fa757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613fdd57600080fd5b8635613fe881613e5a565b9550602087013594506040870135935060608701356001600160401b0381111561401157600080fd5b61401d89828a01613f6e565b935050608087013561402e81613c44565b915060a087013561403e81613e5a565b809150509295509295509295565b6001600160a01b03811681146101fe57600080fd5b60008060006060848603121561407657600080fd5b83356140818161404c565b925060208401356140918161404c565b915060408401356001600160401b038111156140ac57600080fd5b6140b886828701613f6e565b9150509250925092565b6000602082840312156140d457600080fd5b5035919050565b600080600080600080600060e0888a0312156140f657600080fd5b87356141018161404c565b9650602088013561411181613e5a565b9550604088013594506060880135935060808801356001600160401b0381111561413a57600080fd5b6141468a828b01613f6e565b93505060a088013561415781613c44565b915060c088013561416781613e5a565b8091505092959891949750929550565b60006020828403121561418957600080fd5b815161225b81613d65565b600181811c908216806141a857607f821691505b6020821081036141c857634e487b7160e01b600052602260045260246000fd5b50919050565b80516141d981613e01565b919050565b6000602082840312156141f057600080fd5b815161225b81613e01565b80516141d981613c44565b60006020828403121561421857600080fd5b815161225b81613c44565b60006020828403121561423557600080fd5b815161225b8161404c565b80516141d981613e5a565b600082601f83011261425c57600080fd5b815161426a613f8d82613f47565b81815284602083860101111561427f57600080fd5b6129bc826020830160208701613c76565b805161ffff811681146141d957600080fd5b80516141d981613d93565b6000602082840312156142bf57600080fd5b81516001600160401b03808211156142d657600080fd5b9083019061020082860312156142eb57600080fd5b6142f3613e86565b6142fc836141fb565b815261430a602084016141fb565b602082015261431b60408401614240565b604082015261432c60608401614240565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561436d57600080fd5b6143798882870161424b565b828401525050610120808401518381111561439357600080fd5b61439f8882870161424b565b82840152505061014091506143b5828401614290565b8282015261016091506143c9828401614290565b82820152610180915081830151828201526101a091506143ea8284016142a2565b828201526101c091506143fe8284016142a2565b828201526101e091506144128284016142a2565b91810191909152949350505050565b60006020828403121561443357600080fd5b815161225b81613d93565b80516001600160601b031682526000610200602083015161446a60208601826001600160601b03169052565b50604083015161448660408601826001600160c01b0319169052565b5060608301516144a260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015182828701526144e383870182613c9a565b9250505061012080840151858303828701526144ff8382613c9a565b92505050610140808401516145198287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b038416815260606020820152600061458f606083018561443e565b905060ff83166040830152949350505050565b6000602082840312156145b457600080fd5b5051919050565b60ff811681146101fe57600080fd5b80516141d9816145bb565b6000602082840312156145e757600080fd5b815161225b816145bb565b80516141d98161404c565b60006040828403121561460f57600080fd5b604051604081018181106001600160401b038211171561463157614631613e70565b604052825181526020928301519281019290925250919050565b6000610240828403121561465e57600080fd5b614666613eaf565b61466f836145f2565b815261467d602084016145f2565b602082015261468e604084016141fb565b604082015261469f606084016141fb565b60608201526146b184608085016145fd565b60808201526146c38460c085016145fd565b60a08201526101006146d7858286016145fd565b60c08301526101406146eb868287016145fd565b60e08401526146fe8661018087016145fd565b82840152614710866101c087016145fd565b61012084015261472361020086016141ce565b908301525061473561022084016145f2565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610dca57610dca614742565b6000610180828403121561477e57600080fd5b614786613ed2565b61478f836141fb565b815261479d602084016145f2565b6020820152604083015160408201526147b984606085016145fd565b60608201526147cb8460a085016145fd565b60808201526147dd8460e085016145fd565b60a08201526147ef61012084016141ce565b60c082015261480161014084016141ce565b60e082015261481361016084016145f2565b6101008201529392505050565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006148516080830184613c9a565b9695505050505050565b60006020828403121561486d57600080fd5b81516001600160401b038116811461225b57600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115610dca57610dca614742565b60208152600061225b6020830184613cc6565b6001600160601b03831681526040602082015260006129bc604083018461443e565b6000602082840312156148f457600080fd5b81516001600160401b038082111561490b57600080fd5b9083019060e0828603121561491f57600080fd5b614927613ef5565b614930836141fb565b815261493e602084016141fb565b602082015261494f604084016145ca565b6040820152614960606084016141ce565b6060820152614971608084016145f2565b608082015261498260a084016145f2565b60a082015260c08301518281111561499957600080fd5b6149a58782860161424b565b60c08301525095945050505050565b6000602082840312156149c657600080fd5b81516001600160401b03808211156149dd57600080fd5b9083019061014082860312156149f257600080fd5b6149fa613ed2565b614a03836141fb565b8152614a1286602085016145fd565b6020820152606083015182811115614a2957600080fd5b614a358782860161424b565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614a738284016142a2565b60e082015261441261012084016142a2565b815181526020808301519082015260408101610dca565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060408385031215614ad357600080fd5b505080516020909101519092909150565b6001600160601b0385168152608060208201526000614b066080830186613c9a565b8281036040840152614b188186613c9a565b91505082606083015295945050505050565b600060c08284031215614b3c57600080fd5b60405160a081018181106001600160401b0382111715614b5e57614b5e613e70565b6040528251614b6c81613c44565b81526020830151614b7c8161404c565b6020820152614b8e84604085016145fd565b60408201526080830151614ba181613e01565b606082015260a0830151614bb48161404c565b60808201529392505050565b60008060408385031215614bd357600080fd5b8251614bde8161404c565b6020840151909250613dd48161404c565b634e487b7160e01b600052601260045260246000fd5b601f821115614c4f57600081815260208120601f850160051c81016020861015614c2c5750805b601f850160051c820191505b81811015614c4b57828155600101614c38565b5050505b505050565b81516001600160401b03811115614c6d57614c6d613e70565b614c8181614c7b8454614194565b84614c05565b602080601f831160018114614cb65760008415614c9e5750858301515b600019600386901b1c1916600185901b178555614c4b565b600085815260208120601f198616915b82811015614ce557888601518255948401946001909101908401614cc6565b5085821015614d035787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220c0e8c75929a02924bd461061df864c8e45a0cd43cc6f86bbe6bd24021644b2e364736f6c63430008140033",
813
- "linkReferences": {
814
- "contracts/types/Blocknumber.sol": {
815
- "BlocknumberLib": [
816
- {
817
- "length": 20,
818
- "start": 3484
819
- }
820
- ]
821
- },
822
- "contracts/types/Fee.sol": {
823
- "FeeLib": [
824
- {
825
- "length": 20,
826
- "start": 10167
827
- },
828
- {
829
- "length": 20,
830
- "start": 10430
831
- },
832
- {
833
- "length": 20,
834
- "start": 12104
835
- },
836
- {
837
- "length": 20,
838
- "start": 12367
839
- },
840
- {
841
- "length": 20,
842
- "start": 12733
843
- },
844
- {
845
- "length": 20,
846
- "start": 12873
847
- }
848
- ]
849
- },
850
- "contracts/types/NftId.sol": {
851
- "NftIdLib": [
852
- {
853
- "length": 20,
854
- "start": 2192
855
- },
856
- {
857
- "length": 20,
858
- "start": 5369
859
- }
860
- ]
861
- },
862
- "contracts/types/Timestamp.sol": {
863
- "TimestampLib": [
864
- {
865
- "length": 20,
866
- "start": 2974
867
- },
868
- {
869
- "length": 20,
870
- "start": 3193
871
- },
872
- {
873
- "length": 20,
874
- "start": 4721
875
- },
876
- {
877
- "length": 20,
878
- "start": 6916
879
- },
880
- {
881
- "length": 20,
882
- "start": 7054
883
- },
884
- {
885
- "length": 20,
886
- "start": 13300
887
- }
888
- ]
889
- },
890
- "contracts/types/UFixed.sol": {
891
- "UFixedLib": [
892
- {
893
- "length": 20,
894
- "start": 3612
895
- },
896
- {
897
- "length": 20,
898
- "start": 3745
899
- }
900
- ]
901
- },
902
- "contracts/types/Version.sol": {
903
- "VersionLib": [
904
- {
905
- "length": 20,
906
- "start": 1714
907
- },
908
- {
909
- "length": 20,
910
- "start": 5831
911
- },
912
- {
913
- "length": 20,
914
- "start": 8099
915
- }
916
- ]
917
- }
918
- },
919
- "deployedLinkReferences": {
920
- "contracts/types/Blocknumber.sol": {
921
- "BlocknumberLib": [
922
- {
923
- "length": 20,
924
- "start": 3170
925
- }
926
- ]
927
- },
928
- "contracts/types/Fee.sol": {
929
- "FeeLib": [
930
- {
931
- "length": 20,
932
- "start": 9853
933
- },
934
- {
935
- "length": 20,
936
- "start": 10116
937
- },
938
- {
939
- "length": 20,
940
- "start": 11790
941
- },
942
- {
943
- "length": 20,
944
- "start": 12053
945
- },
946
- {
947
- "length": 20,
948
- "start": 12419
949
- },
950
- {
951
- "length": 20,
952
- "start": 12559
953
- }
954
- ]
955
- },
956
- "contracts/types/NftId.sol": {
957
- "NftIdLib": [
958
- {
959
- "length": 20,
960
- "start": 1878
961
- },
962
- {
963
- "length": 20,
964
- "start": 5055
965
- }
966
- ]
967
- },
968
- "contracts/types/Timestamp.sol": {
969
- "TimestampLib": [
970
- {
971
- "length": 20,
972
- "start": 2660
973
- },
974
- {
975
- "length": 20,
976
- "start": 2879
977
- },
978
- {
979
- "length": 20,
980
- "start": 4407
981
- },
982
- {
983
- "length": 20,
984
- "start": 6602
985
- },
986
- {
987
- "length": 20,
988
- "start": 6740
989
- },
990
- {
991
- "length": 20,
992
- "start": 12986
993
- }
994
- ]
995
- },
996
- "contracts/types/UFixed.sol": {
997
- "UFixedLib": [
998
- {
999
- "length": 20,
1000
- "start": 3298
1001
- },
1002
- {
1003
- "length": 20,
1004
- "start": 3431
1005
- }
1006
- ]
1007
- },
1008
- "contracts/types/Version.sol": {
1009
- "VersionLib": [
1010
- {
1011
- "length": 20,
1012
- "start": 1400
1013
- },
1014
- {
1015
- "length": 20,
1016
- "start": 5517
1017
- },
1018
- {
1019
- "length": 20,
1020
- "start": 7785
1021
- }
1022
- ]
1023
- }
1024
- }
1025
- }