@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c0457ac-280

Sign up to get free protection for your applications and to get access to all the features.
Files changed (396) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +198 -177
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +130 -335
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -96
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +83 -108
  9. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +35 -48
  11. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
  13. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +65 -66
  15. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -10
  17. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  18. package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -93
  19. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +56 -40
  21. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +84 -44
  23. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
  25. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -46
  27. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +74 -43
  29. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1095 -344
  31. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  33. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  48. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  49. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  51. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  53. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  55. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  57. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  59. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -264
  61. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +56 -69
  63. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
  65. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +145 -86
  67. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
  69. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  70. package/artifacts/contracts/pool/Pool.sol/Pool.json +242 -103
  71. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -376
  73. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -83
  75. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
  77. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +56 -45
  79. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
  81. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -61
  83. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
  85. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
  87. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
  89. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
  91. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +241 -107
  93. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
  95. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
  97. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -99
  99. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
  101. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -54
  103. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  104. package/artifacts/contracts/product/Product.sol/Product.json +337 -157
  105. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -230
  107. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +34 -47
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +65 -0
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +153 -1
  115. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  117. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/Registry.sol/Registry.json +294 -15
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1712 -103
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +321 -161
  128. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
  134. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  136. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
  138. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +42 -10
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +42 -10
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +52 -20
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +52 -20
  145. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  148. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +916 -55
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  151. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  152. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  154. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  155. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  156. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  162. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  165. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
  167. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  175. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  185. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  187. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  189. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
  191. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  193. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
  195. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
  197. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  199. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Service.sol/Service.json +16 -16
  201. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
  203. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  205. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  206. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  207. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  208. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  214. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  216. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  218. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  219. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
  220. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
  222. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  224. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  226. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  227. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  228. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  230. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  232. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  234. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  236. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
  238. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  240. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  242. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  244. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +96 -2
  246. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  248. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  250. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  252. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  254. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
  256. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  258. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  260. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  262. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  264. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  266. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  272. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  274. package/contracts/distribution/Distribution.sol +29 -53
  275. package/contracts/distribution/DistributionService.sol +61 -115
  276. package/contracts/distribution/IDistributionComponent.sol +5 -10
  277. package/contracts/distribution/IDistributionService.sol +2 -8
  278. package/contracts/instance/IInstance.sol +15 -7
  279. package/contracts/instance/IInstanceService.sol +35 -10
  280. package/contracts/instance/Instance.sol +63 -34
  281. package/contracts/instance/InstanceAdmin.sol +3 -2
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +84 -27
  283. package/contracts/instance/InstanceReader.sol +64 -40
  284. package/contracts/instance/InstanceService.sol +185 -45
  285. package/contracts/instance/InstanceStore.sol +122 -64
  286. package/contracts/instance/base/BalanceStore.sol +123 -0
  287. package/contracts/instance/base/Cloneable.sol +2 -25
  288. package/contracts/instance/base/ObjectCounter.sol +21 -0
  289. package/contracts/instance/base/ObjectManager.sol +1 -3
  290. package/contracts/instance/module/IBundle.sol +1 -4
  291. package/contracts/instance/module/IComponents.sol +15 -4
  292. package/contracts/instance/module/IPolicy.sol +8 -2
  293. package/contracts/mock/Dip.sol +26 -0
  294. package/contracts/oracle/IOracle.sol +20 -0
  295. package/contracts/oracle/IOracleComponent.sol +32 -0
  296. package/contracts/oracle/IOracleService.sol +65 -0
  297. package/contracts/oracle/Oracle.sol +145 -0
  298. package/contracts/oracle/OracleService.sol +278 -0
  299. package/contracts/oracle/OracleServiceManager.sol +42 -0
  300. package/contracts/pool/BundleService.sol +79 -167
  301. package/contracts/pool/IBundleService.sol +4 -16
  302. package/contracts/pool/IPoolComponent.sol +4 -6
  303. package/contracts/pool/IPoolService.sol +45 -9
  304. package/contracts/pool/Pool.sol +39 -42
  305. package/contracts/pool/PoolService.sol +190 -142
  306. package/contracts/product/ApplicationService.sol +109 -42
  307. package/contracts/product/ClaimService.sol +18 -19
  308. package/contracts/product/IApplicationService.sol +1 -1
  309. package/contracts/product/IClaimService.sol +7 -1
  310. package/contracts/product/IPolicyService.sol +6 -8
  311. package/contracts/product/IPricingService.sol +3 -1
  312. package/contracts/product/IProductComponent.sol +7 -6
  313. package/contracts/product/IProductService.sol +1 -8
  314. package/contracts/product/PolicyService.sol +225 -128
  315. package/contracts/product/PricingService.sol +72 -48
  316. package/contracts/product/Product.sol +47 -49
  317. package/contracts/product/ProductService.sol +26 -114
  318. package/contracts/registry/ChainNft.sol +8 -1
  319. package/contracts/registry/IRegistry.sol +15 -4
  320. package/contracts/registry/IRegistryService.sol +10 -0
  321. package/contracts/registry/IServiceAuthorization.sol +35 -0
  322. package/contracts/registry/Registry.sol +164 -47
  323. package/contracts/registry/RegistryAdmin.sol +264 -72
  324. package/contracts/registry/RegistryService.sol +48 -14
  325. package/contracts/registry/RegistryServiceManager.sol +2 -9
  326. package/contracts/registry/ReleaseManager.sol +242 -177
  327. package/contracts/registry/ServiceAuthorization.sol +86 -0
  328. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  329. package/contracts/registry/TokenRegistry.sol +261 -64
  330. package/contracts/shared/AccessAdmin.sol +759 -0
  331. package/contracts/shared/AccessManagerCustom.sol +6 -1
  332. package/contracts/shared/AccessManagerExtended.sol +19 -7
  333. package/contracts/shared/Component.sol +139 -129
  334. package/contracts/shared/ComponentService.sol +563 -88
  335. package/contracts/shared/ComponentServiceManager.sol +35 -0
  336. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  337. package/contracts/shared/ERC165.sol +1 -1
  338. package/contracts/shared/IAccessAdmin.sol +168 -0
  339. package/contracts/shared/IComponent.sol +17 -37
  340. package/contracts/shared/IComponentService.sol +102 -0
  341. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  342. package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
  343. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  344. package/contracts/shared/INftOwnable.sol +1 -1
  345. package/contracts/shared/IPolicyHolder.sol +6 -1
  346. package/contracts/shared/IService.sol +8 -1
  347. package/contracts/shared/InitializableCustom.sol +177 -0
  348. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  349. package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
  350. package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
  351. package/contracts/shared/NftIdSetManager.sol +65 -0
  352. package/contracts/shared/NftOwnable.sol +3 -13
  353. package/contracts/shared/PolicyHolder.sol +21 -13
  354. package/contracts/shared/ProxyManager.sol +2 -3
  355. package/contracts/shared/Registerable.sol +2 -2
  356. package/contracts/shared/Service.sol +32 -21
  357. package/contracts/shared/TokenHandler.sol +24 -1
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +98 -47
  360. package/contracts/staking/StakeManagerLib.sol +231 -0
  361. package/contracts/staking/Staking.sol +513 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +286 -44
  365. package/contracts/staking/StakingServiceManager.sol +7 -3
  366. package/contracts/staking/StakingStore.sol +613 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/type/AddressSet.sol +1 -1
  369. package/contracts/type/Amount.sol +20 -1
  370. package/contracts/type/Blocknumber.sol +20 -3
  371. package/contracts/type/Fee.sol +17 -16
  372. package/contracts/type/NftId.sol +14 -16
  373. package/contracts/type/NftIdSet.sol +1 -1
  374. package/contracts/type/ObjectType.sol +142 -63
  375. package/contracts/type/Referral.sol +1 -1
  376. package/contracts/type/RequestId.sol +75 -0
  377. package/contracts/type/RiskId.sol +1 -1
  378. package/contracts/type/RoleId.sol +82 -20
  379. package/contracts/type/Seconds.sol +27 -0
  380. package/contracts/type/Selector.sol +102 -0
  381. package/contracts/type/StateId.sol +27 -2
  382. package/contracts/type/String.sol +53 -0
  383. package/contracts/type/Timestamp.sol +6 -2
  384. package/contracts/type/Version.sol +1 -1
  385. package/package.json +3 -3
  386. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  387. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  389. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  390. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  391. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  392. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  393. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  394. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  395. package/contracts/instance/module/ISetup.sol +0 -33
  396. package/contracts/instance/module/ITreasury.sol +0 -23
@@ -523,168 +523,184 @@
523
523
  "type": "function"
524
524
  }
525
525
  ],
