@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  49. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  51. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
  53. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  54. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
  57. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  59. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  61. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  63. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  65. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  67. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  69. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  71. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  73. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
  75. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
  77. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
  79. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  80. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
  81. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  89. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  91. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  92. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  93. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  95. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  97. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
  103. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  106. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  107. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
  114. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  118. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  119. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  120. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  122. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  128. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  129. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  130. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  132. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  134. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  142. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  143. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  144. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  146. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  148. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  154. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  158. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  161. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  163. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  164. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
  166. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  167. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  168. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  170. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  172. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  174. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  175. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  176. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  178. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  180. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  182. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  184. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  186. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  188. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  189. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  190. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  191. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  192. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  194. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  196. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  198. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  200. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  202. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  204. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  208. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  214. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  224. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  226. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  227. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  228. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  230. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  234. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  236. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  238. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  239. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  242. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  243. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  246. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  247. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  250. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  251. package/contracts/{components → distribution}/Distribution.sol +41 -64
  252. package/contracts/distribution/DistributionService.sol +298 -0
  253. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  254. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  255. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  256. package/contracts/instance/BundleManager.sol +5 -5
  257. package/contracts/instance/IInstance.sol +45 -70
  258. package/contracts/instance/IInstanceService.sol +29 -11
  259. package/contracts/instance/Instance.sol +112 -195
  260. package/contracts/instance/InstanceAdmin.sol +331 -0
  261. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  262. package/contracts/instance/InstanceReader.sol +106 -58
  263. package/contracts/instance/InstanceService.sol +166 -288
  264. package/contracts/instance/InstanceServiceManager.sol +11 -21
  265. package/contracts/instance/InstanceStore.sol +260 -0
  266. package/contracts/instance/base/BalanceStore.sol +118 -0
  267. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  268. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
  269. package/contracts/instance/module/IAccess.sol +4 -12
  270. package/contracts/instance/module/IBundle.sol +6 -9
  271. package/contracts/instance/module/IComponents.sol +21 -10
  272. package/contracts/instance/module/IDistribution.sol +7 -6
  273. package/contracts/instance/module/IPolicy.sol +20 -14
  274. package/contracts/instance/module/IRisk.sol +1 -1
  275. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  276. package/contracts/pool/BundleService.sol +296 -0
  277. package/contracts/pool/BundleServiceManager.sol +42 -0
  278. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  279. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  280. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  281. package/contracts/{components → pool}/Pool.sol +52 -55
  282. package/contracts/pool/PoolService.sol +453 -0
  283. package/contracts/pool/PoolServiceManager.sol +42 -0
  284. package/contracts/product/ApplicationService.sol +254 -0
  285. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  286. package/contracts/{instance/service → product}/ClaimService.sol +167 -86
  287. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  288. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  289. package/contracts/{instance/service → product}/IClaimService.sol +18 -15
  290. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  291. package/contracts/product/IPricingService.sol +39 -0
  292. package/contracts/product/IProductComponent.sol +42 -0
  293. package/contracts/product/IProductService.sol +33 -0
  294. package/contracts/product/PolicyService.sol +475 -0
  295. package/contracts/product/PolicyServiceManager.sol +42 -0
  296. package/contracts/product/PricingService.sol +301 -0
  297. package/contracts/product/PricingServiceManager.sol +42 -0
  298. package/contracts/{components → product}/Product.sol +83 -77
  299. package/contracts/product/ProductService.sol +124 -0
  300. package/contracts/product/ProductServiceManager.sol +42 -0
  301. package/contracts/registry/ChainNft.sol +8 -1
  302. package/contracts/registry/IRegistry.sol +44 -21
  303. package/contracts/registry/IRegistryService.sol +37 -34
  304. package/contracts/registry/Registry.sol +191 -82
  305. package/contracts/registry/RegistryAdmin.sol +237 -0
  306. package/contracts/registry/RegistryService.sol +66 -82
  307. package/contracts/registry/RegistryServiceManager.sol +21 -25
  308. package/contracts/registry/ReleaseManager.sol +458 -183
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +261 -62
  311. package/contracts/shared/AccessManagerCustom.sol +736 -0
  312. package/contracts/shared/AccessManagerExtended.sol +470 -0
  313. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  314. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  315. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  316. package/contracts/shared/Component.sol +278 -0
  317. package/contracts/shared/ComponentService.sol +596 -0
  318. package/contracts/shared/ComponentServiceManager.sol +35 -0
  319. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  320. package/contracts/shared/ERC165.sol +1 -1
  321. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  322. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  323. package/contracts/{components → shared}/IComponent.sol +23 -29
  324. package/contracts/shared/IComponentService.sol +91 -0
  325. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  326. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  327. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  328. package/contracts/shared/INftOwnable.sol +2 -2
  329. package/contracts/shared/IPolicyHolder.sol +14 -7
  330. package/contracts/shared/IService.sol +2 -2
  331. package/contracts/shared/IVersionable.sol +1 -1
  332. package/contracts/shared/InitializableCustom.sol +177 -0
  333. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  334. package/contracts/shared/KeyValueStore.sol +127 -0
  335. package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
  336. package/contracts/shared/NftIdSetManager.sol +65 -0
  337. package/contracts/shared/NftOwnable.sol +3 -14
  338. package/contracts/shared/PolicyHolder.sol +32 -17
  339. package/contracts/shared/ProxyManager.sol +34 -4
  340. package/contracts/shared/Registerable.sol +3 -3
  341. package/contracts/shared/Service.sol +9 -4
  342. package/contracts/shared/TokenHandler.sol +27 -2
  343. package/contracts/shared/Versionable.sol +1 -1
  344. package/contracts/staking/IStaking.sol +168 -0
  345. package/contracts/staking/IStakingService.sol +149 -0
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +551 -0
  348. package/contracts/staking/StakingManager.sol +54 -0
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +406 -0
  351. package/contracts/staking/StakingServiceManager.sol +45 -0
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/{types → type}/AddressSet.sol +1 -1
  355. package/contracts/{types → type}/Amount.sol +59 -1
  356. package/contracts/{types → type}/Blocknumber.sol +20 -3
  357. package/contracts/{types → type}/Fee.sol +24 -22
  358. package/contracts/{types → type}/NftId.sol +14 -16
  359. package/contracts/{types → type}/NftIdSet.sol +2 -2
  360. package/contracts/{types → type}/ObjectType.sol +15 -3
  361. package/contracts/{types → type}/Referral.sol +1 -1
  362. package/contracts/{types → type}/RiskId.sol +1 -1
  363. package/contracts/{types → type}/RoleId.sol +55 -9
  364. package/contracts/{types → type}/Seconds.sol +27 -0
  365. package/contracts/{types → type}/StateId.sol +17 -4
  366. package/contracts/{types → type}/Version.sol +1 -1
  367. package/package.json +3 -3
  368. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  370. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  374. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  375. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  376. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  377. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  378. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  379. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  381. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  383. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  384. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  387. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  389. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  395. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  397. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  399. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  401. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  403. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  409. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  418. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  420. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  422. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  424. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  426. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  428. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  430. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  431. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  432. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  433. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  434. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  435. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  436. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  437. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  438. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  439. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  440. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  441. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  442. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  444. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  446. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  447. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  448. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  449. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  451. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  453. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  455. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  456. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  458. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  459. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  460. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  461. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  462. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  463. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  465. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  472. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  478. package/contracts/components/Component.sol +0 -253
  479. package/contracts/components/IProductComponent.sol +0 -40
  480. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  481. package/contracts/instance/InstanceAccessManager.sol +0 -527
  482. package/contracts/instance/base/ComponentService.sol +0 -130
  483. package/contracts/instance/base/KeyValueStore.sol +0 -149
  484. package/contracts/instance/module/ISetup.sol +0 -33
  485. package/contracts/instance/module/ITreasury.sol +0 -23
  486. package/contracts/instance/service/ApplicationService.sol +0 -356
  487. package/contracts/instance/service/BundleService.sol +0 -443
  488. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  489. package/contracts/instance/service/DistributionService.sol +0 -431
  490. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  491. package/contracts/instance/service/IProductService.sol +0 -40
  492. package/contracts/instance/service/PolicyService.sol +0 -358
  493. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  494. package/contracts/instance/service/PoolService.sol +0 -349
  495. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  496. package/contracts/instance/service/ProductService.sol +0 -210
  497. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  498. package/contracts/registry/RegistryAccessManager.sol +0 -216
  499. package/contracts/shared/ContractDeployerLib.sol +0 -72
  500. package/contracts/test/TestFee.sol +0 -25
  501. package/contracts/test/TestRegisterable.sol +0 -18
  502. package/contracts/test/TestRoleId.sol +0 -14
  503. package/contracts/test/TestService.sol +0 -25
  504. package/contracts/test/TestVersion.sol +0 -44
  505. package/contracts/test/TestVersionable.sol +0 -17
  506. package/contracts/test/Usdc.sol +0 -26
  507. package/contracts/types/ChainId.sol +0 -38
  508. package/contracts/types/NumberId.sol +0 -52
  509. /package/contracts/{types → type}/ClaimId.sol +0 -0
  510. /package/contracts/{types → type}/DistributorType.sol +0 -0
  511. /package/contracts/{types → type}/Key32.sol +0 -0
  512. /package/contracts/{types → type}/PayoutId.sol +0 -0
  513. /package/contracts/{types → type}/Timestamp.sol +0 -0
  514. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,1475 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ComponentService",
