@etherisc/gif-next 0.0.2-ce2fc91-485 → 0.0.2-ce8407f-016

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