526
- "bytecode": "0x608060405234801561001057600080fd5b5061293c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063608b081e116100b8578063bf7e214f1161007c578063bf7e214f146102ba578063c4d66de8146102da578063d0540443146102ed578063d2192dbf14610318578063dc85dcb11461034b578063f2345aea1461035e57600080fd5b8063608b081e146102475780637a9e5e4b1461027357806384623198146102865780638fb36037146102995780639dfd7b181461019757600080fd5b806344ec4c30116100ff57806344ec4c30146101da5780634a3a1e00146101ed5780635dfa73db146102005780635e85734a146102215780635fa8aad41461023457600080fd5b806312f48f151461013c578063131021d91461015157806322db471c1461019757806330cae187146101aa57806337f135d7146101bd575b600080fd5b61014f61014a366004612185565b610371565b005b61018160405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161018e9190612224565b60405180910390f35b61014f6101a536600461224c565b61038e565b61014f6101b83660046122aa565b6103a1565b6101c5600081565b60405163ffffffff909116815260200161018e565b61014f6101e8366004612185565b6103b4565b61014f6101fb3660046122d8565b6105b5565b61020961271081565b6040516001600160401b03909116815260200161018e565b61014f61022f3660046122f6565b6105ca565b61014f610242366004612185565b61081a565b6101816040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b81525081565b61014f610281366004612324565b61082f565b61014f610294366004612341565b6108b2565b6102a1610a20565b6040516001600160e01b0319909116815260200161018e565b6102c2610a59565b6040516001600160a01b03909116815260200161018e565b61014f6102e8366004612324565b610a75565b6101816040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b61032b6103263660046123eb565b610dce565b604080516001600160401b0393841681529290911660208301520161018e565b61014f610359366004612341565b610e21565b61014f61036c366004612444565b610f49565b61037e335b600036610f6d565b61038a8282600161106b565b5050565b61039733610376565b61038a8282611114565b6103aa33610376565b61038a82826111a8565b6103bd33610376565b6004805460405163c3c5a54760e01b81526001600160a01b038581169382019390935291169063c3c5a54790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d91906124b2565b61045a576040516306ad3ea560e51b81526001600160a01b03831660048201526024015b60405180910390fd5b600480546040516308b09a5f60e41b81526001600160a01b038581169382019390935260009290911690638b09a5f090602401600060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d2919081019061254f565b60200151600480546003546040516308b09a5f60e41b81526001600160a01b03918216938101939093529293506000921690638b09a5f090602401600060405180830381865afa15801561052a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610552919081019061254f565b5190506001600160601b03808316908216146105a35760405163f7ddf01d60e01b81526001600160a01b03851660048201526001600160601b03808416602483015282166044820152606401610451565b6105af8484600261106b565b50505050565b6105be33610376565b61038a8282600161136a565b6105d333610376565b6105e36105de611466565b6114e4565b6001146105f2576105f2612621565b61060e6105fd611466565b6003546001600160a01b03166115eb565b61061a5761061a612621565b61062261171d565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612637565b6001600160401b03166106b86106b3611758565b611794565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190612637565b6001600160401b03161461074b5761074b612621565b6001600160a01b03821615610779576107656105de611758565b60011461077457610774612621565b610791565b6107846105de611758565b1561079157610791612621565b806001600160a01b0316826001600160a01b0316036107b2576107b2612621565b6107c36107bd611758565b82611905565b6001600160a01b038216156107e3576107e36107dd611758565b836119de565b6107ee6105de611758565b6001146107fd576107fd612621565b61080e610808611758565b826115eb565b61038a5761038a612621565b61082333610376565b61038a8282600361106b565b33610838610a59565b6001600160a01b0316816001600160a01b0316146108735760405162d1953b60e31b81526001600160a01b0382166004820152602401610451565b816001600160a01b03163b6000036108a9576040516361798f2f60e11b81526001600160a01b0383166004820152602401610451565b61038a82611ab0565b6108bb33610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c906108f3908890600401612224565b602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190612654565b905060036001600160a01b03821660009081526020819052604090205460ff16600381111561096557610965612671565b036109885780600360405163ecec011f60e01b81526004016104519291906126a9565b60036001600160401b03831660009081526001602052604090205460ff1660038111156109b7576109b7612671565b036109da57816003604051630bb1a0c760e01b81526004016104519291906126c6565b610a1981858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611b11915050565b5050505050565b6000805160206128e7833981519152805460009190600160a01b900460ff16610a4a576000610a53565b638fb3603760e01b5b91505090565b6000805160206128e7833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610aba5750825b90506000826001600160401b03166001148015610ad65750303b155b905081158015610ae4575080155b15610b025760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b2c57845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190612654565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfb9190612654565b9050610c0681611bca565b60028054600380546001600160a01b038d81166001600160a01b03199283161790925560048054878416921691909117905567ffffffffffffffff19908416600160401b02166001600160e01b031990911617612710179055610c96610c6a611466565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b815250600161136a565b610cd2610ca1611758565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b815250600161136a565b610ce3610cdd611466565b84611905565b610d14306040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b815250600161106b565b60408051600180825281830190925260009160208083019080368337019050509050635e85734a60e01b81600081518110610d5157610d516126e3565b6001600160e01b031990921660209283029190910190910152610d7c3082610d77611466565b611b11565b505050508315610dc657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610dda33610376565b610de2611bde565b9092509050610df38285600361136a565b610dff8184600361136a565b610e0982826111a8565b610e1a81610e15611758565b6111a8565b9250929050565b610e2a33610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c90610e62908890600401612224565b602060405180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190612654565b905060016001600160a01b03821660009081526020819052604090205460ff166003811115610ed457610ed4612671565b03610ef75780600160405163ecec011f60e01b81526004016104519291906126a9565b60016001600160401b03831660009081526001602052604090205460ff166003811115610f2657610f26612671565b036109da57816001604051630bb1a0c760e01b81526004016104519291906126c6565b610f5233610376565b610f5e8383600261136a565b610f6883826111a8565b505050565b6000805160206128e7833981519152600080610fa8610f8a610a59565b8730610f9a600460008a8c6126f9565b610fa391612723565b611d21565b9150915081610dc65763ffffffff81161561104857825460ff60a01b1916600160a01b178355610fd6610a59565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161100593929190612753565b600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b5050845460ff60a01b1916855550610dc69050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610451565b6001600160a01b0383166000908152602081905260409020805482919060ff191660018360038111156110a0576110a0612671565b02179055506002546040516317ea2ab560e21b8152600160401b9091046001600160a01b031690635fa8aad4906110dd9086908690600401612793565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050505050565b6001600160a01b03821660009081526020819052604090205460ff16600181600381111561114457611144612671565b0361116657828160405163ecec011f60e01b81526004016104519291906126a9565b60025460405163167bd39560e01b81526001600160a01b0385811660048301528415156024830152600160401b9092049091169063167bd395906044016110dd565b60016001600160401b03831660009081526001602052604090205460ff1660038111156111d7576111d7612671565b036111fa57816001604051630bb1a0c760e01b81526004016104519291906126c6565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906330cae1879073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612637565b604051631517388760e21b81526001600160401b038516600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d9190612637565b6040516001600160e01b031960e085901b1681526001600160401b039283166004820152911660248201526044015b600060405180830381600087803b15801561135657600080fd5b505af1158015610dc6573d6000803e3d6000fd5b6113748382611e2d565b6001600160401b03831660009081526001602081905260409091208054839260ff19909116908360038111156113ac576113ac612671565b0217905550600254604051631517388760e21b81526001600160401b0385166004820152600160401b9091046001600160a01b0316906368ed5d2e9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114489190612637565b846040518363ffffffff1660e01b81526004016110dd9291906127b7565b6040516368aebf7b60e01b8152610a28600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af41580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114df9190612637565b905090565b600254604051631517388760e21b81526001600160401b0383166004820152600091600160401b90046001600160a01b03169063a5808e2f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157d9190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa1580156115c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e591906127d9565b92915050565b600254604051631517388760e21b81526001600160401b03841660048201526000918291600160401b9091046001600160a01b03169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd91906127f2565b909250905063ffffffff81161561171657611716612621565b5092915050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b6040516368aebf7b60e01b815261076c600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b600254604051631517388760e21b81526001600160401b038316600482015260009173__$1d92393fa9ccd763988368ce8a1cb90d26$__916368aebf7b91600160401b90046001600160a01b03169063530dd45690849063545ce21c90602401602060405180830381865af4158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa158015611879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189d9190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af41580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e59190612637565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03841660248201526000604482015260640161133c565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b03169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260440161133c565b6000805160206128e783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b600254604051631517388760e21b81526001600160401b0383166004820152600160401b9091046001600160a01b0316906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bac9190612637565b6040518463ffffffff1660e01b81526004016110dd9392919061282a565b611bd2611fe8565b611bdb81612033565b50565b60025460009081906001600160401b031681611bfb82600161289c565b9050611c0882600261289c565b6002805467ffffffffffffffff19166001600160401b039283161790556040516368aebf7b60e01b8152908316600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9a9190612637565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d199190612637565b925050509091565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d9091906128ca565b600060405180830381855afa9150503d8060008114611dcb576040519150601f19603f3d011682016040523d82523d6000602084013e611dd0565b606091505b50915091508115611e22576040815110611e025780806020019051810190611df891906127f2565b9094509250611e22565b6020815110611e225780806020019051810190611e1f91906124b2565b93505b505094509492505050565b604051631517388760e21b81526001600160401b038316600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eac9190612637565b6001600160401b031690506003826003811115611ecb57611ecb612671565b148015611ed9575061271081105b15611f025760405163be511cc160e01b81526001600160401b0384166004820152602401610451565b6003826003811115611f1657611f16612671565b14158015611f2657506127108110155b8015611fbf5750611f35612044565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb29190612637565b6001600160401b03168114155b15610f6857604051630e08ff2d60e11b81526001600160401b0384166004820152602401610451565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661203157604051631afcd79f60e31b815260040160405180910390fd5b565b61203b611fe8565b611bdb81611ab0565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b6001600160a01b0381168114611bdb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156120d2576120d261209a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121005761210061209a565b604052919050565b60006001600160401b038211156121215761212161209a565b50601f01601f191660200190565b600082601f83011261214057600080fd5b813561215361214e82612108565b6120d8565b81815284602083860101111561216857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561219857600080fd5b82356121a381612085565b915060208301356001600160401b038111156121be57600080fd5b6121ca8582860161212f565b9150509250929050565b60005b838110156121ef5781810151838201526020016121d7565b50506000910152565b600081518084526122108160208601602086016121d4565b601f01601f19169290920160200192915050565b60208152600061223760208301846121f8565b9392505050565b8015158114611bdb57600080fd5b6000806040838503121561225f57600080fd5b823561226a81612085565b9150602083013561227a8161223e565b809150509250929050565b6001600160401b0381168114611bdb57600080fd5b80356122a581612285565b919050565b600080604083850312156122bd57600080fd5b82356122c881612285565b9150602083013561227a81612285565b600080604083850312156122eb57600080fd5b82356121a381612285565b6000806040838503121561230957600080fd5b823561231481612085565b9150602083013561227a81612085565b60006020828403121561233657600080fd5b813561223781612085565b6000806000806060858703121561235757600080fd5b84356001600160401b038082111561236e57600080fd5b61237a8883890161212f565b9550602087013591508082111561239057600080fd5b818701915087601f8301126123a457600080fd5b8135818111156123b357600080fd5b8860208260051b85010111156123c857600080fd5b6020830195508094505050506123e06040860161229a565b905092959194509250565b600080604083850312156123fe57600080fd5b82356001600160401b038082111561241557600080fd5b6124218683870161212f565b9350602085013591508082111561243757600080fd5b506121ca8582860161212f565b60008060006060848603121561245957600080fd5b833561246481612285565b925060208401356001600160401b0381111561247f57600080fd5b61248b8682870161212f565b925050604084013561249c81612285565b809150509250925092565b80516122a58161223e565b6000602082840312156124c457600080fd5b81516122378161223e565b80516001600160601b03811681146122a557600080fd5b805160ff811681146122a557600080fd5b80516122a581612085565b600082601f83011261251357600080fd5b815161252161214e82612108565b81815284602083860101111561253657600080fd5b6125478260208301602087016121d4565b949350505050565b60006020828403121561256157600080fd5b81516001600160401b038082111561257857600080fd5b9083019060e0828603121561258c57600080fd5b6125946120b0565b61259d836124cf565b81526125ab602084016124cf565b60208201526125bc604084016124e6565b60408201526125cd606084016124a7565b60608201526125de608084016124f7565b60808201526125ef60a084016124f7565b60a082015260c08301518281111561260657600080fd5b61261287828601612502565b60c08301525095945050505050565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561264957600080fd5b815161223781612285565b60006020828403121561266657600080fd5b815161223781612085565b634e487b7160e01b600052602160045260246000fd5b600481106126a557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0383168152604081016122376020830184612687565b6001600160401b0383168152604081016122376020830184612687565b634e487b7160e01b600052603260045260246000fd5b6000808585111561270957600080fd5b8386111561271657600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561274b5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b0383168152604060208201819052600090612547908301846121f8565b6001600160401b038316815260406020820152600061254760408301846121f8565b6000602082840312156127eb57600080fd5b5051919050565b6000806040838503121561280557600080fd5b82516128108161223e565b602084015190925063ffffffff8116811461227a57600080fd5b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b8181101561287d5784516001600160e01b03191683529383019391830191600101612857565b50508093505050506001600160401b0383166040830152949350505050565b6001600160401b0381811683821601908082111561171657634e487b7160e01b600052601160045260246000fd5b600082516128dc8184602087016121d4565b919091019291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220ddb1ae66a5ceea03a2eb8c1a88509861d21b1c2cc2100baae79f78cee3ab1b7664736f6c63430008140033",
527
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063608b081e116100b8578063bf7e214f1161007c578063bf7e214f146102ba578063c4d66de8146102da578063d0540443146102ed578063d2192dbf14610318578063dc85dcb11461034b578063f2345aea1461035e57600080fd5b8063608b081e146102475780637a9e5e4b1461027357806384623198146102865780638fb36037146102995780639dfd7b181461019757600080fd5b806344ec4c30116100ff57806344ec4c30146101da5780634a3a1e00146101ed5780635dfa73db146102005780635e85734a146102215780635fa8aad41461023457600080fd5b806312f48f151461013c578063131021d91461015157806322db471c1461019757806330cae187146101aa57806337f135d7146101bd575b600080fd5b61014f61014a366004612185565b610371565b005b61018160405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161018e9190612224565b60405180910390f35b61014f6101a536600461224c565b61038e565b61014f6101b83660046122aa565b6103a1565b6101c5600081565b60405163ffffffff909116815260200161018e565b61014f6101e8366004612185565b6103b4565b61014f6101fb3660046122d8565b6105b5565b61020961271081565b6040516001600160401b03909116815260200161018e565b61014f61022f3660046122f6565b6105ca565b61014f610242366004612185565b61081a565b6101816040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b81525081565b61014f610281366004612324565b61082f565b61014f610294366004612341565b6108b2565b6102a1610a20565b6040516001600160e01b0319909116815260200161018e565b6102c2610a59565b6040516001600160a01b03909116815260200161018e565b61014f6102e8366004612324565b610a75565b6101816040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b61032b6103263660046123eb565b610dce565b604080516001600160401b0393841681529290911660208301520161018e565b61014f610359366004612341565b610e21565b61014f61036c366004612444565b610f49565b61037e335b600036610f6d565b61038a8282600161106b565b5050565b61039733610376565b61038a8282611114565b6103aa33610376565b61038a82826111a8565b6103bd33610376565b6004805460405163c3c5a54760e01b81526001600160a01b038581169382019390935291169063c3c5a54790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d91906124b2565b61045a576040516306ad3ea560e51b81526001600160a01b03831660048201526024015b60405180910390fd5b600480546040516308b09a5f60e41b81526001600160a01b038581169382019390935260009290911690638b09a5f090602401600060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d2919081019061254f565b60200151600480546003546040516308b09a5f60e41b81526001600160a01b03918216938101939093529293506000921690638b09a5f090602401600060405180830381865afa15801561052a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610552919081019061254f565b5190506001600160601b03808316908216146105a35760405163f7ddf01d60e01b81526001600160a01b03851660048201526001600160601b03808416602483015282166044820152606401610451565b6105af8484600261106b565b50505050565b6105be33610376565b61038a8282600161136a565b6105d333610376565b6105e36105de611466565b6114e4565b6001146105f2576105f2612621565b61060e6105fd611466565b6003546001600160a01b03166115eb565b61061a5761061a612621565b61062261171d565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190612637565b6001600160401b03166106b86106b3611758565b611794565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190612637565b6001600160401b03161461074b5761074b612621565b6001600160a01b03821615610779576107656105de611758565b60011461077457610774612621565b610791565b6107846105de611758565b1561079157610791612621565b806001600160a01b0316826001600160a01b0316036107b2576107b2612621565b6107c36107bd611758565b82611905565b6001600160a01b038216156107e3576107e36107dd611758565b836119de565b6107ee6105de611758565b6001146107fd576107fd612621565b61080e610808611758565b826115eb565b61038a5761038a612621565b61082333610376565b61038a8282600361106b565b33610838610a59565b6001600160a01b0316816001600160a01b0316146108735760405162d1953b60e31b81526001600160a01b0382166004820152602401610451565b816001600160a01b03163b6000036108a9576040516361798f2f60e11b81526001600160a01b0383166004820152602401610451565b61038a82611ab0565b6108bb33610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c906108f3908890600401612224565b602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190612654565b905060036001600160a01b03821660009081526020819052604090205460ff16600381111561096557610965612671565b036109885780600360405163ecec011f60e01b81526004016104519291906126a9565b60036001600160401b03831660009081526001602052604090205460ff1660038111156109b7576109b7612671565b036109da57816003604051630bb1a0c760e01b81526004016104519291906126c6565b610a1981858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611b11915050565b5050505050565b6000805160206128e7833981519152805460009190600160a01b900460ff16610a4a576000610a53565b638fb3603760e01b5b91505090565b6000805160206128e7833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610aba5750825b90506000826001600160401b03166001148015610ad65750303b155b905081158015610ae4575080155b15610b025760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b2c57845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190612654565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfb9190612654565b9050610c0681611bca565b60028054600380546001600160a01b038d81166001600160a01b03199283161790925560048054878416921691909117905567ffffffffffffffff19908416600160401b02166001600160e01b031990911617612710179055610c96610c6a611466565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b815250600161136a565b610cd2610ca1611758565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b815250600161136a565b610ce3610cdd611466565b84611905565b610d14306040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b815250600161106b565b60408051600180825281830190925260009160208083019080368337019050509050635e85734a60e01b81600081518110610d5157610d516126e3565b6001600160e01b031990921660209283029190910190910152610d7c3082610d77611466565b611b11565b505050508315610dc657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610dda33610376565b610de2611bde565b9092509050610df38285600361136a565b610dff8184600361136a565b610e0982826111a8565b610e1a81610e15611758565b6111a8565b9250929050565b610e2a33610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c90610e62908890600401612224565b602060405180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190612654565b905060016001600160a01b03821660009081526020819052604090205460ff166003811115610ed457610ed4612671565b03610ef75780600160405163ecec011f60e01b81526004016104519291906126a9565b60016001600160401b03831660009081526001602052604090205460ff166003811115610f2657610f26612671565b036109da57816001604051630bb1a0c760e01b81526004016104519291906126c6565b610f5233610376565b610f5e8383600261136a565b610f6883826111a8565b505050565b6000805160206128e7833981519152600080610fa8610f8a610a59565b8730610f9a600460008a8c6126f9565b610fa391612723565b611d21565b9150915081610dc65763ffffffff81161561104857825460ff60a01b1916600160a01b178355610fd6610a59565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161100593929190612753565b600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b5050845460ff60a01b1916855550610dc69050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610451565b6001600160a01b0383166000908152602081905260409020805482919060ff191660018360038111156110a0576110a0612671565b02179055506002546040516317ea2ab560e21b8152600160401b9091046001600160a01b031690635fa8aad4906110dd9086908690600401612793565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050505050565b6001600160a01b03821660009081526020819052604090205460ff16600181600381111561114457611144612671565b0361116657828160405163ecec011f60e01b81526004016104519291906126a9565b60025460405163167bd39560e01b81526001600160a01b0385811660048301528415156024830152600160401b9092049091169063167bd395906044016110dd565b60016001600160401b03831660009081526001602052604090205460ff1660038111156111d7576111d7612671565b036111fa57816001604051630bb1a0c760e01b81526004016104519291906126c6565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906330cae1879073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190612637565b604051631517388760e21b81526001600160401b038516600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d9190612637565b6040516001600160e01b031960e085901b1681526001600160401b039283166004820152911660248201526044015b600060405180830381600087803b15801561135657600080fd5b505af1158015610dc6573d6000803e3d6000fd5b6113748382611e2d565b6001600160401b03831660009081526001602081905260409091208054839260ff19909116908360038111156113ac576113ac612671565b0217905550600254604051631517388760e21b81526001600160401b0385166004820152600160401b9091046001600160a01b0316906368ed5d2e9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114489190612637565b846040518363ffffffff1660e01b81526004016110dd9291906127b7565b6040516368aebf7b60e01b8152610a28600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af41580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114df9190612637565b905090565b600254604051631517388760e21b81526001600160401b0383166004820152600091600160401b90046001600160a01b03169063a5808e2f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157d9190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa1580156115c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e591906127d9565b92915050565b600254604051631517388760e21b81526001600160401b03841660048201526000918291600160401b9091046001600160a01b03169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd91906127f2565b909250905063ffffffff81161561171657611716612621565b5092915050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b6040516368aebf7b60e01b815261076c600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b600254604051631517388760e21b81526001600160401b038316600482015260009173__$1d92393fa9ccd763988368ce8a1cb90d26$__916368aebf7b91600160401b90046001600160a01b03169063530dd45690849063545ce21c90602401602060405180830381865af4158015611811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118359190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa158015611879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189d9190612637565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af41580156118e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e59190612637565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03841660248201526000604482015260640161133c565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b03169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190612637565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260440161133c565b6000805160206128e783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b600254604051631517388760e21b81526001600160401b0383166004820152600160401b9091046001600160a01b0316906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bac9190612637565b6040518463ffffffff1660e01b81526004016110dd9392919061282a565b611bd2611fe8565b611bdb81612033565b50565b60025460009081906001600160401b031681611bfb82600161289c565b9050611c0882600261289c565b6002805467ffffffffffffffff19166001600160401b039283161790556040516368aebf7b60e01b8152908316600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9a9190612637565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d199190612637565b925050509091565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d9091906128ca565b600060405180830381855afa9150503d8060008114611dcb576040519150601f19603f3d011682016040523d82523d6000602084013e611dd0565b606091505b50915091508115611e22576040815110611e025780806020019051810190611df891906127f2565b9094509250611e22565b6020815110611e225780806020019051810190611e1f91906124b2565b93505b505094509492505050565b604051631517388760e21b81526001600160401b038316600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eac9190612637565b6001600160401b031690506003826003811115611ecb57611ecb612671565b148015611ed9575061271081105b15611f025760405163be511cc160e01b81526001600160401b0384166004820152602401610451565b6003826003811115611f1657611f16612671565b14158015611f2657506127108110155b8015611fbf5750611f35612044565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611f8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb29190612637565b6001600160401b03168114155b15610f6857604051630e08ff2d60e11b81526001600160401b0384166004820152602401610451565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661203157604051631afcd79f60e31b815260040160405180910390fd5b565b61203b611fe8565b611bdb81611ab0565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9060240161149e565b6001600160a01b0381168114611bdb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156120d2576120d261209a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121005761210061209a565b604052919050565b60006001600160401b038211156121215761212161209a565b50601f01601f191660200190565b600082601f83011261214057600080fd5b813561215361214e82612108565b6120d8565b81815284602083860101111561216857600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561219857600080fd5b82356121a381612085565b915060208301356001600160401b038111156121be57600080fd5b6121ca8582860161212f565b9150509250929050565b60005b838110156121ef5781810151838201526020016121d7565b50506000910152565b600081518084526122108160208601602086016121d4565b601f01601f19169290920160200192915050565b60208152600061223760208301846121f8565b9392505050565b8015158114611bdb57600080fd5b6000806040838503121561225f57600080fd5b823561226a81612085565b9150602083013561227a8161223e565b809150509250929050565b6001600160401b0381168114611bdb57600080fd5b80356122a581612285565b919050565b600080604083850312156122bd57600080fd5b82356122c881612285565b9150602083013561227a81612285565b600080604083850312156122eb57600080fd5b82356121a381612285565b6000806040838503121561230957600080fd5b823561231481612085565b9150602083013561227a81612085565b60006020828403121561233657600080fd5b813561223781612085565b6000806000806060858703121561235757600080fd5b84356001600160401b038082111561236e57600080fd5b61237a8883890161212f565b9550602087013591508082111561239057600080fd5b818701915087601f8301126123a457600080fd5b8135818111156123b357600080fd5b8860208260051b85010111156123c857600080fd5b6020830195508094505050506123e06040860161229a565b905092959194509250565b600080604083850312156123fe57600080fd5b82356001600160401b038082111561241557600080fd5b6124218683870161212f565b9350602085013591508082111561243757600080fd5b506121ca8582860161212f565b60008060006060848603121561245957600080fd5b833561246481612285565b925060208401356001600160401b0381111561247f57600080fd5b61248b8682870161212f565b925050604084013561249c81612285565b809150509250925092565b80516122a58161223e565b6000602082840312156124c457600080fd5b81516122378161223e565b80516001600160601b03811681146122a557600080fd5b805160ff811681146122a557600080fd5b80516122a581612085565b600082601f83011261251357600080fd5b815161252161214e82612108565b81815284602083860101111561253657600080fd5b6125478260208301602087016121d4565b949350505050565b60006020828403121561256157600080fd5b81516001600160401b038082111561257857600080fd5b9083019060e0828603121561258c57600080fd5b6125946120b0565b61259d836124cf565b81526125ab602084016124cf565b60208201526125bc604084016124e6565b60408201526125cd606084016124a7565b60608201526125de608084016124f7565b60808201526125ef60a084016124f7565b60a082015260c08301518281111561260657600080fd5b61261287828601612502565b60c08301525095945050505050565b634e487b7160e01b600052600160045260246000fd5b60006020828403121561264957600080fd5b815161223781612285565b60006020828403121561266657600080fd5b815161223781612085565b634e487b7160e01b600052602160045260246000fd5b600481106126a557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0383168152604081016122376020830184612687565b6001600160401b0383168152604081016122376020830184612687565b634e487b7160e01b600052603260045260246000fd5b6000808585111561270957600080fd5b8386111561271657600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561274b5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b0383168152604060208201819052600090612547908301846121f8565b6001600160401b038316815260406020820152600061254760408301846121f8565b6000602082840312156127eb57600080fd5b5051919050565b6000806040838503121561280557600080fd5b82516128108161223e565b602084015190925063ffffffff8116811461227a57600080fd5b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b8181101561287d5784516001600160e01b03191683529383019391830191600101612857565b50508093505050506001600160401b0383166040830152949350505050565b6001600160401b0381811683821601908082111561171657634e487b7160e01b600052601160045260246000fd5b600082516128dc8184602087016121d4565b919091019291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220ddb1ae66a5ceea03a2eb8c1a88509861d21b1c2cc2100baae79f78cee3ab1b7664736f6c63430008140033",
526
+ "bytecode": "0x608060405234801561001057600080fd5b506129be806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063608b081e116100b8578063bf7e214f1161007c578063bf7e214f146102ba578063c4d66de8146102da578063d0540443146102ed578063d2192dbf14610318578063dc85dcb11461034b578063f2345aea1461035e57600080fd5b8063608b081e146102475780637a9e5e4b1461027357806384623198146102865780638fb36037146102995780639dfd7b181461019757600080fd5b806344ec4c30116100ff57806344ec4c30146101da5780634a3a1e00146101ed5780635dfa73db146102005780635e85734a146102215780635fa8aad41461023457600080fd5b806312f48f151461013c578063131021d91461015157806322db471c1461019757806330cae187146101aa57806337f135d7146101bd575b600080fd5b61014f61014a36600461220e565b610371565b005b61018160405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161018e91906122ad565b60405180910390f35b61014f6101a53660046122ce565b61038e565b61014f6101b836600461232c565b6103a1565b6101c5600081565b60405163ffffffff909116815260200161018e565b61014f6101e836600461220e565b6103b4565b61014f6101fb36600461235a565b6105b1565b61020961271081565b6040516001600160401b03909116815260200161018e565b61014f61022f366004612378565b6105c6565b61014f61024236600461220e565b610816565b6101816040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b81525081565b61014f6102813660046123a6565b61082b565b61014f6102943660046123c3565b6108ae565b6102a1610a1c565b6040516001600160e01b0319909116815260200161018e565b6102c2610a55565b6040516001600160a01b03909116815260200161018e565b61014f6102e83660046123a6565b610a71565b6101816040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b61032b61032636600461246d565b610dca565b604080516001600160401b0393841681529290911660208301520161018e565b61014f6103593660046123c3565b610e1d565b61014f61036c3660046124c6565b610f45565b61037e335b600036610f69565b61038a82826001611067565b5050565b61039733610376565b61038a8282611110565b6103aa33610376565b61038a82826111a4565b6103bd33610376565b6004805460405163c3c5a54760e01b81526001600160a01b038581169382019390935291169063c3c5a54790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190612534565b61045a576040516306ad3ea560e51b81526001600160a01b03831660048201526024015b60405180910390fd5b600480546040516308b09a5f60e41b81526001600160a01b038581169382019390935260009290911690638b09a5f090602401600060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d291908101906125d1565b60200151600480546003546040516308b09a5f60e41b81526001600160a01b03918216938101939093529293506000921690638b09a5f090602401600060405180830381865afa15801561052a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055291908101906125d1565b51905061055f8282611366565b1561059f5760405163f7ddf01d60e01b81526001600160a01b03851660048201526001600160601b03808416602483015282166044820152606401610451565b6105ab84846002611067565b50505050565b6105ba33610376565b61038a828260016113f4565b6105cf33610376565b6105df6105da6114f0565b61156e565b6001146105ee576105ee6126a3565b61060a6105f96114f0565b6003546001600160a01b0316611675565b610616576106166126a3565b61061e6117a7565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906126b9565b6001600160401b03166106b46106af6117e2565b61181d565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561070d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073191906126b9565b6001600160401b031614610747576107476126a3565b6001600160a01b03821615610775576107616105da6117e2565b600114610770576107706126a3565b61078d565b6107806105da6117e2565b1561078d5761078d6126a3565b806001600160a01b0316826001600160a01b0316036107ae576107ae6126a3565b6107bf6107b96117e2565b8261198e565b6001600160a01b038216156107df576107df6107d96117e2565b83611a67565b6107ea6105da6117e2565b6001146107f9576107f96126a3565b61080a6108046117e2565b82611675565b61038a5761038a6126a3565b61081f33610376565b61038a82826003611067565b33610834610a55565b6001600160a01b0316816001600160a01b03161461086f5760405162d1953b60e31b81526001600160a01b0382166004820152602401610451565b816001600160a01b03163b6000036108a5576040516361798f2f60e11b81526001600160a01b0383166004820152602401610451565b61038a82611b39565b6108b733610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c906108ef9088906004016122ad565b602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093091906126d6565b905060036001600160a01b03821660009081526020819052604090205460ff166003811115610961576109616126f3565b036109845780600360405163ecec011f60e01b815260040161045192919061272b565b60036001600160401b03831660009081526001602052604090205460ff1660038111156109b3576109b36126f3565b036109d657816003604051630bb1a0c760e01b8152600401610451929190612748565b610a1581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611b9a915050565b5050505050565b600080516020612969833981519152805460009190600160a01b900460ff16610a46576000610a4f565b638fb3603760e01b5b91505090565b600080516020612969833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610ab65750825b90506000826001600160401b03166001148015610ad25750303b155b905081158015610ae0575080155b15610afe5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b2857845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9191906126d6565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf791906126d6565b9050610c0281611c53565b60028054600380546001600160a01b038d81166001600160a01b03199283161790925560048054878416921691909117905567ffffffffffffffff19908416600160401b02166001600160e01b031990911617612710179055610c92610c666114f0565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525060016113f4565b610cce610c9d6117e2565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525060016113f4565b610cdf610cd96114f0565b8461198e565b610d10306040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b8152506001611067565b60408051600180825281830190925260009160208083019080368337019050509050635e85734a60e01b81600081518110610d4d57610d4d612765565b6001600160e01b031990921660209283029190910190910152610d783082610d736114f0565b611b9a565b505050508315610dc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610dd633610376565b610dde611c67565b9092509050610def828560036113f4565b610dfb818460036113f4565b610e0582826111a4565b610e1681610e116117e2565b6111a4565b9250929050565b610e2633610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c90610e5e9088906004016122ad565b602060405180830381865afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f91906126d6565b905060016001600160a01b03821660009081526020819052604090205460ff166003811115610ed057610ed06126f3565b03610ef35780600160405163ecec011f60e01b815260040161045192919061272b565b60016001600160401b03831660009081526001602052604090205460ff166003811115610f2257610f226126f3565b036109d657816001604051630bb1a0c760e01b8152600401610451929190612748565b610f4e33610376565b610f5a838360026113f4565b610f6483826111a4565b505050565b600080516020612969833981519152600080610fa4610f86610a55565b8730610f96600460008a8c61277b565b610f9f916127a5565b611daa565b9150915081610dc25763ffffffff81161561104457825460ff60a01b1916600160a01b178355610fd2610a55565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611001939291906127d5565b600060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b5050845460ff60a01b1916855550610dc29050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610451565b6001600160a01b0383166000908152602081905260409020805482919060ff1916600183600381111561109c5761109c6126f3565b02179055506002546040516317ea2ab560e21b8152600160401b9091046001600160a01b031690635fa8aad4906110d99086908690600401612815565b600060405180830381600087803b1580156110f357600080fd5b505af1158015611107573d6000803e3d6000fd5b50505050505050565b6001600160a01b03821660009081526020819052604090205460ff166001816003811115611140576111406126f3565b0361116257828160405163ecec011f60e01b815260040161045192919061272b565b60025460405163167bd39560e01b81526001600160a01b0385811660048301528415156024830152600160401b9092049091169063167bd395906044016110d9565b60016001600160401b03831660009081526001602052604090205460ff1660038111156111d3576111d36126f3565b036111f657816001604051630bb1a0c760e01b8152600401610451929190612748565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906330cae1879073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d91906126b9565b604051631517388760e21b81526001600160401b038516600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130991906126b9565b6040516001600160e01b031960e085901b1681526001600160401b039283166004820152911660248201526044015b600060405180830381600087803b15801561135257600080fd5b505af1158015610dc2573d6000803e3d6000fd5b6040516399009c5160e01b81526001600160601b0380841660048301528216602482015260009073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156113c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ed9190612534565b9392505050565b6113fe8382611eb6565b6001600160401b03831660009081526001602081905260409091208054839260ff1990911690836003811115611436576114366126f3565b0217905550600254604051631517388760e21b81526001600160401b0385166004820152600160401b9091046001600160a01b0316906368ed5d2e9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d291906126b9565b846040518363ffffffff1660e01b81526004016110d9929190612839565b6040516368aebf7b60e01b8152610a28600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af4158015611545573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156991906126b9565b905090565b600254604051631517388760e21b81526001600160401b0383166004820152600091600160401b90046001600160a01b03169063a5808e2f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160791906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f919061285b565b92915050565b600254604051631517388760e21b81526001600160401b03841660048201526000918291600160401b9091046001600160a01b03169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156116ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171191906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa158015611763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117879190612874565b909250905063ffffffff8116156117a0576117a06126a3565b5092915050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b6040516368aebf7b60e01b8152600a600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b600254604051631517388760e21b81526001600160401b038316600482015260009173__$1d92393fa9ccd763988368ce8a1cb90d26$__916368aebf7b91600160401b90046001600160a01b03169063530dd45690849063545ce21c90602401602060405180830381865af415801561189a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118be91906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192691906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906126b9565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2591906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401611338565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b03169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe91906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401611338565b60008051602061296983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b600254604051631517388760e21b81526001600160401b0383166004820152600160401b9091046001600160a01b0316906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906126b9565b6040518463ffffffff1660e01b81526004016110d9939291906128ac565b611c5b612071565b611c64816120bc565b50565b60025460009081906001600160401b031681611c8482600161291e565b9050611c9182600261291e565b6002805467ffffffffffffffff19166001600160401b039283161790556040516368aebf7b60e01b8152908316600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2391906126b9565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da291906126b9565b925050509091565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611e19919061294c565b600060405180830381855afa9150503d8060008114611e54576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b606091505b50915091508115611eab576040815110611e8b5780806020019051810190611e819190612874565b9094509250611eab565b6020815110611eab5780806020019051810190611ea89190612534565b93505b505094509492505050565b604051631517388760e21b81526001600160401b038316600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3591906126b9565b6001600160401b031690506003826003811115611f5457611f546126f3565b148015611f62575061271081105b15611f8b5760405163be511cc160e01b81526001600160401b0384166004820152602401610451565b6003826003811115611f9f57611f9f6126f3565b14158015611faf57506127108110155b80156120485750611fbe6120cd565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b91906126b9565b6001600160401b03168114155b15610f6457604051630e08ff2d60e11b81526001600160401b0384166004820152602401610451565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166120ba57604051631afcd79f60e31b815260040160405180910390fd5b565b6120c4612071565b611c6481611b39565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b6001600160a01b0381168114611c6457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561215b5761215b612123565b60405290565b604051601f8201601f191681016001600160401b038111828210171561218957612189612123565b604052919050565b60006001600160401b038211156121aa576121aa612123565b50601f01601f191660200190565b600082601f8301126121c957600080fd5b81356121dc6121d782612191565b612161565b8181528460208386010111156121f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561222157600080fd5b823561222c8161210e565b915060208301356001600160401b0381111561224757600080fd5b612253858286016121b8565b9150509250929050565b60005b83811015612278578181015183820152602001612260565b50506000910152565b6000815180845261229981602086016020860161225d565b601f01601f19169290920160200192915050565b6020815260006113ed6020830184612281565b8015158114611c6457600080fd5b600080604083850312156122e157600080fd5b82356122ec8161210e565b915060208301356122fc816122c0565b809150509250929050565b6001600160401b0381168114611c6457600080fd5b803561232781612307565b919050565b6000806040838503121561233f57600080fd5b823561234a81612307565b915060208301356122fc81612307565b6000806040838503121561236d57600080fd5b823561222c81612307565b6000806040838503121561238b57600080fd5b82356123968161210e565b915060208301356122fc8161210e565b6000602082840312156123b857600080fd5b81356113ed8161210e565b600080600080606085870312156123d957600080fd5b84356001600160401b03808211156123f057600080fd5b6123fc888389016121b8565b9550602087013591508082111561241257600080fd5b818701915087601f83011261242657600080fd5b81358181111561243557600080fd5b8860208260051b850101111561244a57600080fd5b6020830195508094505050506124626040860161231c565b905092959194509250565b6000806040838503121561248057600080fd5b82356001600160401b038082111561249757600080fd5b6124a3868387016121b8565b935060208501359150808211156124b957600080fd5b50612253858286016121b8565b6000806000606084860312156124db57600080fd5b83356124e681612307565b925060208401356001600160401b0381111561250157600080fd5b61250d868287016121b8565b925050604084013561251e81612307565b809150509250925092565b8051612327816122c0565b60006020828403121561254657600080fd5b81516113ed816122c0565b80516001600160601b038116811461232757600080fd5b805160ff8116811461232757600080fd5b80516123278161210e565b600082601f83011261259557600080fd5b81516125a36121d782612191565b8181528460208386010111156125b857600080fd5b6125c982602083016020870161225d565b949350505050565b6000602082840312156125e357600080fd5b81516001600160401b03808211156125fa57600080fd5b9083019060e0828603121561260e57600080fd5b612616612139565b61261f83612551565b815261262d60208401612551565b602082015261263e60408401612568565b604082015261264f60608401612529565b606082015261266060808401612579565b608082015261267160a08401612579565b60a082015260c08301518281111561268857600080fd5b61269487828601612584565b60c08301525095945050505050565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156126cb57600080fd5b81516113ed81612307565b6000602082840312156126e857600080fd5b81516113ed8161210e565b634e487b7160e01b600052602160045260246000fd5b6004811061272757634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0383168152604081016113ed6020830184612709565b6001600160401b0383168152604081016113ed6020830184612709565b634e487b7160e01b600052603260045260246000fd5b6000808585111561278b57600080fd5b8386111561279857600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156127cd5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b03831681526040602082018190526000906125c990830184612281565b6001600160401b03831681526040602082015260006125c96040830184612281565b60006020828403121561286d57600080fd5b5051919050565b6000806040838503121561288757600080fd5b8251612892816122c0565b602084015190925063ffffffff811681146122fc57600080fd5b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156128ff5784516001600160e01b031916835293830193918301916001016128d9565b50508093505050506001600160401b0383166040830152949350505050565b6001600160401b038181168382160190808211156117a057634e487b7160e01b600052601160045260246000fd5b6000825161295e81846020870161225d565b919091019291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220e743d85b537869a9d97225b2487f0772a2f4defe6d06673dbe1942ff80295cf964736f6c63430008140033",
527
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063608b081e116100b8578063bf7e214f1161007c578063bf7e214f146102ba578063c4d66de8146102da578063d0540443146102ed578063d2192dbf14610318578063dc85dcb11461034b578063f2345aea1461035e57600080fd5b8063608b081e146102475780637a9e5e4b1461027357806384623198146102865780638fb36037146102995780639dfd7b181461019757600080fd5b806344ec4c30116100ff57806344ec4c30146101da5780634a3a1e00146101ed5780635dfa73db146102005780635e85734a146102215780635fa8aad41461023457600080fd5b806312f48f151461013c578063131021d91461015157806322db471c1461019757806330cae187146101aa57806337f135d7146101bd575b600080fd5b61014f61014a36600461220e565b610371565b005b61018160405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161018e91906122ad565b60405180910390f35b61014f6101a53660046122ce565b61038e565b61014f6101b836600461232c565b6103a1565b6101c5600081565b60405163ffffffff909116815260200161018e565b61014f6101e836600461220e565b6103b4565b61014f6101fb36600461235a565b6105b1565b61020961271081565b6040516001600160401b03909116815260200161018e565b61014f61022f366004612378565b6105c6565b61014f61024236600461220e565b610816565b6101816040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b81525081565b61014f6102813660046123a6565b61082b565b61014f6102943660046123c3565b6108ae565b6102a1610a1c565b6040516001600160e01b0319909116815260200161018e565b6102c2610a55565b6040516001600160a01b03909116815260200161018e565b61014f6102e83660046123a6565b610a71565b6101816040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b61032b61032636600461246d565b610dca565b604080516001600160401b0393841681529290911660208301520161018e565b61014f6103593660046123c3565b610e1d565b61014f61036c3660046124c6565b610f45565b61037e335b600036610f69565b61038a82826001611067565b5050565b61039733610376565b61038a8282611110565b6103aa33610376565b61038a82826111a4565b6103bd33610376565b6004805460405163c3c5a54760e01b81526001600160a01b038581169382019390935291169063c3c5a54790602401602060405180830381865afa158015610409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042d9190612534565b61045a576040516306ad3ea560e51b81526001600160a01b03831660048201526024015b60405180910390fd5b600480546040516308b09a5f60e41b81526001600160a01b038581169382019390935260009290911690638b09a5f090602401600060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104d291908101906125d1565b60200151600480546003546040516308b09a5f60e41b81526001600160a01b03918216938101939093529293506000921690638b09a5f090602401600060405180830381865afa15801561052a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261055291908101906125d1565b51905061055f8282611366565b1561059f5760405163f7ddf01d60e01b81526001600160a01b03851660048201526001600160601b03808416602483015282166044820152606401610451565b6105ab84846002611067565b50505050565b6105ba33610376565b61038a828260016113f4565b6105cf33610376565b6105df6105da6114f0565b61156e565b6001146105ee576105ee6126a3565b61060a6105f96114f0565b6003546001600160a01b0316611675565b610616576106166126a3565b61061e6117a7565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906126b9565b6001600160401b03166106b46106af6117e2565b61181d565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561070d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073191906126b9565b6001600160401b031614610747576107476126a3565b6001600160a01b03821615610775576107616105da6117e2565b600114610770576107706126a3565b61078d565b6107806105da6117e2565b1561078d5761078d6126a3565b806001600160a01b0316826001600160a01b0316036107ae576107ae6126a3565b6107bf6107b96117e2565b8261198e565b6001600160a01b038216156107df576107df6107d96117e2565b83611a67565b6107ea6105da6117e2565b6001146107f9576107f96126a3565b61080a6108046117e2565b82611675565b61038a5761038a6126a3565b61081f33610376565b61038a82826003611067565b33610834610a55565b6001600160a01b0316816001600160a01b03161461086f5760405162d1953b60e31b81526001600160a01b0382166004820152602401610451565b816001600160a01b03163b6000036108a5576040516361798f2f60e11b81526001600160a01b0383166004820152602401610451565b61038a82611b39565b6108b733610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c906108ef9088906004016122ad565b602060405180830381865afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093091906126d6565b905060036001600160a01b03821660009081526020819052604090205460ff166003811115610961576109616126f3565b036109845780600360405163ecec011f60e01b815260040161045192919061272b565b60036001600160401b03831660009081526001602052604090205460ff1660038111156109b3576109b36126f3565b036109d657816003604051630bb1a0c760e01b8152600401610451929190612748565b610a1581858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611b9a915050565b5050505050565b600080516020612969833981519152805460009190600160a01b900460ff16610a46576000610a4f565b638fb3603760e01b5b91505090565b600080516020612969833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610ab65750825b90506000826001600160401b03166001148015610ad25750303b155b905081158015610ae0575080155b15610afe5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b2857845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9191906126d6565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf791906126d6565b9050610c0281611c53565b60028054600380546001600160a01b038d81166001600160a01b03199283161790925560048054878416921691909117905567ffffffffffffffff19908416600160401b02166001600160e01b031990911617612710179055610c92610c666114f0565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525060016113f4565b610cce610c9d6117e2565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525060016113f4565b610cdf610cd96114f0565b8461198e565b610d10306040518060400160405280600d81526020016c24b739ba30b731b2a0b236b4b760991b8152506001611067565b60408051600180825281830190925260009160208083019080368337019050509050635e85734a60e01b81600081518110610d4d57610d4d612765565b6001600160e01b031990921660209283029190910190910152610d783082610d736114f0565b611b9a565b505050508315610dc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600080610dd633610376565b610dde611c67565b9092509050610def828560036113f4565b610dfb818460036113f4565b610e0582826111a4565b610e1681610e116117e2565b6111a4565b9250929050565b610e2633610376565b600254604051630d95920760e21b8152600091600160401b90046001600160a01b031690633656481c90610e5e9088906004016122ad565b602060405180830381865afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f91906126d6565b905060016001600160a01b03821660009081526020819052604090205460ff166003811115610ed057610ed06126f3565b03610ef35780600160405163ecec011f60e01b815260040161045192919061272b565b60016001600160401b03831660009081526001602052604090205460ff166003811115610f2257610f226126f3565b036109d657816001604051630bb1a0c760e01b8152600401610451929190612748565b610f4e33610376565b610f5a838360026113f4565b610f6483826111a4565b505050565b600080516020612969833981519152600080610fa4610f86610a55565b8730610f96600460008a8c61277b565b610f9f916127a5565b611daa565b9150915081610dc25763ffffffff81161561104457825460ff60a01b1916600160a01b178355610fd2610a55565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611001939291906127d5565b600060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b5050845460ff60a01b1916855550610dc29050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610451565b6001600160a01b0383166000908152602081905260409020805482919060ff1916600183600381111561109c5761109c6126f3565b02179055506002546040516317ea2ab560e21b8152600160401b9091046001600160a01b031690635fa8aad4906110d99086908690600401612815565b600060405180830381600087803b1580156110f357600080fd5b505af1158015611107573d6000803e3d6000fd5b50505050505050565b6001600160a01b03821660009081526020819052604090205460ff166001816003811115611140576111406126f3565b0361116257828160405163ecec011f60e01b815260040161045192919061272b565b60025460405163167bd39560e01b81526001600160a01b0385811660048301528415156024830152600160401b9092049091169063167bd395906044016110d9565b60016001600160401b03831660009081526001602052604090205460ff1660038111156111d3576111d36126f3565b036111f657816001604051630bb1a0c760e01b8152600401610451929190612748565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906330cae1879073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d91906126b9565b604051631517388760e21b81526001600160401b038516600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130991906126b9565b6040516001600160e01b031960e085901b1681526001600160401b039283166004820152911660248201526044015b600060405180830381600087803b15801561135257600080fd5b505af1158015610dc2573d6000803e3d6000fd5b6040516399009c5160e01b81526001600160601b0380841660048301528216602482015260009073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156113c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ed9190612534565b9392505050565b6113fe8382611eb6565b6001600160401b03831660009081526001602081905260409091208054839260ff1990911690836003811115611436576114366126f3565b0217905550600254604051631517388760e21b81526001600160401b0385166004820152600160401b9091046001600160a01b0316906368ed5d2e9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d291906126b9565b846040518363ffffffff1660e01b81526004016110d9929190612839565b6040516368aebf7b60e01b8152610a28600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af4158015611545573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156991906126b9565b905090565b600254604051631517388760e21b81526001600160401b0383166004820152600091600160401b90046001600160a01b03169063a5808e2f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160791906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f919061285b565b92915050565b600254604051631517388760e21b81526001600160401b03841660048201526000918291600160401b9091046001600160a01b03169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156116ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171191906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03861660248201526044016040805180830381865afa158015611763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117879190612874565b909250905063ffffffff8116156117a0576117a06126a3565b5092915050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b6040516368aebf7b60e01b8152600a600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b600254604051631517388760e21b81526001600160401b038316600482015260009173__$1d92393fa9ccd763988368ce8a1cb90d26$__916368aebf7b91600160401b90046001600160a01b03169063530dd45690849063545ce21c90602401602060405180830381865af415801561189a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118be91906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192691906126b9565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906126b9565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b0316906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2591906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401611338565b600254604051631517388760e21b81526001600160401b0384166004820152600160401b9091046001600160a01b03169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe91906126b9565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401611338565b60008051602061296983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b600254604051631517388760e21b81526001600160401b0383166004820152600160401b9091046001600160a01b0316906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3591906126b9565b6040518463ffffffff1660e01b81526004016110d9939291906128ac565b611c5b612071565b611c64816120bc565b50565b60025460009081906001600160401b031681611c8482600161291e565b9050611c9182600261291e565b6002805467ffffffffffffffff19166001600160401b039283161790556040516368aebf7b60e01b8152908316600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2391906126b9565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da291906126b9565b925050509091565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611e19919061294c565b600060405180830381855afa9150503d8060008114611e54576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b606091505b50915091508115611eab576040815110611e8b5780806020019051810190611e819190612874565b9094509250611eab565b6020815110611eab5780806020019051810190611ea89190612534565b93505b505094509492505050565b604051631517388760e21b81526001600160401b038316600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3591906126b9565b6001600160401b031690506003826003811115611f5457611f546126f3565b148015611f62575061271081105b15611f8b5760405163be511cc160e01b81526001600160401b0384166004820152602401610451565b6003826003811115611f9f57611f9f6126f3565b14158015611faf57506127108110155b80156120485750611fbe6120cd565b604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b91906126b9565b6001600160401b03168114155b15610f6457604051630e08ff2d60e11b81526001600160401b0384166004820152602401610451565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166120ba57604051631afcd79f60e31b815260040160405180910390fd5b565b6120c4612071565b611c6481611b39565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401611528565b6001600160a01b0381168114611c6457600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561215b5761215b612123565b60405290565b604051601f8201601f191681016001600160401b038111828210171561218957612189612123565b604052919050565b60006001600160401b038211156121aa576121aa612123565b50601f01601f191660200190565b600082601f8301126121c957600080fd5b81356121dc6121d782612191565b612161565b8181528460208386010111156121f157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561222157600080fd5b823561222c8161210e565b915060208301356001600160401b0381111561224757600080fd5b612253858286016121b8565b9150509250929050565b60005b83811015612278578181015183820152602001612260565b50506000910152565b6000815180845261229981602086016020860161225d565b601f01601f19169290920160200192915050565b6020815260006113ed6020830184612281565b8015158114611c6457600080fd5b600080604083850312156122e157600080fd5b82356122ec8161210e565b915060208301356122fc816122c0565b809150509250929050565b6001600160401b0381168114611c6457600080fd5b803561232781612307565b919050565b6000806040838503121561233f57600080fd5b823561234a81612307565b915060208301356122fc81612307565b6000806040838503121561236d57600080fd5b823561222c81612307565b6000806040838503121561238b57600080fd5b82356123968161210e565b915060208301356122fc8161210e565b6000602082840312156123b857600080fd5b81356113ed8161210e565b600080600080606085870312156123d957600080fd5b84356001600160401b03808211156123f057600080fd5b6123fc888389016121b8565b9550602087013591508082111561241257600080fd5b818701915087601f83011261242657600080fd5b81358181111561243557600080fd5b8860208260051b850101111561244a57600080fd5b6020830195508094505050506124626040860161231c565b905092959194509250565b6000806040838503121561248057600080fd5b82356001600160401b038082111561249757600080fd5b6124a3868387016121b8565b935060208501359150808211156124b957600080fd5b50612253858286016121b8565b6000806000606084860312156124db57600080fd5b83356124e681612307565b925060208401356001600160401b0381111561250157600080fd5b61250d868287016121b8565b925050604084013561251e81612307565b809150509250925092565b8051612327816122c0565b60006020828403121561254657600080fd5b81516113ed816122c0565b80516001600160601b038116811461232757600080fd5b805160ff8116811461232757600080fd5b80516123278161210e565b600082601f83011261259557600080fd5b81516125a36121d782612191565b8181528460208386010111156125b857600080fd5b6125c982602083016020870161225d565b949350505050565b6000602082840312156125e357600080fd5b81516001600160401b03808211156125fa57600080fd5b9083019060e0828603121561260e57600080fd5b612616612139565b61261f83612551565b815261262d60208401612551565b602082015261263e60408401612568565b604082015261264f60608401612529565b606082015261266060808401612579565b608082015261267160a08401612579565b60a082015260c08301518281111561268857600080fd5b61269487828601612584565b60c08301525095945050505050565b634e487b7160e01b600052600160045260246000fd5b6000602082840312156126cb57600080fd5b81516113ed81612307565b6000602082840312156126e857600080fd5b81516113ed8161210e565b634e487b7160e01b600052602160045260246000fd5b6004811061272757634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0383168152604081016113ed6020830184612709565b6001600160401b0383168152604081016113ed6020830184612709565b634e487b7160e01b600052603260045260246000fd5b6000808585111561278b57600080fd5b8386111561279857600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156127cd5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b03831681526040602082018190526000906125c990830184612281565b6001600160401b03831681526040602082015260006125c96040830184612281565b60006020828403121561286d57600080fd5b5051919050565b6000806040838503121561288757600080fd5b8251612892816122c0565b602084015190925063ffffffff811681146122fc57600080fd5b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156128ff5784516001600160e01b031916835293830193918301916001016128d9565b50508093505050506001600160401b0383166040830152949350505050565b6001600160401b038181168382160190808211156117a057634e487b7160e01b600052601160045260246000fd5b6000825161295e81846020870161225d565b919091019291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220e743d85b537869a9d97225b2487f0772a2f4defe6d06673dbe1942ff80295cf964736f6c63430008140033",
528
528
  "linkReferences": {
529
+ "contracts/type/NftId.sol": {
530
+ "NftIdLib": [
531
+ {
532
+ "length": 20,
533
+ "start": 5039
534
+ }
535
+ ]
536
+ },
529
537
  "contracts/type/RoleId.sol": {
530
538
  "RoleIdLib": [
531
539
  {
532
540
  "length": 20,
533
- "start": 1633
541
+ "start": 1629
534
542
  },
535
543
  {
536
544
  "length": 20,
537
- "start": 1783
545
+ "start": 1779
538
546
  },
539
547
  {
540
548
  "length": 20,
541
- "start": 4691
549
+ "start": 4687
542
550
  },
543
551
  {
544
552
  "length": 20,
545
- "start": 4815
553
+ "start": 4811
546
554
  },
547
555
  {
548
556
  "length": 20,
549
- "start": 5130
557
+ "start": 5268
550
558
  },
551
559
  {
552
560
  "length": 20,
553
- "start": 5280
561
+ "start": 5418
554
562
  },
555
563
  {
556
564
  "length": 20,
557
- "start": 5439
565
+ "start": 5577
558
566
  },
559
567
  {
560
568
  "length": 20,
561
- "start": 5705
569
+ "start": 5843
562
570
  },
563
571
  {
564
572
  "length": 20,
565
- "start": 5974
573
+ "start": 6112
566
574
  },
567
575
  {
568
576
  "length": 20,
569
- "start": 6034
577
+ "start": 6171
570
578
  },
571
579
  {
572
580
  "length": 20,
573
- "start": 6104
581
+ "start": 6241
574
582
  },
575
583
  {
576
584
  "length": 20,
577
- "start": 6494
585
+ "start": 6631
578
586
  },
579
587
  {
580
588
  "length": 20,
581
- "start": 6711
589
+ "start": 6848
582
590
  },
583
591
  {
584
592
  "length": 20,
585
- "start": 7022
593
+ "start": 7159
586
594
  },
587
595
  {
588
596
  "length": 20,
589
- "start": 7260
597
+ "start": 7397
590
598
  },
591
599
  {
592
600
  "length": 20,
593
- "start": 7387
601
+ "start": 7524
594
602
  },
595
603
  {
596
604
  "length": 20,
597
- "start": 7790
605
+ "start": 7927
598
606
  },
599
607
  {
600
608
  "length": 20,
601
- "start": 8052
609
+ "start": 8189
602
610
  },
603
611
  {
604
612
  "length": 20,
605
- "start": 8323
613
+ "start": 8460
606
614
  }
607
615
  ]
608
616
  }
609
617
  },