4
+ "sourceName": "contracts/shared/ComponentService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "component",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorComponentServiceAlreadyRegistered",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "component",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorComponentServiceComponentLocked",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "address",
70
+ "name": "component",
71
+ "type": "address"
72
+ },
73
+ {
74
+ "internalType": "ObjectType",
75
+ "name": "expectedType",
76
+ "type": "uint8"
77
+ },
78
+ {
79
+ "internalType": "ObjectType",
80
+ "name": "foundType",
81
+ "type": "uint8"
82
+ }
83
+ ],
84
+ "name": "ErrorComponentServiceComponentTypeInvalid",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "NftId",
91
+ "name": "instanceNftId",
92
+ "type": "uint96"
93
+ },
94
+ {
95
+ "internalType": "RoleId",
96
+ "name": "requiredRole",
97
+ "type": "uint64"
98
+ },
99
+ {
100
+ "internalType": "address",
101
+ "name": "sender",
102
+ "type": "address"
103
+ }
104
+ ],
105
+ "name": "ErrorComponentServiceExpectedRoleMissing",
106
+ "type": "error"
107
+ },
108
+ {
109
+ "inputs": [
110
+ {
111
+ "internalType": "address",
112
+ "name": "component",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "internalType": "ObjectType",
117
+ "name": "requiredType",
118
+ "type": "uint8"
119
+ },
120
+ {
121
+ "internalType": "ObjectType",
122
+ "name": "componentType",
123
+ "type": "uint8"
124
+ }
125
+ ],
126
+ "name": "ErrorComponentServiceInvalidType",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "ErrorComponentServiceNewWalletAddressZero",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "component",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "ErrorComponentServiceNotComponent",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "component",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "internalType": "address",
154
+ "name": "initialOwner",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "internalType": "address",
159
+ "name": "sender",
160
+ "type": "address"
161
+ }
162
+ ],
163
+ "name": "ErrorComponentServiceSenderNotOwner",
164
+ "type": "error"
165
+ },
166
+ {
167
+ "inputs": [
168
+ {
169
+ "internalType": "address",
170
+ "name": "sender",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "ErrorComponentServiceSenderNotService",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [],
179
+ "name": "ErrorComponentServiceWalletAddressIsSameAsCurrent",
180
+ "type": "error"
181
+ },
182
+ {
183
+ "inputs": [],
184
+ "name": "ErrorComponentServiceWalletAddressZero",
185
+ "type": "error"
186
+ },
187
+ {
188
+ "inputs": [
189
+ {
190
+ "internalType": "NftId",
191
+ "name": "componentNftId",
192
+ "type": "uint96"
193
+ }
194
+ ],
195
+ "name": "ErrorComponentVerifyingServiceComponentIsLocked",
196
+ "type": "error"
197
+ },
198
+ {
199
+ "inputs": [
200
+ {
201
+ "internalType": "NftId",
202
+ "name": "componentNftId",
203
+ "type": "uint96"
204
+ },
205
+ {
206
+ "internalType": "ObjectType",
207
+ "name": "expectedType",
208
+ "type": "uint8"
209
+ },
210
+ {
211
+ "internalType": "ObjectType",
212
+ "name": "actualType",
213
+ "type": "uint8"
214
+ }
215
+ ],
216
+ "name": "ErrorComponentVerifyingServiceComponentTypeInvalid",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [
221
+ {
222
+ "internalType": "NftId",
223
+ "name": "nftId",
224
+ "type": "uint96"
225
+ }
226
+ ],
227
+ "name": "ErrorNftOwnableAlreadyLinked",
228
+ "type": "error"
229
+ },
230
+ {
231
+ "inputs": [
232
+ {
233
+ "internalType": "address",
234
+ "name": "contractAddress",
235
+ "type": "address"
236
+ }
237
+ ],
238
+ "name": "ErrorNftOwnableContractNotRegistered",
239
+ "type": "error"
240
+ },
241
+ {
242
+ "inputs": [],
243
+ "name": "ErrorNftOwnableInitialOwnerZero",
244
+ "type": "error"
245
+ },
246
+ {
247
+ "inputs": [
248
+ {
249
+ "internalType": "address",
250
+ "name": "account",
251
+ "type": "address"
252
+ }
253
+ ],
254
+ "name": "ErrorNftOwnableNotOwner",
255
+ "type": "error"
256
+ },
257
+ {
258
+ "inputs": [
259
+ {
260
+ "internalType": "address",
261
+ "name": "registryAddress",
262
+ "type": "address"
263
+ }
264
+ ],
265
+ "name": "ErrorNotRegistry",
266
+ "type": "error"
267
+ },
268
+ {
269
+ "inputs": [],
270
+ "name": "ErrorServiceNotImplemented",
271
+ "type": "error"
272
+ },
273
+ {
274
+ "inputs": [],
275
+ "name": "InvalidInitialization",
276
+ "type": "error"
277
+ },
278
+ {
279
+ "inputs": [],
280
+ "name": "NotInitializing",
281
+ "type": "error"
282
+ },
283
+ {
284
+ "anonymous": false,
285
+ "inputs": [
286
+ {
287
+ "indexed": false,
288
+ "internalType": "address",
289
+ "name": "authority",
290
+ "type": "address"
291
+ }
292
+ ],
293
+ "name": "AuthorityUpdated",
294
+ "type": "event"
295
+ },
296
+ {
297
+ "anonymous": false,
298
+ "inputs": [
299
+ {
300
+ "indexed": false,
301
+ "internalType": "uint64",
302
+ "name": "version",
303
+ "type": "uint64"
304
+ }
305
+ ],
306
+ "name": "Initialized",
307
+ "type": "event"
308
+ },
309
+ {
310
+ "anonymous": false,
311
+ "inputs": [
312
+ {
313
+ "indexed": false,
314
+ "internalType": "NftId",
315
+ "name": "distributionNftId",
316
+ "type": "uint96"
317
+ }
318
+ ],
319
+ "name": "LogComponentServiceDistributionFeesUpdated",
320
+ "type": "event"
321
+ },
322
+ {
323
+ "anonymous": false,
324
+ "inputs": [
325
+ {
326
+ "indexed": false,
327
+ "internalType": "NftId",
328
+ "name": "poolNftId",
329
+ "type": "uint96"
330
+ }
331
+ ],
332
+ "name": "LogComponentServicePoolFeesUpdated",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "NftId",
341
+ "name": "productNftId",
342
+ "type": "uint96"
343
+ }
344
+ ],
345
+ "name": "LogComponentServiceProductFeesUpdated",
346
+ "type": "event"
347
+ },
348
+ {
349
+ "anonymous": false,
350
+ "inputs": [
351
+ {
352
+ "indexed": false,
353
+ "internalType": "NftId",
354
+ "name": "nftId",
355
+ "type": "uint96"
356
+ },
357
+ {
358
+ "indexed": false,
359
+ "internalType": "string",
360
+ "name": "feeName",
361
+ "type": "string"
362
+ },
363
+ {
364
+ "indexed": false,
365
+ "internalType": "UFixed",
366
+ "name": "previousFractionalFee",
367
+ "type": "uint256"
368
+ },
369
+ {
370
+ "indexed": false,
371
+ "internalType": "uint256",
372
+ "name": "previousFixedFee",
373
+ "type": "uint256"
374
+ },
375
+ {
376
+ "indexed": false,
377
+ "internalType": "UFixed",
378
+ "name": "newFractionalFee",
379
+ "type": "uint256"
380
+ },
381
+ {
382
+ "indexed": false,
383
+ "internalType": "uint256",
384
+ "name": "newFixedFee",
385
+ "type": "uint256"
386
+ }
387
+ ],
388
+ "name": "LogComponentServiceUpdateFee",
389
+ "type": "event"
390
+ },
391
+ {
392
+ "anonymous": false,
393
+ "inputs": [
394
+ {
395
+ "indexed": false,
396
+ "internalType": "NftId",
397
+ "name": "componentNftId",
398
+ "type": "uint96"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "address",
403
+ "name": "currentWallet",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "address",
409
+ "name": "newWallet",
410
+ "type": "address"
411
+ }
412
+ ],
413
+ "name": "LogComponentServiceWalletAddressChanged",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
419
+ "outputs": [
420
+ {
421
+ "internalType": "bytes32",
422
+ "name": "",
423
+ "type": "bytes32"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [],
431
+ "name": "REGISTERABLE_LOCATION_V1",
432
+ "outputs": [
433
+ {
434
+ "internalType": "bytes32",
435
+ "name": "",
436
+ "type": "bytes32"
437
+ }
438
+ ],
439
+ "stateMutability": "view",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [],
444
+ "name": "authority",
445
+ "outputs": [
446
+ {
447
+ "internalType": "address",
448
+ "name": "",
449
+ "type": "address"
450
+ }
451
+ ],
452
+ "stateMutability": "view",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [
457
+ {
458
+ "internalType": "contract InstanceStore",
459
+ "name": "instanceStore",
460
+ "type": "address"
461
+ },
462
+ {
463
+ "internalType": "NftId",
464
+ "name": "bundleNftId",
465
+ "type": "uint96"
466
+ },
467
+ {
468
+ "internalType": "Amount",
469
+ "name": "amount",
470
+ "type": "uint96"
471
+ },
472
+ {
473
+ "internalType": "Amount",
474
+ "name": "feeAmount",
475
+ "type": "uint96"
476
+ }
477
+ ],
478
+ "name": "decreaseBundleBalance",
479
+ "outputs": [],
480
+ "stateMutability": "nonpayable",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [
485
+ {
486
+ "internalType": "contract InstanceStore",
487
+ "name": "instanceStore",
488
+ "type": "address"
489
+ },
490
+ {
491
+ "internalType": "NftId",
492
+ "name": "distributionNftId",
493
+ "type": "uint96"
494
+ },
495
+ {
496
+ "internalType": "Amount",
497
+ "name": "amount",
498
+ "type": "uint96"
499
+ },
500
+ {
501
+ "internalType": "Amount",
502
+ "name": "feeAmount",
503
+ "type": "uint96"
504
+ }
505
+ ],
506
+ "name": "decreaseDistributionBalance",
507
+ "outputs": [],
508
+ "stateMutability": "nonpayable",
509
+ "type": "function"
510
+ },
511
+ {
512
+ "inputs": [
513
+ {
514
+ "internalType": "contract InstanceStore",
515
+ "name": "instanceStore",
516
+ "type": "address"
517
+ },
518
+ {
519
+ "internalType": "NftId",
520
+ "name": "poolNftId",
521
+ "type": "uint96"
522
+ },
523
+ {
524
+ "internalType": "Amount",
525
+ "name": "amount",
526
+ "type": "uint96"
527
+ },
528
+ {
529
+ "internalType": "Amount",
530
+ "name": "feeAmount",
531
+ "type": "uint96"
532
+ }
533
+ ],
534
+ "name": "decreasePoolBalance",
535
+ "outputs": [],
536
+ "stateMutability": "nonpayable",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "internalType": "contract InstanceStore",
543
+ "name": "instanceStore",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "NftId",
548
+ "name": "productNftId",
549
+ "type": "uint96"
550
+ },
551
+ {
552
+ "internalType": "Amount",
553
+ "name": "feeAmount",
554
+ "type": "uint96"
555
+ }
556
+ ],
557
+ "name": "decreaseProductFees",
558
+ "outputs": [],
559
+ "stateMutability": "nonpayable",
560
+ "type": "function"
561
+ },
562
+ {
563
+ "inputs": [],
564
+ "name": "getDomain",
565
+ "outputs": [
566
+ {
567
+ "internalType": "ObjectType",
568
+ "name": "",
569
+ "type": "uint8"
570
+ }
571
+ ],
572
+ "stateMutability": "pure",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [],
577
+ "name": "getInitialInfo",
578
+ "outputs": [
579
+ {
580
+ "components": [
581
+ {
582
+ "internalType": "NftId",
583
+ "name": "nftId",
584
+ "type": "uint96"
585
+ },
586
+ {
587
+ "internalType": "NftId",
588
+ "name": "parentNftId",
589
+ "type": "uint96"
590
+ },
591
+ {
592
+ "internalType": "ObjectType",
593
+ "name": "objectType",
594
+ "type": "uint8"
595
+ },
596
+ {
597
+ "internalType": "bool",
598
+ "name": "isInterceptor",
599
+ "type": "bool"
600
+ },
601
+ {
602
+ "internalType": "address",
603
+ "name": "objectAddress",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "internalType": "address",
608
+ "name": "initialOwner",
609
+ "type": "address"
610
+ },
611
+ {
612
+ "internalType": "bytes",
613
+ "name": "data",
614
+ "type": "bytes"
615
+ }
616
+ ],
617
+ "internalType": "struct IRegistry.ObjectInfo",
618
+ "name": "info",
619
+ "type": "tuple"
620
+ }
621
+ ],
622
+ "stateMutability": "view",
623
+ "type": "function"
624
+ },
625
+ {
626
+ "inputs": [],
627
+ "name": "getNftId",
628
+ "outputs": [
629
+ {
630
+ "internalType": "NftId",
631
+ "name": "",
632
+ "type": "uint96"
633
+ }
634
+ ],
635
+ "stateMutability": "view",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [],
640
+ "name": "getOwner",
641
+ "outputs": [
642
+ {
643
+ "internalType": "address",
644
+ "name": "",
645
+ "type": "address"
646
+ }
647
+ ],
648
+ "stateMutability": "view",
649
+ "type": "function"
650
+ },
651
+ {
652
+ "inputs": [],
653
+ "name": "getRegistry",
654
+ "outputs": [
655
+ {
656
+ "internalType": "contract IRegistry",
657
+ "name": "",
658
+ "type": "address"
659
+ }
660
+ ],
661
+ "stateMutability": "view",
662
+ "type": "function"
663
+ },
664
+ {
665
+ "inputs": [],
666
+ "name": "getVersion",
667
+ "outputs": [
668
+ {
669
+ "internalType": "Version",
670
+ "name": "",
671
+ "type": "uint24"
672
+ }
673
+ ],
674
+ "stateMutability": "pure",
675
+ "type": "function"
676
+ },
677
+ {
678
+ "inputs": [
679
+ {
680
+ "internalType": "contract InstanceStore",
681
+ "name": "instanceStore",
682
+ "type": "address"
683
+ },
684
+ {
685
+ "internalType": "NftId",
686
+ "name": "bundleNftId",
687
+ "type": "uint96"
688
+ },
689
+ {
690
+ "internalType": "Amount",
691
+ "name": "amount",
692
+ "type": "uint96"
693
+ },
694
+ {
695
+ "internalType": "Amount",
696
+ "name": "feeAmount",
697
+ "type": "uint96"
698
+ }
699
+ ],
700
+ "name": "increaseBundleBalance",
701
+ "outputs": [],
702
+ "stateMutability": "nonpayable",
703
+ "type": "function"
704
+ },
705
+ {
706
+ "inputs": [
707
+ {
708
+ "internalType": "contract InstanceStore",
709
+ "name": "instanceStore",
710
+ "type": "address"
711
+ },
712
+ {
713
+ "internalType": "NftId",
714
+ "name": "distributionNftId",
715
+ "type": "uint96"
716
+ },
717
+ {
718
+ "internalType": "Amount",
719
+ "name": "amount",
720
+ "type": "uint96"
721
+ },
722
+ {
723
+ "internalType": "Amount",
724
+ "name": "feeAmount",
725
+ "type": "uint96"
726
+ }
727
+ ],
728
+ "name": "increaseDistributionBalance",
729
+ "outputs": [],
730
+ "stateMutability": "nonpayable",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [
735
+ {
736
+ "internalType": "contract InstanceStore",
737
+ "name": "instanceStore",
738
+ "type": "address"
739
+ },
740
+ {
741
+ "internalType": "NftId",
742
+ "name": "poolNftId",
743
+ "type": "uint96"
744
+ },
745
+ {
746
+ "internalType": "Amount",
747
+ "name": "amount",
748
+ "type": "uint96"
749
+ },
750
+ {
751
+ "internalType": "Amount",
752
+ "name": "feeAmount",
753
+ "type": "uint96"
754
+ }
755
+ ],
756
+ "name": "increasePoolBalance",
757
+ "outputs": [],
758
+ "stateMutability": "nonpayable",
759
+ "type": "function"
760
+ },
761
+ {
762
+ "inputs": [
763
+ {
764
+ "internalType": "contract InstanceStore",
765
+ "name": "instanceStore",
766
+ "type": "address"
767
+ },
768
+ {
769
+ "internalType": "NftId",
770
+ "name": "productNftId",
771
+ "type": "uint96"
772
+ },
773
+ {
774
+ "internalType": "Amount",
775
+ "name": "feeAmount",
776
+ "type": "uint96"
777
+ }
778
+ ],
779
+ "name": "increaseProductFees",
780
+ "outputs": [],
781
+ "stateMutability": "nonpayable",
782
+ "type": "function"
783
+ },
784
+ {
785
+ "inputs": [],
786
+ "name": "initializeERC165",
787
+ "outputs": [],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [
793
+ {
794
+ "internalType": "address",
795
+ "name": "initialOwner",
796
+ "type": "address"
797
+ },
798
+ {
799
+ "internalType": "address",
800
+ "name": "registryAddress",
801
+ "type": "address"
802
+ }
803
+ ],
804
+ "name": "initializeNftOwnable",
805
+ "outputs": [],
806
+ "stateMutability": "nonpayable",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [
811
+ {
812
+ "internalType": "address",
813
+ "name": "registryAddress",
814
+ "type": "address"
815
+ },
816
+ {
817
+ "internalType": "NftId",
818
+ "name": "parentNftId",
819
+ "type": "uint96"
820
+ },
821
+ {
822
+ "internalType": "ObjectType",
823
+ "name": "objectType",
824
+ "type": "uint8"
825
+ },
826
+ {
827
+ "internalType": "bool",
828
+ "name": "isInterceptor",
829
+ "type": "bool"
830
+ },
831
+ {
832
+ "internalType": "address",
833
+ "name": "initialOwner",
834
+ "type": "address"
835
+ },
836
+ {
837
+ "internalType": "bytes",
838
+ "name": "registryData",
839
+ "type": "bytes"
840
+ }
841
+ ],
842
+ "name": "initializeRegisterable",
843
+ "outputs": [],
844
+ "stateMutability": "nonpayable",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "address",
851
+ "name": "registryAddress",
852
+ "type": "address"
853
+ }
854
+ ],
855
+ "name": "initializeRegistryLinked",
856
+ "outputs": [],
857
+ "stateMutability": "nonpayable",
858
+ "type": "function"
859
+ },
860
+ {
861
+ "inputs": [
862
+ {
863
+ "internalType": "address",
864
+ "name": "registry",
865
+ "type": "address"
866
+ },
867
+ {
868
+ "internalType": "address",
869
+ "name": "authority",
870
+ "type": "address"
871
+ },
872
+ {
873
+ "internalType": "address",
874
+ "name": "initialOwner",
875
+ "type": "address"
876
+ }
877
+ ],
878
+ "name": "initializeService",
879
+ "outputs": [],
880
+ "stateMutability": "nonpayable",
881
+ "type": "function"
882
+ },
883
+ {
884
+ "inputs": [
885
+ {
886
+ "internalType": "address",
887
+ "name": "activatedBy",
888
+ "type": "address"
889
+ },
890
+ {
891
+ "internalType": "bytes",
892
+ "name": "data",
893
+ "type": "bytes"
894
+ }
895
+ ],
896
+ "name": "initializeVersionable",
897
+ "outputs": [],
898
+ "stateMutability": "nonpayable",
899
+ "type": "function"
900
+ },
901
+ {
902
+ "inputs": [],
903
+ "name": "isConsumingScheduledOp",
904
+ "outputs": [
905
+ {
906
+ "internalType": "bytes4",
907
+ "name": "",
908
+ "type": "bytes4"
909
+ }
910
+ ],
911
+ "stateMutability": "view",
912
+ "type": "function"
913
+ },
914
+ {
915
+ "inputs": [],
916
+ "name": "linkToRegisteredNftId",
917
+ "outputs": [
918
+ {
919
+ "internalType": "NftId",
920
+ "name": "nftId",
921
+ "type": "uint96"
922
+ }
923
+ ],
924
+ "stateMutability": "nonpayable",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [],
929
+ "name": "lock",
930
+ "outputs": [],
931
+ "stateMutability": "nonpayable",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [],
936
+ "name": "registerDistribution",
937
+ "outputs": [],
938
+ "stateMutability": "nonpayable",
939
+ "type": "function"
940
+ },
941
+ {
942
+ "inputs": [
943
+ {
944
+ "internalType": "bytes4",
945
+ "name": "interfaceId",
946
+ "type": "bytes4"
947
+ }
948
+ ],
949
+ "name": "registerInterface",
950
+ "outputs": [],
951
+ "stateMutability": "nonpayable",
952
+ "type": "function"
953
+ },
954
+ {
955
+ "inputs": [],
956
+ "name": "registerPool",
957
+ "outputs": [],
958
+ "stateMutability": "nonpayable",
959
+ "type": "function"
960
+ },
961
+ {
962
+ "inputs": [],
963
+ "name": "registerProduct",
964
+ "outputs": [],
965
+ "stateMutability": "nonpayable",
966
+ "type": "function"
967
+ },
968
+ {
969
+ "inputs": [
970
+ {
971
+ "internalType": "address",
972
+ "name": "newAuthority",
973
+ "type": "address"
974
+ }
975
+ ],
976
+ "name": "setAuthority",
977
+ "outputs": [],
978
+ "stateMutability": "nonpayable",
979
+ "type": "function"
980
+ },
981
+ {
982
+ "inputs": [
983
+ {
984
+ "components": [
985
+ {
986
+ "internalType": "UFixed",
987
+ "name": "fractionalFee",
988
+ "type": "uint256"
989
+ },
990
+ {
991
+ "internalType": "uint256",
992
+ "name": "fixedFee",
993
+ "type": "uint256"
994
+ }
995
+ ],
996
+ "internalType": "struct Fee",
997
+ "name": "distributionFee",
998
+ "type": "tuple"
999
+ },
1000
+ {
1001
+ "components": [
1002
+ {
1003
+ "internalType": "UFixed",
1004
+ "name": "fractionalFee",
1005
+ "type": "uint256"
1006
+ },
1007
+ {
1008
+ "internalType": "uint256",
1009
+ "name": "fixedFee",
1010
+ "type": "uint256"
1011
+ }
1012
+ ],
1013
+ "internalType": "struct Fee",
1014
+ "name": "minDistributionOwnerFee",
1015
+ "type": "tuple"
1016
+ }
1017
+ ],
1018
+ "name": "setDistributionFees",
1019
+ "outputs": [],
1020
+ "stateMutability": "nonpayable",
1021
+ "type": "function"
1022
+ },
1023
+ {
1024
+ "inputs": [
1025
+ {
1026
+ "components": [
1027
+ {
1028
+ "internalType": "UFixed",
1029
+ "name": "fractionalFee",
1030
+ "type": "uint256"
1031
+ },
1032
+ {
1033
+ "internalType": "uint256",
1034
+ "name": "fixedFee",
1035
+ "type": "uint256"
1036
+ }
1037
+ ],
1038
+ "internalType": "struct Fee",
1039
+ "name": "poolFee",
1040
+ "type": "tuple"
1041
+ },
1042
+ {
1043
+ "components": [
1044
+ {
1045
+ "internalType": "UFixed",
1046
+ "name": "fractionalFee",
1047
+ "type": "uint256"
1048
+ },
1049
+ {
1050
+ "internalType": "uint256",
1051
+ "name": "fixedFee",
1052
+ "type": "uint256"
1053
+ }
1054
+ ],
1055
+ "internalType": "struct Fee",
1056
+ "name": "stakingFee",
1057
+ "type": "tuple"
1058
+ },
1059
+ {
1060
+ "components": [
1061
+ {
1062
+ "internalType": "UFixed",
1063
+ "name": "fractionalFee",
1064
+ "type": "uint256"
1065
+ },
1066
+ {
1067
+ "internalType": "uint256",
1068
+ "name": "fixedFee",
1069
+ "type": "uint256"
1070
+ }
1071
+ ],
1072
+ "internalType": "struct Fee",
1073
+ "name": "performanceFee",
1074
+ "type": "tuple"
1075
+ }
1076
+ ],
1077
+ "name": "setPoolFees",
1078
+ "outputs": [],
1079
+ "stateMutability": "nonpayable",
1080
+ "type": "function"
1081
+ },
1082
+ {
1083
+ "inputs": [
1084
+ {
1085
+ "components": [
1086
+ {
1087
+ "internalType": "UFixed",
1088
+ "name": "fractionalFee",
1089
+ "type": "uint256"
1090
+ },
1091
+ {
1092
+ "internalType": "uint256",
1093
+ "name": "fixedFee",
1094
+ "type": "uint256"
1095
+ }
1096
+ ],
1097
+ "internalType": "struct Fee",
1098
+ "name": "productFee",
1099
+ "type": "tuple"
1100
+ },
1101
+ {
1102
+ "components": [
1103
+ {
1104
+ "internalType": "UFixed",
1105
+ "name": "fractionalFee",
1106
+ "type": "uint256"
1107
+ },
1108
+ {
1109
+ "internalType": "uint256",
1110
+ "name": "fixedFee",
1111
+ "type": "uint256"
1112
+ }
1113
+ ],
1114
+ "internalType": "struct Fee",
1115
+ "name": "processingFee",
1116
+ "type": "tuple"
1117
+ }
1118
+ ],
1119
+ "name": "setProductFees",
1120
+ "outputs": [],
1121
+ "stateMutability": "nonpayable",
1122
+ "type": "function"
1123
+ },
1124
+ {
1125
+ "inputs": [
1126
+ {
1127
+ "internalType": "address",
1128
+ "name": "newWallet",
1129
+ "type": "address"
1130
+ }
1131
+ ],
1132
+ "name": "setWallet",
1133
+ "outputs": [],
1134
+ "stateMutability": "nonpayable",
1135
+ "type": "function"
1136
+ },
1137
+ {
1138
+ "inputs": [
1139
+ {
1140
+ "internalType": "bytes4",
1141
+ "name": "interfaceId",
1142
+ "type": "bytes4"
1143
+ }
1144
+ ],
1145
+ "name": "supportsInterface",
1146
+ "outputs": [
1147
+ {
1148
+ "internalType": "bool",
1149
+ "name": "",
1150
+ "type": "bool"
1151
+ }
1152
+ ],
1153
+ "stateMutability": "view",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [],
1158
+ "name": "unlock",
1159
+ "outputs": [],
1160
+ "stateMutability": "nonpayable",
1161
+ "type": "function"
1162
+ },
1163
+ {
1164
+ "inputs": [
1165
+ {
1166
+ "internalType": "bytes",
1167
+ "name": "data",
1168
+ "type": "bytes"
1169
+ }
1170
+ ],
1171
+ "name": "upgradeVersionable",
1172
+ "outputs": [],
1173
+ "stateMutability": "nonpayable",
1174
+ "type": "function"
1175
+ }
1176
+ ],
1177
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615a4b80620000e66000396000f3fe60806040523480156200001157600080fd5b5060043610620002615760003560e01c806374933c2f1162000149578063be495be511620000c7578063deaa59df1162000086578063deaa59df146200055a578063dfd92f8a1462000571578063e618053f14620002e3578063f7c34ee0146200057b578063f83d08ba14620002fa57600080fd5b8063be495be5146200050f578063bf7e214f1462000519578063c142a3031462000539578063d56cd3d5146200036d578063d7740ee1146200055057600080fd5b80638e32e97911620001145780638e32e97914620004ad5780638fb3603714620004c4578063a69df4b514620002fa578063ada9652e14620004e8578063b68d180914620004ff57600080fd5b806374933c2f146200036d5780637a9e5e4b146200048c578063893d20e814620004a357806389fad8a214620002e357600080fd5b8063329d6e7411620001e3578063644c45e011620001a2578063644c45e0146200041057806367438c501462000430578063675393bf146200044757806367ba1c10146200045e5780636e172807146200047557600080fd5b8063329d6e74146200039b57806336fc697e14620003b257806337a897ee14620003bc57806349bb9e4b14620003d35780635ab1bd5314620003ea57600080fd5b8063138461e01162000230578063138461e014620002fc5780631eff4b22146200031f578063214cdb80146200035657806325e451d3146200036d57806327bb7a33146200038457600080fd5b806301ffc9a714620002665780630d8e6e2c14620002ab5780630fec111c14620002ca57806311a1467714620002e3575b600080fd5b620002966200027736600462004288565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b620002b562000592565b60405162ffffff9091168152602001620002a2565b620002d46200061f565b604051620002a2919062004308565b620002fa620002f4366004620043c2565b620007bf565b005b62000306620007d5565b6040516001600160601b039091168152602001620002a2565b620003477f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001620002a2565b620002fa6200036736600462004288565b620007e2565b620002fa6200037e366004620043c2565b62000811565b620002fa62000395366004620045d6565b62000821565b620002fa620003ac3660046200467c565b620008cc565b620002fa62000a23565b620002fa620003cd366004620046e7565b62000a6b565b620002fa620003e436600462004718565b62000db7565b6001546001600160a01b03165b6040516001600160a01b039091168152602001620002a2565b600080516020620059b6833981519152546001600160601b031662000306565b620002fa6200044136600462004763565b62000eb2565b620002fa62000458366004620047b5565b62000f36565b620002fa6200046f366004620046e7565b62001053565b620002fa6200048636600462004763565b620013f1565b620002fa6200049d366004620047b5565b62001443565b620003f7620014e5565b620002fa620004be366004620047d5565b62001624565b620004ce62001873565b6040516001600160e01b03199091168152602001620002a2565b62000347600080516020620059b683398151915281565b60405160648152602001620002a2565b620002fa620018b0565b600080516020620059d6833981519152546001600160a01b0316620003f7565b620002fa6200054a3660046200481c565b620019fc565b620002fa62001dcc565b620002fa6200056b366004620047b5565b62001ff0565b620002fa620022b3565b620002fa6200058c36600462004869565b62002491565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620005f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061a9190620048a7565b905090565b620006296200411b565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015620006a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006c99190620048e0565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000713620014e5565b6001600160a01b03168152602001826001018054620007329062004900565b80601f0160208091040260200160405190810160405280929190818152602001828054620007609062004900565b8015620007b15780601f106200078557610100808354040283529160200191620007b1565b820191906000526020600020905b8154815290600101906020018083116200079357829003601f168201915b505050505081525091505090565b620007cf60008585858562002510565b50505050565b60006200061a306200293f565b620007ec62002b4e565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b620007cf60018585858562002510565b6200082b62002b4e565b62000837828762002491565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301620008c2838262004986565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c620008f062000592565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562000931573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000957919062004a75565b600080516020620059f68339815191528054600160401b900460ff16806200098c575080546001600160401b03808416911610155b15620009ab5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620009d78362002b87565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b62000a2d62002b4e565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008062000a7a607862002b91565b925050915060008062000af2836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ac5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aeb919062004a95565b8562002d3e565b91509150600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360800151896040518363ffffffff1660e01b815260040162000b3792919062004ab5565b602060405180830381865af415801562000b55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b7b919062004ae9565b62000bc45762000bb9836040518060400160405280600f81526020016e446973747269627574696f6e46656560881b81525084608001518a62002e47565b506080810186905260015b60a082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162000c0291908a9060040162004ab5565b602060405180830381865af415801562000c20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c46919062004ae9565b62000c9d5762000c92836040518060400160405280601781526020017f4d696e446973747269627574696f6e4f776e65724665650000000000000000008152508460a001518962002e47565b5060a0810185905260015b801562000dae57836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ce3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d09919062004a95565b6001600160a01b031663b5b3d9f9848460ff6040518463ffffffff1660e01b815260040162000d3b9392919062004be8565b600060405180830381600087803b15801562000d5657600080fd5b505af115801562000d6b573d6000803e3d6000fd5b50506040516001600160601b03881681527f37bea7afe3960b639e98d9161b22f53a172300df8ec6ee71fd0a5321dcecd59b925060200190505b60405180910390a15b50505050505050565b600080516020620059f68339815191528054600160401b810460ff1615906001600160401b031660008115801562000dec5750825b90506000826001600160401b0316600114801562000e095750303b155b90508115801562000e18575080155b1562000e375760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000e6257845460ff60401b1916600160401b1785555b62000e6e878762002e9c565b831562000dae57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000da5565b62000f316001848473__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000f04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f2a9190620048e0565b8562002510565b505050565b62000f4062002b4e565b806001600160a01b03163b60000362000f7c5760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562000ff9575060408051601f3d908101601f1916820190925262000ff69181019062004ae9565b60015b620010235760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f73565b806200104e5760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000f73565b505b50565b60008062001062606e62002b91565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ce919062004a95565b6040516302d764c760e21b81526001600160601b03851660048201526001600160a01b039190911690630b5d931c9060240161020060405180830381865afa1580156200111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001145919062004c4d565b9050600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360400151886040518363ffffffff1660e01b81526004016200118892919062004ab5565b602060405180830381865af4158015620011a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011cc919062004ae9565b620012105762001205846040518060400160405280600a81526020016950726f6475637446656560b01b81525084604001518962002e47565b506040810185905260015b606082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc0916200124e9190899060040162004ab5565b602060405180830381865af41580156200126c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001292919062004ae9565b620012d957620012ce846040518060400160405280600d81526020016c50726f63657373696e6746656560981b81525084606001518862002e47565b506060810184905260015b8015620013e957826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200131f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001345919062004a95565b6001600160a01b031663b5b3d9f9858460ff6040518463ffffffff1660e01b8152600401620013779392919062004be8565b600060405180830381600087803b1580156200139257600080fd5b505af1158015620013a7573d6000803e3d6000fd5b50506040516001600160601b03871681527f385da3b17e82d72dd7e4cbe895c7d7d3fbb4c8768e0866dd69f44581a0ded2bc9250602001905060405180910390a15b505050505050565b62000f316000848473__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000f04573d6000803e3d6000fd5b3362001465600080516020620059d6833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620014a25760405162d1953b60e31b81526001600160a01b038216600482015260240162000f73565b816001600160a01b03163b600003620014da576040516361798f2f60e11b81526001600160a01b038316600482015260240162000f73565b6200104e826200302a565b600080600080516020620059b683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001557573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200157d919062004ae9565b156200160e576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015620015e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001608919062004a95565b91505090565b54600160601b90046001600160a01b0316919050565b6200162e62002b4e565b620016b383846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016989190620048e0565b603c6000856040518060200160405280600081525062000821565b6001600160a01b03821615620016d457620016ce826200308c565b6200184f565b6000620016e96001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156200174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001770919062004d3c565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015620017b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017dc919062004a95565b90506200184d816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001821573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001847919062004a95565b6200308c565b505b62001861634a531f3360e01b620007e2565b62000f3163b68d180960e01b620007e2565b600080516020620059d6833981519152805460009190600160a01b900460ff16620018a057600062001608565b638fb3603760e01b91505090565b565b604080516002808252606082018352339260009291906020830190803683375050604080516002808252606082019092529293506000929150602082015b6060815260200190600190039081620018ee57905050905062001910620030a1565b8260008151811062001926576200192662004d5c565b6001600160401b039092166020928302919091019091015262001950635b5a095d60e11b6200311c565b8160008151811062001966576200196662004d5c565b60200260200101819052506200197b62003173565b8260018151811062001991576200199162004d5c565b6001600160401b0390921660209283029190910190910152620019bb637c07103960e11b6200311c565b81600181518110620019d157620019d162004d5c565b6020026020010181905250620013e983620019ea607890565b620019f4620030a1565b8585620031b0565b60008062001a0b608c62002b91565b925050915060008062001a56836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ac5573d6000803e3d6000fd5b91509150600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360c001518a6040518363ffffffff1660e01b815260040162001a9b92919062004ab5565b602060405180830381865af415801562001ab9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001adf919062004ae9565b62001b205762001b158360405180604001604052806007815260200166506f6f6c46656560c81b8152508460c001518b62002e47565b5060c0810187905260015b60e082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162001b5e91908b9060040162004ab5565b602060405180830381865af415801562001b7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ba2919062004ae9565b62001be65762001bdb836040518060400160405280600a8152602001695374616b696e6746656560b01b8152508460e001518a62002e47565b5060e0810186905260015b61010082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162001c2591908a9060040162004ab5565b602060405180830381865af415801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c69919062004ae9565b62001cb35762001ca7836040518060400160405280600e81526020016d506572666f726d616e636546656560901b8152508461010001518962002e47565b50610100810185905260015b8015620008c257836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cf9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d1f919062004a95565b6001600160a01b031663b5b3d9f9848460ff6040518463ffffffff1660e01b815260040162001d519392919062004be8565b600060405180830381600087803b15801562001d6c57600080fd5b505af115801562001d81573d6000803e3d6000fd5b50506040516001600160601b03881681527f7a446b749117c015e0932e31190fc133582c9c5151e31209479cc9d21941f0359250602001905060405180910390a15050505050505050565b604080516002808252606082018352339260009291906020830190803683375050604080516002808252606082019092529293506000929150602082015b606081526020019060019003908162001e0a57905050905062001e2c62003695565b8260008151811062001e425762001e4262004d5c565b6001600160401b039092166020928302919091019091015262001e6c634133c3b360e11b6200311c565b8160008151811062001e825762001e8262004d5c565b602002602001018190525062001e97620036d0565b8260018151811062001ead5762001ead62004d5c565b6001600160401b039092166020928302919091019091015262001ed7639e2177a760e01b6200311c565b8160018151811062001eed5762001eed62004d5c565b602002602001018190525060008062001f1b8562001f09608c90565b62001f1362003695565b8787620031b0565b9250925050816001600160a01b0316637892982382876001600160a01b03166385ba83446040518163ffffffff1660e01b81526004016101c060405180830381865afa15801562001f70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f96919062004d72565b6040518363ffffffff1660e01b815260040162001fb592919062004e4c565b600060405180830381600087803b15801562001fd057600080fd5b505af115801562001fe5573d6000803e3d6000fd5b505050505050505050565b60008062001fff606462002b91565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002045573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200206b919062004a95565b60405163f0ea17c360e01b81526001600160601b03851660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015620020bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620020e5919081019062004f78565b60808101519091506001600160a01b038516620021155760405163cda6051f60e01b815260040160405180910390fd5b6001600160a01b0381166200213d5760405163149cf9c560e21b815260040160405180910390fd5b806001600160a01b0316856001600160a01b031603620021705760405163e5bf1f2160e01b815260040160405180910390fd5b8482608001906001600160a01b031690816001600160a01b031681525050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021f3919062004a95565b6001600160a01b03166303c099ac858460ff6040518463ffffffff1660e01b81526004016200222593929190620050db565b600060405180830381600087803b1580156200224057600080fd5b505af115801562002255573d6000803e3d6000fd5b5050604080516001600160601b03881681526001600160a01b03858116602083015289168183015290517ff2d80db4913d045b4cad17a65741b11f822efa2652c369fcb3e44324260773c39350908190036060019150a15050505050565b6040805160018082528183019092523391600091906020808301908036833750506040805160018082528183019092529293506000929150602082015b6060815260200190600190039081620022f0579050509050620023126200370d565b8260008151811062002328576200232862004d5c565b6001600160401b039092166020928302919091019091015262002352635b5a095d60e11b6200311c565b8160008151811062002368576200236862004d5c565b60200260200101819052506000806000620023988662002386606e90565b620023906200370d565b8888620031b0565b9250925092506000866001600160a01b031663c108bd4c6040518163ffffffff1660e01b815260040161020060405180830381865afa158015620023e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002406919062004c4d565b60405163a6a67b1f60e01b81529091506001600160a01b0384169063a6a67b1f9062002439908590859060040162005112565b600060405180830381600087803b1580156200245457600080fd5b505af115801562002469573d6000803e3d6000fd5b505050506200247f848483600001518562003749565b62000dae848483602001518562003749565b6200249b62002b4e565b620024a68162000f36565b620024b062000a23565b6001600160a01b038216620024d85760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020620059b683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006200251e83836200388c565b9050851562002737576040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002580573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025a6919062004ae9565b156200262c57604051639f8151e560e01b81526001600160601b038086166004830152821660248201526001600160a01b03861690639f8151e5906044016020604051808303816000875af115801562002604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200262a9190620048e0565b505b6040516330b8415f60e01b81526001600160601b038316600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026ab919062004ae9565b15620027315760405163e80c61ed60e01b81526001600160601b038086166004830152831660248201526001600160a01b0386169063e80c61ed906044016020604051808303816000875af115801562002709573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200272f9190620048e0565b505b620013e9565b6040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002790573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027b6919062004ae9565b156200283c5760405163b0628dc360e01b81526001600160601b038086166004830152821660248201526001600160a01b0386169063b0628dc3906044016020604051808303816000875af115801562002814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200283a9190620048e0565b505b6040516330b8415f60e01b81526001600160601b038316600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002895573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028bb919062004ae9565b15620013e9576040516314cc21b560e21b81526001600160601b038086166004830152831660248201526001600160a01b0386169063533086d4906044016020604051808303816000875af115801562002919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dae9190620048e0565b600080600080516020620059b683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620029b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029d7919062004ae9565b1562002a055780546040516301ab8b6760e21b81526001600160601b03909116600482015260240162000f73565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801562002a5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a80919062004ae9565b62002aaa5760405163b9304b0d60e01b81526001600160a01b038416600482015260240162000f73565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa15801562002aff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b259190620048e0565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020620059f683398151915254600160401b900460ff16620018ae57604051631afcd79f60e31b815260040160405180910390fd5b6200026162002b4e565b600062002b9d6200411b565b600062002bb26001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562002bf9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c1f9190620048e0565b925062002c2d83856200391d565b8092508193505050806001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002c74573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c9a919062004a95565b608083015160405163a166aa8960e01b81526001600160a01b03918216600482015291169063a166aa8990602401602060405180830381865afa15801562002ce6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d0c919062004ae9565b1562002d3757604051637d71120960e11b81526001600160601b038416600482015260240162000f73565b9193909250565b600062002d4a62004159565b60405163f0ea17c360e01b81526001600160601b03841660048201526001600160a01b0385169063f0ea17c390602401600060405180830381865afa15801562002d98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002dc2919081019062004f78565b602001516040516302d764c760e21b81526001600160601b03821660048201529092506001600160a01b03851690630b5d931c9060240161020060405180830381865afa15801562002e18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e3e919062004c4d565b90509250929050565b81516020808401518351918401516040517f52d1fb99d890f3b2be95c262d870f89c22614249751b9fe6124d341bedbd70db9462002e8e948a948a94929390929062005132565b60405180910390a150505050565b600080516020620059f68339815191528054600160401b810460ff1615906001600160401b031660008115801562002ed15750825b90506000826001600160401b0316600114801562002eee5750303b155b90508115801562002efd575080155b1562002f1c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562002f4757845460ff60401b1916600160401b1785555b6000808780602001905181019062002f6091906200517b565b909250905062002f738260008b62001624565b62002f85602862003adc565b62003adc565b600280546001600160a01b0319166001600160a01b039290921691909117905562002fb262002f7f604690565b600380546001600160a01b0319166001600160a01b039290921691909117905562002fe46354b2763760e01b620007e2565b5050831562000dae57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000da5565b600080516020620059d683398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6200309662002b4e565b620010508162003bf8565b6040516368aebf7b60e01b81526002600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af4158015620030f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061a919062004a75565b60408051600180825281830190925260609160208083019080368337019050509050818160008151811062003155576200315562004d5c565b6001600160e01b031990921660209283029190910190910152919050565b6040516368aebf7b60e01b81526108fc600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b600080600080600080620031c68b8b8b62003c0d565b60025460405163d943342d60e01b815293965091945092506001600160a01b03169063d943342d90620032229085908e9086906004016001600160a01b03938416815260ff929092166020830152909116604082015260600190565b6000604051808303816000875af115801562003242573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200326c9190810190620051af565b600001519350816001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d99190620048e0565b50826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200333f919062004a95565b9550826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033a6919062004a95565b94506000826001600160a01b03166390edbd356040518163ffffffff1660e01b8152600401600060405180830381865afa158015620033e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003413919081019062004f78565b9050806040015160405162003428906200427a565b6001600160a01b039091168152602001604051809103906000f08015801562003455573d6000803e3d6000fd5b5081606001906001600160a01b031690816001600160a01b031681525050856001600160a01b0316634846003a846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620034c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034e79190620048e0565b836040518363ffffffff1660e01b81526004016200350792919062005295565b600060405180830381600087803b1580156200352257600080fd5b505af115801562003537573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031663dd38b49e856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200359e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035c49190620048e0565b8e866001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562003604573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200362e9190810190620052b9565b8c8e6040518663ffffffff1660e01b81526004016200365295949392919062005337565b600060405180830381600087803b1580156200366d57600080fd5b505af115801562003682573d6000803e3d6000fd5b5050505050505050955095509592505050565b6040516368aebf7b60e01b815260048082015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b6040516368aebf7b60e01b815261096a600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b6040516368aebf7b60e01b81526005600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b604051630a4d29dd60e31b81526001600160601b038316600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015620037a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037c8919062004ae9565b620007cf5760405163f0ea17c360e01b81526001600160601b03831660048201526000906001600160a01b0386169063f0ea17c390602401600060405180830381865afa1580156200381e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003848919081019062004f78565b6001600160601b038316602082015260405162f0266b60e21b81529091506001600160a01b038516906303c099ac9062001fb5908690859060ff90600401620050db565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015620038f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039169190620048e0565b9392505050565b620039276200411b565b6000806200393d6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03871660048201529091506001600160a01b0382169063a48f42e090602401600060405180830381865afa1580156200398e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620039b89190810190620051af565b925060ff841660641462003a1a57604083015160ff85811691161462003a1457604080840151905163b83d92cb60e01b81526001600160601b038716600482015260ff8087166024830152909116604482015260640162000f73565b62003ac3565b62003a37836040015162003a2c606e90565b60ff90811691161490565b8062003a50575062003a50836040015162003a2c608c90565b8062003a69575062003a69836040015162003a2c607890565b8062003a82575062003a82836040015162003a2c608290565b62003ac357604080840151905163b83d92cb60e01b81526001600160601b038716600482015260ff8087166024830152909116604482015260640162000f73565b62003ad2836020015162004082565b9150509250929050565b600062003af16001546001600160a01b031690565b6001600160a01b031663d39e60438362003b0a62000592565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af415801562003b60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b86919062004d3c565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801562003bcc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bf2919062004a95565b92915050565b62003c0262002b4e565b62001050816200302a565b6040516301ffc9a760e01b8152639a29895960e01b6004820152600090849082906001600160a01b038316906301ffc9a790602401602060405180830381865afa15801562003c60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c86919062004ae9565b62003cb0576040516359bff0e360e11b81526001600160a01b038716600482015260240162000f73565b6000826001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562003cf1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003d1b9190810190620051af565b905062003d3381604001518760ff9081169116141590565b1562003d75576040808201519051634a2e948760e11b81526001600160a01b038916600482015260ff8089166024830152909116604482015260640162000f73565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038981166004830152919091169063d272ac1e90602401602060405180830381865afa15801562003dca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003df09190620048e0565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562003e4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e70919062004ae9565b1562003e9b576040516322e6526160e11b81526001600160a01b038816600482015260240162000f73565b62003eaa816020015162004082565b93508060a0015191506000846001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ef4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f1a919062004a95565b604051631517388760e21b81526001600160401b03881660048201526001600160a01b03919091169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801562003f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003fac919062004a75565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa15801562003fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004025919062005413565b5090508062004077576020820151604051636af540d960e01b81526001600160601b0390911660048201526001600160401b03871660248201526001600160a01b038416604482015260640162000f73565b505093509350939050565b6000620040976001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015620040e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041119190810190620051af565b6080015192915050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b0316815260200160006001600160601b03168152602001620041a3604051806040016040528060008152602001600081525090565b8152602001620041c6604051806040016040528060008152602001600081525090565b8152602001620041e9604051806040016040528060008152602001600081525090565b81526020016200420c604051806040016040528060008152602001600081525090565b81526020016200422f604051806040016040528060008152602001600081525090565b815260200162004252604051806040016040528060008152602001600081525090565b815260200162004275604051806040016040528060008152602001600081525090565b905290565b610566806200545083390190565b6000602082840312156200429b57600080fd5b81356001600160e01b0319811681146200391657600080fd5b60005b83811015620042d1578181015183820152602001620042b7565b50506000910152565b60008151808452620042f4816020860160208601620042b4565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516200437260c08401826001600160a01b03169052565b5060c083015160e0808401526200438e610100840182620042da565b949350505050565b6001600160a01b03811681146200105057600080fd5b6001600160601b03811681146200105057600080fd5b60008060008060808587031215620043d957600080fd5b8435620043e68162004396565b93506020850135620043f881620043ac565b925060408501356200440a81620043ac565b915060608501356200441c81620043ac565b939692955090935050565b60ff811681146200105057600080fd5b80151581146200105057600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171562004481576200448162004446565b60405290565b60405161012081016001600160401b038111828210171562004481576200448162004446565b60405161016081016001600160401b038111828210171562004481576200448162004446565b60405160c081016001600160401b038111828210171562004481576200448162004446565b60405160e081016001600160401b038111828210171562004481576200448162004446565b604051601f8201601f191681016001600160401b038111828210171562004548576200454862004446565b604052919050565b60006001600160401b038211156200456c576200456c62004446565b50601f01601f191660200190565b600082601f8301126200458c57600080fd5b8135620045a36200459d8262004550565b6200451d565b818152846020838601011115620045b957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215620045f057600080fd5b8635620045fd8162004396565b955060208701356200460f81620043ac565b94506040870135620046218162004427565b93506060870135620046338162004437565b92506080870135620046458162004396565b915060a08701356001600160401b038111156200466157600080fd5b6200466f89828a016200457a565b9150509295509295509295565b6000602082840312156200468f57600080fd5b81356001600160401b03811115620046a657600080fd5b6200438e848285016200457a565b600060408284031215620046c757600080fd5b620046d16200445c565b9050813581526020820135602082015292915050565b60008060808385031215620046fb57600080fd5b620047078484620046b4565b915062002e3e8460408501620046b4565b600080604083850312156200472c57600080fd5b8235620047398162004396565b915060208301356001600160401b038111156200475557600080fd5b62003ad2858286016200457a565b6000806000606084860312156200477957600080fd5b8335620047868162004396565b925060208401356200479881620043ac565b91506040840135620047aa81620043ac565b809150509250925092565b600060208284031215620047c857600080fd5b8135620039168162004396565b600080600060608486031215620047eb57600080fd5b8335620047f88162004396565b925060208401356200480a8162004396565b91506040840135620047aa8162004396565b600080600060c084860312156200483257600080fd5b6200483e8585620046b4565b92506200484f8560408601620046b4565b9150620048608560808601620046b4565b90509250925092565b600080604083850312156200487d57600080fd5b82356200488a8162004396565b915060208301356200489c8162004396565b809150509250929050565b600060208284031215620048ba57600080fd5b815162ffffff811681146200391657600080fd5b8051620048db81620043ac565b919050565b600060208284031215620048f357600080fd5b81516200391681620043ac565b600181811c908216806200491557607f821691505b6020821081036200493657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000f3157600081815260208120601f850160051c81016020861015620049655750805b601f850160051c820191505b81811015620013e95782815560010162004971565b81516001600160401b03811115620049a257620049a262004446565b620049ba81620049b3845462004900565b846200493c565b602080601f831160018114620049f25760008415620049d95750858301515b600019600386901b1c1916600185901b178555620013e9565b600085815260208120601f198616915b8281101562004a235788860151825594840194600190910190840162004a02565b508582101562004a425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03811681146200105057600080fd5b8051620048db8162004a52565b60006020828403121562004a8857600080fd5b8151620039168162004a52565b60006020828403121562004aa857600080fd5b8151620039168162004396565b82518152602080840151818301528251604083015282015160608201526080810162003916565b8051620048db8162004437565b60006020828403121562004afc57600080fd5b8151620039168162004437565b6001600160601b038151168252602081015162004b3160208401826001600160601b03169052565b50604081015162004b4f604084018280518252602090810151910152565b50606081015180516080840152602081015160a0840152506080810151805160c0840152602081015160e08401525060a081015161010062004b9d8185018380518252602090810151910152565b60c0830151805161014086015260209081015161016086015260e084015180516101808701528101516101a086015292015180516101c0850152909101516101e09092019190915250565b6001600160601b0384168152610240810162004c08602083018562004b09565b60ff8316610220830152949350505050565b60006040828403121562004c2d57600080fd5b62004c376200445c565b9050815181526020820151602082015292915050565b6000610200828403121562004c6157600080fd5b62004c6b62004487565b62004c7683620048ce565b815262004c8660208401620048ce565b602082015262004c9a846040850162004c1a565b604082015262004cae846080850162004c1a565b606082015262004cc28460c0850162004c1a565b608082015261010062004cd88582860162004c1a565b60a083015262004ced85610140860162004c1a565b60c083015262004d0285610180860162004c1a565b60e083015262004d17856101c0860162004c1a565b908201529392505050565b8051620048db8162004396565b8051620048db8162004427565b60006020828403121562004d4f57600080fd5b8151620039168162004427565b634e487b7160e01b600052603260045260246000fd5b60006101c0828403121562004d8657600080fd5b62004d90620044ad565b62004d9b83620048ce565b815262004dab6020840162004a68565b602082015262004dbe60408401620048ce565b604082015262004dd16060840162004adc565b606082015262004de46080840162004adc565b608082015262004df760a0840162004adc565b60a082015260c083015160c082015260e083015160e082015261010062004e218582860162004c1a565b9082015261014062004e368585830162004c1a565b61012083015262004d1785610180860162004c1a565b6001600160601b03838116825282511660208201526101e0810160208301516001600160401b03811660408401525060408301516001600160601b0381166060840152506060830151801515608084015250608083015180151560a08401525060a083015180151560c08401525060c083015160e083015260e083015161010081818501528085015191505061012062004ef28185018380518252602090810151910152565b8401518051610160850152602081015161018085015290505061014083015180516101a084015260208101516101c0840152509392505050565b600082601f83011262004f3e57600080fd5b815162004f4f6200459d8262004550565b81815284602083860101111562004f6557600080fd5b6200438e826020830160208701620042b4565b60006020828403121562004f8b57600080fd5b81516001600160401b038082111562004fa357600080fd5b9083019060c0828603121562004fb857600080fd5b62004fc2620044d3565b82518281111562004fd257600080fd5b62004fe08782860162004f2c565b82525062004ff160208401620048ce565b6020820152620050046040840162004d22565b6040820152620050176060840162004d22565b60608201526200502a6080840162004d22565b608082015260a0830151828111156200504257600080fd5b620050508782860162004f2c565b60a08301525095945050505050565b6000815160c084526200507660c0850182620042da565b90506001600160601b036020840151166020850152604083015160018060a01b038082166040870152806060860151166060870152806080860151166080870152505060a083015184820360a0860152620050d28282620042da565b95945050505050565b6001600160601b0384168152606060208201526000620050ff60608301856200505f565b905060ff83166040830152949350505050565b6001600160601b0383168152610220810162003916602083018462004b09565b6001600160601b038716815260c0602082015260006200515660c0830188620042da565b90508560408301528460608301528360808301528260a0830152979650505050505050565b600080604083850312156200518f57600080fd5b82516200519c8162004396565b60208401519092506200489c8162004396565b600060208284031215620051c257600080fd5b81516001600160401b0380821115620051da57600080fd5b9083019060e08286031215620051ef57600080fd5b620051f9620044f8565b6200520483620048ce565b81526200521460208401620048ce565b6020820152620052276040840162004d2f565b60408201526200523a6060840162004adc565b60608201526200524d6080840162004d22565b60808201526200526060a0840162004d22565b60a082015260c0830151828111156200527857600080fd5b620052868782860162004f2c565b60c08301525095945050505050565b6001600160601b03831681526040602082015260006200438e60408301846200505f565b600060208284031215620052cc57600080fd5b81516001600160401b03811115620052e357600080fd5b6200438e8482850162004f2c565b600081518084526020808501945080840160005b838110156200532c5781516001600160401b03168752958201959082019060010162005305565b509495945050505050565b6001600160601b03861681526000602060018060a01b0387168184015260a060408401526200536a60a0840187620042da565b8381036060850152855180825282820190600581901b830184018489016000805b84811015620053ec57868403601f19018652825180518086529089019089860190845b81811015620053d65783516001600160e01b0319168352928b0192918b0191600101620053ae565b505096890196945050918701916001016200538b565b5050508681036080880152620054038189620052f1565b9c9b505050505050505050505050565b600080604083850312156200542757600080fd5b8251620054348162004437565b602084015190925063ffffffff811681146200489c57600080fdfe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea26469706673582212209807ba37f960191da7fc92045bb7e0c4e727926f77e78d1cce4b3e3395aa9c6864736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207a1287ec1ea9927ecce1b3bcf06a1e9a808b9ce8db78aa4afe73400389a8a06364736f6c63430008140033",
1178
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620002615760003560e01c806374933c2f1162000149578063be495be511620000c7578063deaa59df1162000086578063deaa59df146200055a578063dfd92f8a1462000571578063e618053f14620002e3578063f7c34ee0146200057b578063f83d08ba14620002fa57600080fd5b8063be495be5146200050f578063bf7e214f1462000519578063c142a3031462000539578063d56cd3d5146200036d578063d7740ee1146200055057600080fd5b80638e32e97911620001145780638e32e97914620004ad5780638fb3603714620004c4578063a69df4b514620002fa578063ada9652e14620004e8578063b68d180914620004ff57600080fd5b806374933c2f146200036d5780637a9e5e4b146200048c578063893d20e814620004a357806389fad8a214620002e357600080fd5b8063329d6e7411620001e3578063644c45e011620001a2578063644c45e0146200041057806367438c501462000430578063675393bf146200044757806367ba1c10146200045e5780636e172807146200047557600080fd5b8063329d6e74146200039b57806336fc697e14620003b257806337a897ee14620003bc57806349bb9e4b14620003d35780635ab1bd5314620003ea57600080fd5b8063138461e01162000230578063138461e014620002fc5780631eff4b22146200031f578063214cdb80146200035657806325e451d3146200036d57806327bb7a33146200038457600080fd5b806301ffc9a714620002665780630d8e6e2c14620002ab5780630fec111c14620002ca57806311a1467714620002e3575b600080fd5b620002966200027736600462004288565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b620002b562000592565b60405162ffffff9091168152602001620002a2565b620002d46200061f565b604051620002a2919062004308565b620002fa620002f4366004620043c2565b620007bf565b005b62000306620007d5565b6040516001600160601b039091168152602001620002a2565b620003477f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001620002a2565b620002fa6200036736600462004288565b620007e2565b620002fa6200037e366004620043c2565b62000811565b620002fa62000395366004620045d6565b62000821565b620002fa620003ac3660046200467c565b620008cc565b620002fa62000a23565b620002fa620003cd366004620046e7565b62000a6b565b620002fa620003e436600462004718565b62000db7565b6001546001600160a01b03165b6040516001600160a01b039091168152602001620002a2565b600080516020620059b6833981519152546001600160601b031662000306565b620002fa6200044136600462004763565b62000eb2565b620002fa62000458366004620047b5565b62000f36565b620002fa6200046f366004620046e7565b62001053565b620002fa6200048636600462004763565b620013f1565b620002fa6200049d366004620047b5565b62001443565b620003f7620014e5565b620002fa620004be366004620047d5565b62001624565b620004ce62001873565b6040516001600160e01b03199091168152602001620002a2565b62000347600080516020620059b683398151915281565b60405160648152602001620002a2565b620002fa620018b0565b600080516020620059d6833981519152546001600160a01b0316620003f7565b620002fa6200054a3660046200481c565b620019fc565b620002fa62001dcc565b620002fa6200056b366004620047b5565b62001ff0565b620002fa620022b3565b620002fa6200058c36600462004869565b62002491565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620005f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061a9190620048a7565b905090565b620006296200411b565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015620006a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006c99190620048e0565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00162000713620014e5565b6001600160a01b03168152602001826001018054620007329062004900565b80601f0160208091040260200160405190810160405280929190818152602001828054620007609062004900565b8015620007b15780601f106200078557610100808354040283529160200191620007b1565b820191906000526020600020905b8154815290600101906020018083116200079357829003601f168201915b505050505081525091505090565b620007cf60008585858562002510565b50505050565b60006200061a306200293f565b620007ec62002b4e565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b620007cf60018585858562002510565b6200082b62002b4e565b62000837828762002491565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301620008c2838262004986565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c620008f062000592565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562000931573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000957919062004a75565b600080516020620059f68339815191528054600160401b900460ff16806200098c575080546001600160401b03808416911610155b15620009ab5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155620009d78362002b87565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b62000a2d62002b4e565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008062000a7a607862002b91565b925050915060008062000af2836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ac5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aeb919062004a95565b8562002d3e565b91509150600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360800151896040518363ffffffff1660e01b815260040162000b3792919062004ab5565b602060405180830381865af415801562000b55573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b7b919062004ae9565b62000bc45762000bb9836040518060400160405280600f81526020016e446973747269627574696f6e46656560881b81525084608001518a62002e47565b506080810186905260015b60a082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162000c0291908a9060040162004ab5565b602060405180830381865af415801562000c20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c46919062004ae9565b62000c9d5762000c92836040518060400160405280601781526020017f4d696e446973747269627574696f6e4f776e65724665650000000000000000008152508460a001518962002e47565b5060a0810185905260015b801562000dae57836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ce3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d09919062004a95565b6001600160a01b031663b5b3d9f9848460ff6040518463ffffffff1660e01b815260040162000d3b9392919062004be8565b600060405180830381600087803b15801562000d5657600080fd5b505af115801562000d6b573d6000803e3d6000fd5b50506040516001600160601b03881681527f37bea7afe3960b639e98d9161b22f53a172300df8ec6ee71fd0a5321dcecd59b925060200190505b60405180910390a15b50505050505050565b600080516020620059f68339815191528054600160401b810460ff1615906001600160401b031660008115801562000dec5750825b90506000826001600160401b0316600114801562000e095750303b155b90508115801562000e18575080155b1562000e375760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000e6257845460ff60401b1916600160401b1785555b62000e6e878762002e9c565b831562000dae57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000da5565b62000f316001848473__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000f04573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f2a9190620048e0565b8562002510565b505050565b62000f4062002b4e565b806001600160a01b03163b60000362000f7c5760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562000ff9575060408051601f3d908101601f1916820190925262000ff69181019062004ae9565b60015b620010235760405163fdeac91f60e01b81526001600160a01b038216600482015260240162000f73565b806200104e5760405163fdeac91f60e01b81526001600160a01b038316600482015260240162000f73565b505b50565b60008062001062606e62002b91565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ce919062004a95565b6040516302d764c760e21b81526001600160601b03851660048201526001600160a01b039190911690630b5d931c9060240161020060405180830381865afa1580156200111f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001145919062004c4d565b9050600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360400151886040518363ffffffff1660e01b81526004016200118892919062004ab5565b602060405180830381865af4158015620011a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011cc919062004ae9565b620012105762001205846040518060400160405280600a81526020016950726f6475637446656560b01b81525084604001518962002e47565b506040810185905260015b606082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc0916200124e9190899060040162004ab5565b602060405180830381865af41580156200126c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001292919062004ae9565b620012d957620012ce846040518060400160405280600d81526020016c50726f63657373696e6746656560981b81525084606001518862002e47565b506060810184905260015b8015620013e957826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200131f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001345919062004a95565b6001600160a01b031663b5b3d9f9858460ff6040518463ffffffff1660e01b8152600401620013779392919062004be8565b600060405180830381600087803b1580156200139257600080fd5b505af1158015620013a7573d6000803e3d6000fd5b50506040516001600160601b03871681527f385da3b17e82d72dd7e4cbe895c7d7d3fbb4c8768e0866dd69f44581a0ded2bc9250602001905060405180910390a15b505050505050565b62000f316000848473__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801562000f04573d6000803e3d6000fd5b3362001465600080516020620059d6833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614620014a25760405162d1953b60e31b81526001600160a01b038216600482015260240162000f73565b816001600160a01b03163b600003620014da576040516361798f2f60e11b81526001600160a01b038316600482015260240162000f73565b6200104e826200302a565b600080600080516020620059b683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562001557573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200157d919062004ae9565b156200160e576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015620015e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001608919062004a95565b91505090565b54600160601b90046001600160a01b0316919050565b6200162e62002b4e565b620016b383846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001672573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016989190620048e0565b603c6000856040518060200160405280600081525062000821565b6001600160a01b03821615620016d457620016ce826200308c565b6200184f565b6000620016e96001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156200174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001770919062004d3c565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015620017b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017dc919062004a95565b90506200184d816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001821573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001847919062004a95565b6200308c565b505b62001861634a531f3360e01b620007e2565b62000f3163b68d180960e01b620007e2565b600080516020620059d6833981519152805460009190600160a01b900460ff16620018a057600062001608565b638fb3603760e01b91505090565b565b604080516002808252606082018352339260009291906020830190803683375050604080516002808252606082019092529293506000929150602082015b6060815260200190600190039081620018ee57905050905062001910620030a1565b8260008151811062001926576200192662004d5c565b6001600160401b039092166020928302919091019091015262001950635b5a095d60e11b6200311c565b8160008151811062001966576200196662004d5c565b60200260200101819052506200197b62003173565b8260018151811062001991576200199162004d5c565b6001600160401b0390921660209283029190910190910152620019bb637c07103960e11b6200311c565b81600181518110620019d157620019d162004d5c565b6020026020010181905250620013e983620019ea607890565b620019f4620030a1565b8585620031b0565b60008062001a0b608c62002b91565b925050915060008062001a56836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ac5573d6000803e3d6000fd5b91509150600073__$58e11c6004c5796aaa8c56e718245e69a2$__632b324dc08360c001518a6040518363ffffffff1660e01b815260040162001a9b92919062004ab5565b602060405180830381865af415801562001ab9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001adf919062004ae9565b62001b205762001b158360405180604001604052806007815260200166506f6f6c46656560c81b8152508460c001518b62002e47565b5060c0810187905260015b60e082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162001b5e91908b9060040162004ab5565b602060405180830381865af415801562001b7c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ba2919062004ae9565b62001be65762001bdb836040518060400160405280600a8152602001695374616b696e6746656560b01b8152508460e001518a62002e47565b5060e0810186905260015b61010082015160405162acc93760e61b815273__$58e11c6004c5796aaa8c56e718245e69a2$__91632b324dc09162001c2591908a9060040162004ab5565b602060405180830381865af415801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c69919062004ae9565b62001cb35762001ca7836040518060400160405280600e81526020016d506572666f726d616e636546656560901b8152508461010001518962002e47565b50610100810185905260015b8015620008c257836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cf9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d1f919062004a95565b6001600160a01b031663b5b3d9f9848460ff6040518463ffffffff1660e01b815260040162001d519392919062004be8565b600060405180830381600087803b15801562001d6c57600080fd5b505af115801562001d81573d6000803e3d6000fd5b50506040516001600160601b03881681527f7a446b749117c015e0932e31190fc133582c9c5151e31209479cc9d21941f0359250602001905060405180910390a15050505050505050565b604080516002808252606082018352339260009291906020830190803683375050604080516002808252606082019092529293506000929150602082015b606081526020019060019003908162001e0a57905050905062001e2c62003695565b8260008151811062001e425762001e4262004d5c565b6001600160401b039092166020928302919091019091015262001e6c634133c3b360e11b6200311c565b8160008151811062001e825762001e8262004d5c565b602002602001018190525062001e97620036d0565b8260018151811062001ead5762001ead62004d5c565b6001600160401b039092166020928302919091019091015262001ed7639e2177a760e01b6200311c565b8160018151811062001eed5762001eed62004d5c565b602002602001018190525060008062001f1b8562001f09608c90565b62001f1362003695565b8787620031b0565b9250925050816001600160a01b0316637892982382876001600160a01b03166385ba83446040518163ffffffff1660e01b81526004016101c060405180830381865afa15801562001f70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f96919062004d72565b6040518363ffffffff1660e01b815260040162001fb592919062004e4c565b600060405180830381600087803b15801562001fd057600080fd5b505af115801562001fe5573d6000803e3d6000fd5b505050505050505050565b60008062001fff606462002b91565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002045573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200206b919062004a95565b60405163f0ea17c360e01b81526001600160601b03851660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015620020bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620020e5919081019062004f78565b60808101519091506001600160a01b038516620021155760405163cda6051f60e01b815260040160405180910390fd5b6001600160a01b0381166200213d5760405163149cf9c560e21b815260040160405180910390fd5b806001600160a01b0316856001600160a01b031603620021705760405163e5bf1f2160e01b815260040160405180910390fd5b8482608001906001600160a01b031690816001600160a01b031681525050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620021cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021f3919062004a95565b6001600160a01b03166303c099ac858460ff6040518463ffffffff1660e01b81526004016200222593929190620050db565b600060405180830381600087803b1580156200224057600080fd5b505af115801562002255573d6000803e3d6000fd5b5050604080516001600160601b03881681526001600160a01b03858116602083015289168183015290517ff2d80db4913d045b4cad17a65741b11f822efa2652c369fcb3e44324260773c39350908190036060019150a15050505050565b6040805160018082528183019092523391600091906020808301908036833750506040805160018082528183019092529293506000929150602082015b6060815260200190600190039081620022f0579050509050620023126200370d565b8260008151811062002328576200232862004d5c565b6001600160401b039092166020928302919091019091015262002352635b5a095d60e11b6200311c565b8160008151811062002368576200236862004d5c565b60200260200101819052506000806000620023988662002386606e90565b620023906200370d565b8888620031b0565b9250925092506000866001600160a01b031663c108bd4c6040518163ffffffff1660e01b815260040161020060405180830381865afa158015620023e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002406919062004c4d565b60405163a6a67b1f60e01b81529091506001600160a01b0384169063a6a67b1f9062002439908590859060040162005112565b600060405180830381600087803b1580156200245457600080fd5b505af115801562002469573d6000803e3d6000fd5b505050506200247f848483600001518562003749565b62000dae848483602001518562003749565b6200249b62002b4e565b620024a68162000f36565b620024b062000a23565b6001600160a01b038216620024d85760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020620059b683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006200251e83836200388c565b9050851562002737576040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002580573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025a6919062004ae9565b156200262c57604051639f8151e560e01b81526001600160601b038086166004830152821660248201526001600160a01b03861690639f8151e5906044016020604051808303816000875af115801562002604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200262a9190620048e0565b505b6040516330b8415f60e01b81526001600160601b038316600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026ab919062004ae9565b15620027315760405163e80c61ed60e01b81526001600160601b038086166004830152831660248201526001600160a01b0386169063e80c61ed906044016020604051808303816000875af115801562002709573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200272f9190620048e0565b505b620013e9565b6040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002790573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027b6919062004ae9565b156200283c5760405163b0628dc360e01b81526001600160601b038086166004830152821660248201526001600160a01b0386169063b0628dc3906044016020604051808303816000875af115801562002814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200283a9190620048e0565b505b6040516330b8415f60e01b81526001600160601b038316600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af415801562002895573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028bb919062004ae9565b15620013e9576040516314cc21b560e21b81526001600160601b038086166004830152831660248201526001600160a01b0386169063533086d4906044016020604051808303816000875af115801562002919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dae9190620048e0565b600080600080516020620059b683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620029b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029d7919062004ae9565b1562002a055780546040516301ab8b6760e21b81526001600160601b03909116600482015260240162000f73565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801562002a5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a80919062004ae9565b62002aaa5760405163b9304b0d60e01b81526001600160a01b038416600482015260240162000f73565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa15801562002aff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b259190620048e0565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020620059f683398151915254600160401b900460ff16620018ae57604051631afcd79f60e31b815260040160405180910390fd5b6200026162002b4e565b600062002b9d6200411b565b600062002bb26001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa15801562002bf9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c1f9190620048e0565b925062002c2d83856200391d565b8092508193505050806001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002c74573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002c9a919062004a95565b608083015160405163a166aa8960e01b81526001600160a01b03918216600482015291169063a166aa8990602401602060405180830381865afa15801562002ce6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d0c919062004ae9565b1562002d3757604051637d71120960e11b81526001600160601b038416600482015260240162000f73565b9193909250565b600062002d4a62004159565b60405163f0ea17c360e01b81526001600160601b03841660048201526001600160a01b0385169063f0ea17c390602401600060405180830381865afa15801562002d98573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002dc2919081019062004f78565b602001516040516302d764c760e21b81526001600160601b03821660048201529092506001600160a01b03851690630b5d931c9060240161020060405180830381865afa15801562002e18573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002e3e919062004c4d565b90509250929050565b81516020808401518351918401516040517f52d1fb99d890f3b2be95c262d870f89c22614249751b9fe6124d341bedbd70db9462002e8e948a948a94929390929062005132565b60405180910390a150505050565b600080516020620059f68339815191528054600160401b810460ff1615906001600160401b031660008115801562002ed15750825b90506000826001600160401b0316600114801562002eee5750303b155b90508115801562002efd575080155b1562002f1c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562002f4757845460ff60401b1916600160401b1785555b6000808780602001905181019062002f6091906200517b565b909250905062002f738260008b62001624565b62002f85602862003adc565b62003adc565b600280546001600160a01b0319166001600160a01b039290921691909117905562002fb262002f7f604690565b600380546001600160a01b0319166001600160a01b039290921691909117905562002fe46354b2763760e01b620007e2565b5050831562000dae57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000da5565b600080516020620059d683398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6200309662002b4e565b620010508162003bf8565b6040516368aebf7b60e01b81526002600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af4158015620030f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061a919062004a75565b60408051600180825281830190925260609160208083019080368337019050509050818160008151811062003155576200315562004d5c565b6001600160e01b031990921660209283029190910190910152919050565b6040516368aebf7b60e01b81526108fc600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b600080600080600080620031c68b8b8b62003c0d565b60025460405163d943342d60e01b815293965091945092506001600160a01b03169063d943342d90620032229085908e9086906004016001600160a01b03938416815260ff929092166020830152909116604082015260600190565b6000604051808303816000875af115801562003242573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200326c9190810190620051af565b600001519350816001600160a01b031663138461e06040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d99190620048e0565b50826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200333f919062004a95565b9550826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033a6919062004a95565b94506000826001600160a01b03166390edbd356040518163ffffffff1660e01b8152600401600060405180830381865afa158015620033e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003413919081019062004f78565b9050806040015160405162003428906200427a565b6001600160a01b039091168152602001604051809103906000f08015801562003455573d6000803e3d6000fd5b5081606001906001600160a01b031690816001600160a01b031681525050856001600160a01b0316634846003a846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015620034c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620034e79190620048e0565b836040518363ffffffff1660e01b81526004016200350792919062005295565b600060405180830381600087803b1580156200352257600080fd5b505af115801562003537573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031663dd38b49e856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200359e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620035c49190620048e0565b8e866001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562003604573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200362e9190810190620052b9565b8c8e6040518663ffffffff1660e01b81526004016200365295949392919062005337565b600060405180830381600087803b1580156200366d57600080fd5b505af115801562003682573d6000803e3d6000fd5b5050505050505050955095509592505050565b6040516368aebf7b60e01b815260048082015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b6040516368aebf7b60e01b815261096a600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b6040516368aebf7b60e01b81526005600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401620030d8565b604051630a4d29dd60e31b81526001600160601b038316600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015620037a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620037c8919062004ae9565b620007cf5760405163f0ea17c360e01b81526001600160601b03831660048201526000906001600160a01b0386169063f0ea17c390602401600060405180830381865afa1580156200381e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003848919081019062004f78565b6001600160601b038316602082015260405162f0266b60e21b81529091506001600160a01b038516906303c099ac9062001fb5908690859060ff90600401620050db565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015620038f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039169190620048e0565b9392505050565b620039276200411b565b6000806200393d6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03871660048201529091506001600160a01b0382169063a48f42e090602401600060405180830381865afa1580156200398e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620039b89190810190620051af565b925060ff841660641462003a1a57604083015160ff85811691161462003a1457604080840151905163b83d92cb60e01b81526001600160601b038716600482015260ff8087166024830152909116604482015260640162000f73565b62003ac3565b62003a37836040015162003a2c606e90565b60ff90811691161490565b8062003a50575062003a50836040015162003a2c608c90565b8062003a69575062003a69836040015162003a2c607890565b8062003a82575062003a82836040015162003a2c608290565b62003ac357604080840151905163b83d92cb60e01b81526001600160601b038716600482015260ff8087166024830152909116604482015260640162000f73565b62003ad2836020015162004082565b9150509250929050565b600062003af16001546001600160a01b031690565b6001600160a01b031663d39e60438362003b0a62000592565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af415801562003b60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003b86919062004d3c565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801562003bcc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003bf2919062004a95565b92915050565b62003c0262002b4e565b62001050816200302a565b6040516301ffc9a760e01b8152639a29895960e01b6004820152600090849082906001600160a01b038316906301ffc9a790602401602060405180830381865afa15801562003c60573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003c86919062004ae9565b62003cb0576040516359bff0e360e11b81526001600160a01b038716600482015260240162000f73565b6000826001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801562003cf1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262003d1b9190810190620051af565b905062003d3381604001518760ff9081169116141590565b1562003d75576040808201519051634a2e948760e11b81526001600160a01b038916600482015260ff8089166024830152909116604482015260640162000f73565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038981166004830152919091169063d272ac1e90602401602060405180830381865afa15801562003dca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003df09190620048e0565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801562003e4a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e70919062004ae9565b1562003e9b576040516322e6526160e11b81526001600160a01b038816600482015260240162000f73565b62003eaa816020015162004082565b93508060a0015191506000846001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ef4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f1a919062004a95565b604051631517388760e21b81526001600160401b03881660048201526001600160a01b03919091169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801562003f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003fac919062004a75565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa15801562003fff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004025919062005413565b5090508062004077576020820151604051636af540d960e01b81526001600160601b0390911660048201526001600160401b03871660248201526001600160a01b038416604482015260640162000f73565b505093509350939050565b6000620040976001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015620040e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620041119190810190620051af565b6080015192915050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b0316815260200160006001600160601b03168152602001620041a3604051806040016040528060008152602001600081525090565b8152602001620041c6604051806040016040528060008152602001600081525090565b8152602001620041e9604051806040016040528060008152602001600081525090565b81526020016200420c604051806040016040528060008152602001600081525090565b81526020016200422f604051806040016040528060008152602001600081525090565b815260200162004252604051806040016040528060008152602001600081525090565b815260200162004275604051806040016040528060008152602001600081525090565b905290565b610566806200545083390190565b6000602082840312156200429b57600080fd5b81356001600160e01b0319811681146200391657600080fd5b60005b83811015620042d1578181015183820152602001620042b7565b50506000910152565b60008151808452620042f4816020860160208601620042b4565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516200437260c08401826001600160a01b03169052565b5060c083015160e0808401526200438e610100840182620042da565b949350505050565b6001600160a01b03811681146200105057600080fd5b6001600160601b03811681146200105057600080fd5b60008060008060808587031215620043d957600080fd5b8435620043e68162004396565b93506020850135620043f881620043ac565b925060408501356200440a81620043ac565b915060608501356200441c81620043ac565b939692955090935050565b60ff811681146200105057600080fd5b80151581146200105057600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171562004481576200448162004446565b60405290565b60405161012081016001600160401b038111828210171562004481576200448162004446565b60405161016081016001600160401b038111828210171562004481576200448162004446565b60405160c081016001600160401b038111828210171562004481576200448162004446565b60405160e081016001600160401b038111828210171562004481576200448162004446565b604051601f8201601f191681016001600160401b038111828210171562004548576200454862004446565b604052919050565b60006001600160401b038211156200456c576200456c62004446565b50601f01601f191660200190565b600082601f8301126200458c57600080fd5b8135620045a36200459d8262004550565b6200451d565b818152846020838601011115620045b957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215620045f057600080fd5b8635620045fd8162004396565b955060208701356200460f81620043ac565b94506040870135620046218162004427565b93506060870135620046338162004437565b92506080870135620046458162004396565b915060a08701356001600160401b038111156200466157600080fd5b6200466f89828a016200457a565b9150509295509295509295565b6000602082840312156200468f57600080fd5b81356001600160401b03811115620046a657600080fd5b6200438e848285016200457a565b600060408284031215620046c757600080fd5b620046d16200445c565b9050813581526020820135602082015292915050565b60008060808385031215620046fb57600080fd5b620047078484620046b4565b915062002e3e8460408501620046b4565b600080604083850312156200472c57600080fd5b8235620047398162004396565b915060208301356001600160401b038111156200475557600080fd5b62003ad2858286016200457a565b6000806000606084860312156200477957600080fd5b8335620047868162004396565b925060208401356200479881620043ac565b91506040840135620047aa81620043ac565b809150509250925092565b600060208284031215620047c857600080fd5b8135620039168162004396565b600080600060608486031215620047eb57600080fd5b8335620047f88162004396565b925060208401356200480a8162004396565b91506040840135620047aa8162004396565b600080600060c084860312156200483257600080fd5b6200483e8585620046b4565b92506200484f8560408601620046b4565b9150620048608560808601620046b4565b90509250925092565b600080604083850312156200487d57600080fd5b82356200488a8162004396565b915060208301356200489c8162004396565b809150509250929050565b600060208284031215620048ba57600080fd5b815162ffffff811681146200391657600080fd5b8051620048db81620043ac565b919050565b600060208284031215620048f357600080fd5b81516200391681620043ac565b600181811c908216806200491557607f821691505b6020821081036200493657634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000f3157600081815260208120601f850160051c81016020861015620049655750805b601f850160051c820191505b81811015620013e95782815560010162004971565b81516001600160401b03811115620049a257620049a262004446565b620049ba81620049b3845462004900565b846200493c565b602080601f831160018114620049f25760008415620049d95750858301515b600019600386901b1c1916600185901b178555620013e9565b600085815260208120601f198616915b8281101562004a235788860151825594840194600190910190840162004a02565b508582101562004a425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03811681146200105057600080fd5b8051620048db8162004a52565b60006020828403121562004a8857600080fd5b8151620039168162004a52565b60006020828403121562004aa857600080fd5b8151620039168162004396565b82518152602080840151818301528251604083015282015160608201526080810162003916565b8051620048db8162004437565b60006020828403121562004afc57600080fd5b8151620039168162004437565b6001600160601b038151168252602081015162004b3160208401826001600160601b03169052565b50604081015162004b4f604084018280518252602090810151910152565b50606081015180516080840152602081015160a0840152506080810151805160c0840152602081015160e08401525060a081015161010062004b9d8185018380518252602090810151910152565b60c0830151805161014086015260209081015161016086015260e084015180516101808701528101516101a086015292015180516101c0850152909101516101e09092019190915250565b6001600160601b0384168152610240810162004c08602083018562004b09565b60ff8316610220830152949350505050565b60006040828403121562004c2d57600080fd5b62004c376200445c565b9050815181526020820151602082015292915050565b6000610200828403121562004c6157600080fd5b62004c6b62004487565b62004c7683620048ce565b815262004c8660208401620048ce565b602082015262004c9a846040850162004c1a565b604082015262004cae846080850162004c1a565b606082015262004cc28460c0850162004c1a565b608082015261010062004cd88582860162004c1a565b60a083015262004ced85610140860162004c1a565b60c083015262004d0285610180860162004c1a565b60e083015262004d17856101c0860162004c1a565b908201529392505050565b8051620048db8162004396565b8051620048db8162004427565b60006020828403121562004d4f57600080fd5b8151620039168162004427565b634e487b7160e01b600052603260045260246000fd5b60006101c0828403121562004d8657600080fd5b62004d90620044ad565b62004d9b83620048ce565b815262004dab6020840162004a68565b602082015262004dbe60408401620048ce565b604082015262004dd16060840162004adc565b606082015262004de46080840162004adc565b608082015262004df760a0840162004adc565b60a082015260c083015160c082015260e083015160e082015261010062004e218582860162004c1a565b9082015261014062004e368585830162004c1a565b61012083015262004d1785610180860162004c1a565b6001600160601b03838116825282511660208201526101e0810160208301516001600160401b03811660408401525060408301516001600160601b0381166060840152506060830151801515608084015250608083015180151560a08401525060a083015180151560c08401525060c083015160e083015260e083015161010081818501528085015191505061012062004ef28185018380518252602090810151910152565b8401518051610160850152602081015161018085015290505061014083015180516101a084015260208101516101c0840152509392505050565b600082601f83011262004f3e57600080fd5b815162004f4f6200459d8262004550565b81815284602083860101111562004f6557600080fd5b6200438e826020830160208701620042b4565b60006020828403121562004f8b57600080fd5b81516001600160401b038082111562004fa357600080fd5b9083019060c0828603121562004fb857600080fd5b62004fc2620044d3565b82518281111562004fd257600080fd5b62004fe08782860162004f2c565b82525062004ff160208401620048ce565b6020820152620050046040840162004d22565b6040820152620050176060840162004d22565b60608201526200502a6080840162004d22565b608082015260a0830151828111156200504257600080fd5b620050508782860162004f2c565b60a08301525095945050505050565b6000815160c084526200507660c0850182620042da565b90506001600160601b036020840151166020850152604083015160018060a01b038082166040870152806060860151166060870152806080860151166080870152505060a083015184820360a0860152620050d28282620042da565b95945050505050565b6001600160601b0384168152606060208201526000620050ff60608301856200505f565b905060ff83166040830152949350505050565b6001600160601b0383168152610220810162003916602083018462004b09565b6001600160601b038716815260c0602082015260006200515660c0830188620042da565b90508560408301528460608301528360808301528260a0830152979650505050505050565b600080604083850312156200518f57600080fd5b82516200519c8162004396565b60208401519092506200489c8162004396565b600060208284031215620051c257600080fd5b81516001600160401b0380821115620051da57600080fd5b9083019060e08286031215620051ef57600080fd5b620051f9620044f8565b6200520483620048ce565b81526200521460208401620048ce565b6020820152620052276040840162004d2f565b60408201526200523a6060840162004adc565b60608201526200524d6080840162004d22565b60808201526200526060a0840162004d22565b60a082015260c0830151828111156200527857600080fd5b620052868782860162004f2c565b60c08301525095945050505050565b6001600160601b03831681526040602082015260006200438e60408301846200505f565b600060208284031215620052cc57600080fd5b81516001600160401b03811115620052e357600080fd5b6200438e8482850162004f2c565b600081518084526020808501945080840160005b838110156200532c5781516001600160401b03168752958201959082019060010162005305565b509495945050505050565b6001600160601b03861681526000602060018060a01b0387168184015260a060408401526200536a60a0840187620042da565b8381036060850152855180825282820190600581901b830184018489016000805b84811015620053ec57868403601f19018652825180518086529089019089860190845b81811015620053d65783516001600160e01b0319168352928b0192918b0191600101620053ae565b505096890196945050918701916001016200538b565b5050508681036080880152620054038189620052f1565b9c9b505050505050505050505050565b600080604083850312156200542757600080fd5b8251620054348162004437565b602084015190925063ffffffff811681146200489c57600080fdfe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea26469706673582212209807ba37f960191da7fc92045bb7e0c4e727926f77e78d1cce4b3e3395aa9c6864736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207a1287ec1ea9927ecce1b3bcf06a1e9a808b9ce8db78aa4afe73400389a8a06364736f6c63430008140033",
1179
+ "linkReferences": {
1180
+ "contracts/type/Amount.sol": {
1181
+ "AmountLib": [
1182
+ {
1183
+ "length": 20,
1184
+ "start": 4002
1185
+ },
1186
+ {
1187
+ "length": 20,
1188
+ "start": 5345
1189
+ },
1190
+ {
1191
+ "length": 20,
1192
+ "start": 9771
1193
+ },
1194
+ {
1195
+ "length": 20,
1196
+ "start": 10032
1197
+ },
1198
+ {
1199
+ "length": 20,
1200
+ "start": 10299
1201
+ },
1202
+ {
1203
+ "length": 20,
1204
+ "start": 10560
1205
+ },
1206
+ {
1207
+ "length": 20,
1208
+ "start": 14747
1209
+ },
1210
+ {
1211
+ "length": 20,
1212
+ "start": 22142
1213
+ },
1214
+ {
1215
+ "length": 20,
1216
+ "start": 22299
1217
+ }
1218
+ ]
1219
+ },
1220
+ "contracts/type/Fee.sol": {
1221
+ "FeeLib": [
1222
+ {
1223
+ "length": 20,
1224
+ "start": 3040
1225
+ },
1226
+ {
1227
+ "length": 20,
1228
+ "start": 3261
1229
+ },
1230
+ {
1231
+ "length": 20,
1232
+ "start": 4657
1233
+ },
1234
+ {
1235
+ "length": 20,
1236
+ "start": 4873
1237
+ },
1238
+ {
1239
+ "length": 20,
1240
+ "start": 6980
1241
+ },
1242
+ {
1243
+ "length": 20,
1244
+ "start": 7193
1245
+ },
1246
+ {
1247
+ "length": 20,
1248
+ "start": 7392
1249
+ }
1250
+ ]
1251
+ },
1252
+ "contracts/type/NftId.sol": {
1253
+ "NftIdLib": [
1254
+ {
1255
+ "length": 20,
1256
+ "start": 1857
1257
+ },
1258
+ {
1259
+ "length": 20,
1260
+ "start": 5634
1261
+ },
1262
+ {
1263
+ "length": 20,
1264
+ "start": 10844
1265
+ },
1266
+ {
1267
+ "length": 20,
1268
+ "start": 14413
1269
+ },
1270
+ {
1271
+ "length": 20,
1272
+ "start": 16117
1273
+ }
1274
+ ]
1275
+ },
1276
+ "contracts/type/RoleId.sol": {
1277
+ "RoleIdLib": [
1278
+ {
1279
+ "length": 20,
1280
+ "start": 12704
1281
+ },
1282
+ {
1283
+ "length": 20,
1284
+ "start": 12915
1285
+ },
1286
+ {
1287
+ "length": 20,
1288
+ "start": 14227
1289
+ },
1290
+ {
1291
+ "length": 20,
1292
+ "start": 14288
1293
+ },
1294
+ {
1295
+ "length": 20,
1296
+ "start": 14348
1297
+ },
1298
+ {
1299
+ "length": 20,
1300
+ "start": 16433
1301
+ }
1302
+ ]
1303
+ },
1304
+ "contracts/type/Version.sol": {
1305
+ "VersionLib": [
1306
+ {
1307
+ "length": 20,
1308
+ "start": 1695
1309
+ },
1310
+ {
1311
+ "length": 20,
1312
+ "start": 2484
1313
+ },
1314
+ {
1315
+ "length": 20,
1316
+ "start": 15371
1317
+ }
1318
+ ],
1319
+ "VersionPartLib": [
1320
+ {
1321
+ "length": 20,
1322
+ "start": 6133
1323
+ }
1324
+ ]
1325
+ }
1326
+ },
1327
+ "deployedLinkReferences": {
1328
+ "contracts/type/Amount.sol": {
1329
+ "AmountLib": [
1330
+ {
1331
+ "length": 20,
1332
+ "start": 3772
1333
+ },
1334
+ {
1335
+ "length": 20,
1336
+ "start": 5115
1337
+ },
1338
+ {
1339
+ "length": 20,
1340
+ "start": 9541
1341
+ },
1342
+ {
1343
+ "length": 20,
1344
+ "start": 9802
1345
+ },
1346
+ {
1347
+ "length": 20,
1348
+ "start": 10069
1349
+ },
1350
+ {
1351
+ "length": 20,
1352
+ "start": 10330
1353
+ },
1354
+ {
1355
+ "length": 20,
1356
+ "start": 14517
1357
+ },
1358
+ {
1359
+ "length": 20,
1360
+ "start": 21912
1361
+ },
1362
+ {
1363
+ "length": 20,
1364
+ "start": 22069
1365
+ }
1366
+ ]
1367
+ },
1368
+ "contracts/type/Fee.sol": {
1369
+ "FeeLib": [
1370
+ {
1371
+ "length": 20,
1372
+ "start": 2810
1373
+ },
1374
+ {
1375
+ "length": 20,
1376
+ "start": 3031
1377
+ },
1378
+ {
1379
+ "length": 20,
1380
+ "start": 4427
1381
+ },
1382
+ {
1383
+ "length": 20,
1384
+ "start": 4643
1385
+ },
1386
+ {
1387
+ "length": 20,
1388
+ "start": 6750
1389
+ },
1390
+ {
1391
+ "length": 20,
1392
+ "start": 6963
1393
+ },
1394
+ {
1395
+ "length": 20,
1396
+ "start": 7162
1397
+ }
1398
+ ]
1399
+ },
1400
+ "contracts/type/NftId.sol": {
1401
+ "NftIdLib": [
1402
+ {
1403
+ "length": 20,
1404
+ "start": 1627
1405
+ },
1406
+ {
1407
+ "length": 20,
1408
+ "start": 5404
1409
+ },
1410
+ {
1411
+ "length": 20,
1412
+ "start": 10614
1413
+ },
1414
+ {
1415
+ "length": 20,
1416
+ "start": 14183
1417
+ },
1418
+ {
1419
+ "length": 20,
1420
+ "start": 15887
1421
+ }
1422
+ ]
1423
+ },
1424
+ "contracts/type/RoleId.sol": {
1425
+ "RoleIdLib": [
1426
+ {
1427
+ "length": 20,
1428
+ "start": 12474
1429
+ },
1430
+ {
1431
+ "length": 20,
1432
+ "start": 12685
1433
+ },
1434
+ {
1435
+ "length": 20,
1436
+ "start": 13997
1437
+ },
1438
+ {
1439
+ "length": 20,
1440
+ "start": 14058
1441
+ },
1442
+ {
1443
+ "length": 20,
1444
+ "start": 14118
1445
+ },
1446
+ {
1447
+ "length": 20,
1448
+ "start": 16203
1449
+ }
1450
+ ]
1451
+ },
1452
+ "contracts/type/Version.sol": {
1453
+ "VersionLib": [
1454
+ {
1455
+ "length": 20,
1456
+ "start": 1465
1457
+ },
1458
+ {
1459
+ "length": 20,
1460
+ "start": 2254
1461
+ },
1462
+ {
1463
+ "length": 20,
1464
+ "start": 15141
1465
+ }
1466
+ ],
1467
+ "VersionPartLib": [
1468
+ {
1469
+ "length": 20,
1470
+ "start": 5903
1471
+ }
1472
+ ]
1473
+ }
1474
+ }
1475
+ }