610
618
  "deployedLinkReferences": {
619
+ "contracts/type/NftId.sol": {
620
+ "NftIdLib": [
621
+ {
622
+ "length": 20,
623
+ "start": 5007
624
+ }
625
+ ]
626
+ },
611
627
  "contracts/type/RoleId.sol": {
612
628
  "RoleIdLib": [
613
629
  {
614
630
  "length": 20,
615
- "start": 1601
631
+ "start": 1597
616
632
  },
617
633
  {
618
634
  "length": 20,
619
- "start": 1751
635
+ "start": 1747
620
636
  },
621
637
  {
622
638
  "length": 20,
623
- "start": 4659
639
+ "start": 4655
624
640
  },
625
641
  {
626
642
  "length": 20,
627
- "start": 4783
643
+ "start": 4779
628
644
  },
629
645
  {
630
646
  "length": 20,
631
- "start": 5098
647
+ "start": 5236
632
648
  },
633
649
  {
634
650
  "length": 20,
635
- "start": 5248
651
+ "start": 5386
636
652
  },
637
653
  {
638
654
  "length": 20,
639
- "start": 5407
655
+ "start": 5545
640
656
  },
641
657
  {
642
658
  "length": 20,
643
- "start": 5673
659
+ "start": 5811
644
660
  },
645
661
  {
646
662
  "length": 20,
647
- "start": 5942
663
+ "start": 6080
648
664
  },
649
665
  {
650
666
  "length": 20,
651
- "start": 6002
667
+ "start": 6139
652
668
  },
653
669
  {
654
670
  "length": 20,
655
- "start": 6072
671
+ "start": 6209
656
672
  },
657
673
  {
658
674
  "length": 20,
659
- "start": 6462
675
+ "start": 6599
660
676
  },
661
677
  {
662
678
  "length": 20,
663
- "start": 6679
679
+ "start": 6816
664
680
  },
665
681
  {
666
682
  "length": 20,
667
- "start": 6990
683
+ "start": 7127
668
684
  },
669
685
  {
670
686
  "length": 20,
671
- "start": 7228
687
+ "start": 7365
672
688
  },
673
689
  {
674
690
  "length": 20,
675
- "start": 7355
691
+ "start": 7492
676
692
  },
677
693
  {
678
694
  "length": 20,
679
- "start": 7758
695
+ "start": 7895
680
696
  },
681
697
  {
682
698
  "length": 20,
683
- "start": 8020
699
+ "start": 8157
684
700
  },
685
701
  {
686
702
  "length": 20,
687
- "start": 8291
703
+ "start": 8428
688
704
  }
689
705
  ]
690
706
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/2524dfb696dedd4fe68aef311e06e791.json"
3
+ "buildInfo": "../../../build-info/6efa1c926ce3374a2355eff3df062902.json"
4
4
  }