@etherisc/gif-next 0.0.2-c9711ab-345 → 0.0.2-c9ad04b-619

Sign up to get free protection for your applications and to get access to all the features.
Files changed (351) hide show
  1. package/README.md +4 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +21 -21
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +42 -248
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -222
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +129 -286
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -120
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -37
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -62
  30. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  31. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  32. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  33. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  34. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  38. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  39. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  40. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +71 -71
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +225 -68
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +34 -146
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +30 -81
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +220 -102
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +32 -238
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  76. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -37
  79. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -222
  82. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
  84. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +29 -80
  86. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  87. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +5 -227
  88. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  89. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  90. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  91. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +76 -235
  92. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +51 -110
  94. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +0 -31
  96. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +5 -42
  98. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +63 -78
  100. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/Pool.sol/Pool.json +5 -227
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +101 -332
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +32 -135
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -89
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  111. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +3 -225
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  115. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +185 -175
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +53 -100
  118. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  120. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
  122. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +120 -140
  124. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  126. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -37
  128. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  129. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  130. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +184 -380
  132. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +44 -111
  134. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -270
  136. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +52 -123
  138. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  139. package/artifacts/contracts/product/Product.sol/Product.json +3 -225
  140. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  141. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  142. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +221 -21
  148. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  150. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/Registry.sol/Registry.json +419 -82
  152. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  153. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +229 -114
  154. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
  156. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -73
  158. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  160. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
  162. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  164. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  166. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  167. package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
  168. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +84 -212
  170. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +55 -114
  172. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -37
  179. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  188. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -222
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  195. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Service.sol/Service.json +0 -112
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  208. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  210. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  212. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
  215. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
  217. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +42 -89
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -138
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +26 -77
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +84 -84
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  232. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  243. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  253. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  255. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  259. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  263. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  266. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  270. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  271. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  272. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +14 -65
  273. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  274. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  275. package/contracts/authorization/AccessAdmin.sol +1 -3
  276. package/contracts/authorization/Authorization.sol +0 -1
  277. package/contracts/distribution/Distribution.sol +1 -1
  278. package/contracts/distribution/DistributionService.sol +26 -27
  279. package/contracts/distribution/IDistributionService.sol +9 -5
  280. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  281. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  282. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  283. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  284. package/contracts/instance/IInstance.sol +7 -30
  285. package/contracts/instance/Instance.sol +10 -35
  286. package/contracts/instance/InstanceAdmin.sol +23 -4
  287. package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
  288. package/contracts/instance/InstanceReader.sol +24 -7
  289. package/contracts/instance/InstanceService.sol +60 -36
  290. package/contracts/instance/InstanceStore.sol +11 -1
  291. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  292. package/contracts/instance/module/IComponents.sol +1 -1
  293. package/contracts/instance/module/IPolicy.sol +22 -22
  294. package/contracts/oracle/Oracle.sol +2 -1
  295. package/contracts/oracle/OracleService.sol +4 -3
  296. package/contracts/pool/BundleService.sol +13 -26
  297. package/contracts/pool/IBundleService.sol +2 -3
  298. package/contracts/pool/IPoolService.sol +29 -18
  299. package/contracts/pool/Pool.sol +15 -17
  300. package/contracts/pool/PoolService.sol +45 -98
  301. package/contracts/product/ApplicationService.sol +41 -23
  302. package/contracts/product/BasicProduct.sol +1 -0
  303. package/contracts/product/ClaimService.sol +116 -46
  304. package/contracts/product/IApplicationService.sol +1 -0
  305. package/contracts/product/IClaimService.sol +28 -5
  306. package/contracts/product/IPolicyService.sol +21 -32
  307. package/contracts/product/IPricingService.sol +7 -7
  308. package/contracts/product/IProductComponent.sol +0 -1
  309. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  310. package/contracts/product/PolicyService.sol +230 -186
  311. package/contracts/product/PricingService.sol +44 -43
  312. package/contracts/product/Product.sol +50 -36
  313. package/contracts/product/{ProductService.sol → RiskService.sol} +5 -7
  314. package/contracts/product/{ProductServiceManager.sol → RiskServiceManager.sol} +8 -8
  315. package/contracts/registry/ChainNft.sol +65 -32
  316. package/contracts/registry/IRegistry.sol +49 -15
  317. package/contracts/registry/Registry.sol +321 -195
  318. package/contracts/registry/RegistryAdmin.sol +150 -51
  319. package/contracts/registry/RegistryService.sol +2 -2
  320. package/contracts/registry/ReleaseRegistry.sol +12 -6
  321. package/contracts/registry/ServiceAuthorizationV3.sol +2 -3
  322. package/contracts/shared/Component.sol +17 -29
  323. package/contracts/shared/ComponentService.sol +16 -26
  324. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  325. package/contracts/shared/IComponent.sol +4 -4
  326. package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
  327. package/contracts/shared/IPolicyHolder.sol +0 -9
  328. package/contracts/shared/InitializableERC165.sol +2 -2
  329. package/contracts/shared/InstanceLinkedComponent.sol +4 -4
  330. package/contracts/shared/NftOwnable.sol +5 -5
  331. package/contracts/shared/PolicyHolder.sol +5 -48
  332. package/contracts/shared/Registerable.sol +4 -4
  333. package/contracts/shared/RegistryLinked.sol +3 -2
  334. package/contracts/shared/Service.sol +5 -5
  335. package/contracts/shared/TokenHandler.sol +100 -19
  336. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  337. package/contracts/staking/IStaking.sol +2 -1
  338. package/contracts/staking/StakeManagerLib.sol +18 -25
  339. package/contracts/staking/Staking.sol +10 -28
  340. package/contracts/staking/StakingService.sol +10 -14
  341. package/contracts/staking/TargetManagerLib.sol +7 -3
  342. package/contracts/type/ObjectType.sol +15 -11
  343. package/contracts/type/Seconds.sol +8 -0
  344. package/contracts/type/StateId.sol +1 -0
  345. package/contracts/upgradeability/ProxyManager.sol +1 -1
  346. package/package.json +1 -1
  347. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  348. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  349. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  350. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  351. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
@@ -588,105 +588,6 @@
588
588
  "stateMutability": "pure",
589
589
  "type": "function"
590
590
  },
591
- {
592
- "inputs": [],
593
- "name": "initializeERC165",
594
- "outputs": [],
595
- "stateMutability": "nonpayable",
596
- "type": "function"
597
- },
598
- {
599
- "inputs": [
600
- {
601
- "internalType": "address",
602
- "name": "initialOwner",
603
- "type": "address"
604
- },
605
- {
606
- "internalType": "address",
607
- "name": "registryAddress",
608
- "type": "address"
609
- }
610
- ],
611
- "name": "initializeNftOwnable",
612
- "outputs": [],
613
- "stateMutability": "nonpayable",
614
- "type": "function"
615
- },
616
- {
617
- "inputs": [
618
- {
619
- "internalType": "address",
620
- "name": "registryAddress",
621
- "type": "address"
622
- },
623
- {
624
- "internalType": "NftId",
625
- "name": "parentNftId",
626
- "type": "uint96"
627
- },
628
- {
629
- "internalType": "ObjectType",
630
- "name": "objectType",
631
- "type": "uint8"
632
- },
633
- {
634
- "internalType": "bool",
635
- "name": "isInterceptor",
636
- "type": "bool"
637
- },
638
- {
639
- "internalType": "address",
640
- "name": "initialOwner",
641
- "type": "address"
642
- },
643
- {
644
- "internalType": "bytes",
645
- "name": "registryData",
646
- "type": "bytes"
647
- }
648
- ],
649
- "name": "initializeRegisterable",
650
- "outputs": [],
651
- "stateMutability": "nonpayable",
652
- "type": "function"
653
- },
654
- {
655
- "inputs": [
656
- {
657
- "internalType": "address",
658
- "name": "registryAddress",
659
- "type": "address"
660
- }
661
- ],
662
- "name": "initializeRegistryLinked",
663
- "outputs": [],
664
- "stateMutability": "nonpayable",
665
- "type": "function"
666
- },
667
- {
668
- "inputs": [
669
- {
670
- "internalType": "address",
671
- "name": "registry",
672
- "type": "address"
673
- },
674
- {
675
- "internalType": "address",
676
- "name": "authority",
677
- "type": "address"
678
- },
679
- {
680
- "internalType": "address",
681
- "name": "initialOwner",
682
- "type": "address"
683
- }
684
- ],
685
- "name": "initializeService",
686
- "outputs": [],
687
- "stateMutability": "nonpayable",
688
- "type": "function"
689
- },
690
591
  {
691
592
  "inputs": [
692
593
  {
@@ -731,19 +632,6 @@
731
632
  "stateMutability": "nonpayable",
732
633
  "type": "function"
733
634
  },
734
- {
735
- "inputs": [
736
- {
737
- "internalType": "bytes4",
738
- "name": "interfaceId",
739
- "type": "bytes4"
740
- }
741
- ],
742
- "name": "registerInterface",
743
- "outputs": [],
744
- "stateMutability": "nonpayable",
745
- "type": "function"
746
- },
747
635
  {
748
636
  "inputs": [
749
637
  {
@@ -861,26 +749,26 @@
861
749
  "type": "function"
862
750
  }
863
751
  ],
864
- "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6137eb806100d65f395ff3fe608060405234801561000f575f80fd5b5060043610610187575f3560e01c8063644c45e0116100d95780638fb3603711610093578063bf7e214f1161006e578063bf7e214f146103b5578063cf4ee77a146103d2578063f6845663146103e5578063f7c34ee0146103f8575f80fd5b80638fb3603714610371578063ada9652e14610392578063b68d1809146103a6575f80fd5b8063644c45e0146102f3578063675393bf146103105780636c741e78146103235780637a9e5e4b14610343578063893d20e8146103565780638e32e9791461035e575f80fd5b806327bb7a331161014457806336fc697e1161011f57806336fc697e146102a057806349bb9e4b146102a85780634c125e79146102bb5780635ab1bd53146102ce575f80fd5b806327bb7a33146102675780632ccc7da41461027a578063329d6e741461028d575f80fd5b806301ffc9a71461018b5780630d8e6e2c146101cc5780630fec111c146101e8578063138461e0146101fd5780631eff4b221461021d578063214cdb8014610252575b5f80fd5b6101b7610199366004612b15565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101d461040b565b60405162ffffff90911681526020016101c3565b6101f0610492565b6040516101c39190612b6a565b61020561061e565b6040516001600160601b0390911681526020016101c3565b6102447f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101c3565b610265610260366004612b15565b610628565b005b610265610275366004612d48565b610654565b610265610288366004612def565b6106f9565b61026561029b366004612e0a565b61096e565b610265610ab8565b6102656102b6366004612e3b565b610afd565b6102656102c9366004612def565b610bf9565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101c3565b5f80516020613756833981519152546001600160601b0316610205565b61026561031e366004612e87565b610e21565b61032b610f33565b6040516001600160401b0390911681526020016101c3565b610265610351366004612e87565b611029565b6102db6110c1565b61026561036c366004612ea2565b6111f2565b61037961132f565b6040516001600160e01b031990911681526020016101c3565b6102445f8051602061375683398151915281565b604051600d81526020016101c3565b5f80516020613776833981519152546001600160a01b03166102db565b6101b76103e0366004612f2e565b611364565b61032b6103f3366004612f90565b6118ae565b610265610406366004613022565b611d51565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d9190613059565b905090565b61049a612ad8565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610510573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610534919061308b565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c6110c1565b6001600160a01b03168152602001826001018054610599906130a6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906130a6565b80156106105780601f106105e757610100808354040283529160200191610610565b820191905f5260205f20905b8154815290600101906020018083116105f357829003601f168201915b505050505081525091505090565b5f61048d30611dc7565b610630611fc0565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b61065c611fc0565b6106668287611d51565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016106ef8382613129565b5050505050505050565b5f8080610706600b611ff8565b9250925092505f8061071a83878785612094565b90505f816020015160405160200161073291906131fa565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a866080015160405160240161076b929190613223565b60408051601f19818403018152908290529161078691613244565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516107bd9190613244565b5f604051808303815f865af19150503d805f81146107f6576040519150601f19603f3d011682016040523d82523d5f602084013e6107fb565b606091505b5091509150811561092357856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610842573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610866919061324f565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156108bd575f80fd5b505af11580156108cf573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a1610963565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018988608001518560405161095a9392919061326a565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61099061040b565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f291906132a5565b5f805160206137968339815191528054600160401b900460ff1680610a24575080546001600160401b03808416911610155b15610a425760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a6c8361246f565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610ac0611fc0565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b5f805160206137968339815191528054600160401b810460ff1615906001600160401b03165f81158015610b2e5750825b90505f826001600160401b03166001148015610b495750303b155b905081158015610b57575080155b15610b755760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b9f57845460ff60401b1916600160401b1785555b610ba98787612477565b8315610bf057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610c06600b611ff8565b9250925092505f80610c1a83878785612094565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061324f565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610cbc93929190613387565b5f604051808303815f87803b158015610cd3575f80fd5b505af1158015610ce5573d5f803e3d5ffd5b505050505f610cfc6001546001600160a01b031690565b60408084015190516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015610d4e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d75919081019061342b565b60800151604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610dc3575f80fd5b505af1158015610dd5573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610be7565b610e29611fc0565b806001600160a01b03163b5f03610e635760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526318788cbb60e11b60048201526301ffc9a790602401602060405180830381865afa925050508015610edd575060408051601f3d908101601f19168201909252610eda918101906134fb565b60015b610f055760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e5a565b80610f2e5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e5a565b505b50565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610f9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc29190613516565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015611005573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d91906132a5565b336110485f80516020613776833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146110835760405162d1953b60e31b81526001600160a01b0382166004820152602401610e5a565b816001600160a01b03163b5f036110b8576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e5a565b610f2e82612592565b5f805f8051602061375683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561112d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115191906134fb565b156111dc576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d6919061324f565b91505090565b54600160601b90046001600160a01b0316919050565b6111fa611fc0565b61127683846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125e919061308b565b60085f8560405180602001604052805f815250610654565b6001600160a01b038216156112935761128e826125f2565b61130a565b5f61129e6002612603565b9050611308816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611303919061324f565b6125f2565b505b61131a634a531f3360e01b610628565b61132a63daf9067160e01b610628565b505050565b5f8051602061377683398151915280545f9190600160a01b900460ff16611356575f6111d6565b638fb3603760e01b91505090565b5f808080611372600d611ff8565b9194509250905060015f611388838a8785612094565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015611412573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611436919061353c565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a9919061324f565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016114d993929190613387565b5f604051808303815f87803b1580156114f0575f80fd5b505af1158015611502573d5f803e3d5ffd5b505050505f6115196001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611568573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261158f919081019061342b565b90505f82602001516040516020016115a791906131fa565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016115dc9392919061357f565b60408051601f1981840301815290829052916115f791613244565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161162e9190613244565b5f604051808303815f865af19150503d805f8114611667576040519150601f19603f3d011682016040523d82523d5f602084013e61166c565b606091505b5090985050871561174957846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d7919061324f565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561172e575f80fd5b505af1158015611740573d5f803e3d5ffd5b50505050611856565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611785573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a9919061324f565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611800575f80fd5b505af1158015611812573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161184d9392919061326a565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f8080806118bc600b611ff8565b9250925092505f6118d68b6118cf600d90565b600161270a565b5090506118eb836020015182602001516129ac565b156119265760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610e5a565b6119a48873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611995919061353c565b64ffffffffff90811691161090565b15611a3f5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156119f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a14919061353c565b604051639ca7f30b60e01b815264ffffffffff91821660048201529089166024820152604401610e5a565b5f869003611a605760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b0316815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050908252506001600160601b038e1660208083019190915260408051601f8f0183900483028101830182528e8152920191908e908e90819084018382808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611b5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b80919061353c565b64ffffffffff1681526020018a64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c01919061324f565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b8152600401611c2c91906135a1565b6020604051808303815f875af1158015611c48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6c91906132a5565b955081608001516001600160a01b0316630b29e28e87878e8e8e6040518663ffffffff1660e01b8152600401611ca69594939291906135b3565b5f604051808303815f87803b158015611cbd575f80fd5b505af1158015611ccf573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50886868e8c604051611d3a94939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a150505050509695505050505050565b611d59611fc0565b611d6281610e21565b611d6a610ab8565b6001600160a01b038216611d915760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061375683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b5f805f8051602061375683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5791906134fb565b15611e835780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610e5a565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef991906134fb565b611f215760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610e5a565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611f73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f97919061308b565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f8051602061379683398151915254600160401b900460ff16611ff657604051631afcd79f60e31b815260040160405180910390fd5b565b5f612001612ad8565b5f6120146001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa158015612058573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207c919061308b565b925061208a8385600161270a565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612113573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612137919061324f565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af41580156121a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c791906135fd565b6040518263ffffffff1660e01b81526004016121e591815260200190565b602060405180830381865afa158015612200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122249190613516565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015612271573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122989190810190613614565b9250831561233d576122b38160045b60ff9081169116141590565b156122e4576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610e5a565b6122f28584604001516129ac565b1561233857604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610e5a565b6123db565b6123488160046122a7565b801561235a575061235a8160076122a7565b1561238b576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610e5a565b61239885845f01516129ac565b156123db578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610e5a565b61242a8360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d5f803e3d5ffd5b156124655760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610e5a565b5050949350505050565b610187611fc0565b5f805160206137968339815191528054600160401b810460ff1615906001600160401b03165f811580156124a85750825b90505f826001600160401b031660011480156124c35750303b155b9050811580156124d1575080155b156124ef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561251957845460ff60401b1916600160401b1785555b5f808780602001905181019061252f9190613728565b9250905061253e815f8b6111f2565b61254e63164524b160e21b610628565b50508315610bf057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610be7565b5f8051602061377683398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6125fa611fc0565b610f3081612a37565b5f6126166001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612679573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269d9190613516565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156126e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612704919061324f565b92915050565b612712612ad8565b5f806127266001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612773573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261279a919081019061342b565b92506127a785600b6122a7565b156127fd57604083015160ff8681169116146127f857604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610e5a565b612899565b612818836040015161280d600c90565b60ff90811691161490565b8061282e575061282e836040015161280d600f90565b806128445750612844836040015161280d600e90565b8061285a575061285a836040015161280d600d90565b61289957604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610e5a565b6128a68360200151612a48565b915083156129a357816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290e919061324f565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612956573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061297a91906134fb565b156129a357604051637d71120960e11b81526001600160601b0387166004820152602401610e5a565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af4158015612a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3091906134fb565b9392505050565b612a3f611fc0565b610f3081612592565b5f612a5b6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015612aa7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612ace919081019061342b565b6080015192915050565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612b25575f80fd5b81356001600160e01b031981168114612a30575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612bb2608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612bf6610100840182612b3c565b949350505050565b6001600160a01b0381168114610f30575f80fd5b6001600160601b0381168114610f30575f80fd5b60ff81168114610f30575f80fd5b8015158114610f30575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612c7757612c77612c41565b60405290565b60405161010081016001600160401b0381118282101715612c7757612c77612c41565b604051601f8201601f191681016001600160401b0381118282101715612cc857612cc8612c41565b604052919050565b5f6001600160401b03821115612ce857612ce8612c41565b50601f01601f191660200190565b5f82601f830112612d05575f80fd5b8135612d18612d1382612cd0565b612ca0565b818152846020838601011115612d2c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612d5d575f80fd5b8635612d6881612bfe565b95506020870135612d7881612c12565b94506040870135612d8881612c26565b93506060870135612d9881612c34565b92506080870135612da881612bfe565b915060a08701356001600160401b03811115612dc2575f80fd5b612dce89828a01612cf6565b9150509295509295509295565b6001600160401b0381168114610f30575f80fd5b5f60208284031215612dff575f80fd5b8135612a3081612ddb565b5f60208284031215612e1a575f80fd5b81356001600160401b03811115612e2f575f80fd5b612bf684828501612cf6565b5f8060408385031215612e4c575f80fd5b8235612e5781612bfe565b915060208301356001600160401b03811115612e71575f80fd5b612e7d85828601612cf6565b9150509250929050565b5f60208284031215612e97575f80fd5b8135612a3081612bfe565b5f805f60608486031215612eb4575f80fd5b8335612ebf81612bfe565b92506020840135612ecf81612bfe565b91506040840135612edf81612bfe565b809150509250925092565b5f8083601f840112612efa575f80fd5b5081356001600160401b03811115612f10575f80fd5b602083019150836020828501011115612f27575f80fd5b9250929050565b5f805f60408486031215612f40575f80fd5b8335612f4b81612ddb565b925060208401356001600160401b03811115612f65575f80fd5b612f7186828701612eea565b9497909650939450505050565b64ffffffffff81168114610f30575f80fd5b5f805f805f8060808789031215612fa5575f80fd5b8635612fb081612c12565b955060208701356001600160401b03811115612fca575f80fd5b612fd689828a01612eea565b9096509450506040870135612fea81612f7e565b925060608701356001600160401b03811115613004575f80fd5b61301089828a01612eea565b979a9699509497509295939492505050565b5f8060408385031215613033575f80fd5b823561303e81612bfe565b9150602083013561304e81612bfe565b809150509250929050565b5f60208284031215613069575f80fd5b815162ffffff81168114612a30575f80fd5b805161308681612c12565b919050565b5f6020828403121561309b575f80fd5b8151612a3081612c12565b600181811c908216806130ba57607f821691505b6020821081036130d857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561132a57805f5260205f20601f840160051c810160208510156131035750805b601f840160051c820191505b81811015613122575f815560010161310f565b5050505050565b81516001600160401b0381111561314257613142612c41565b6131568161315084546130a6565b846130de565b6020601f821160018114613188575f83156131715750848201515b5f19600385901b1c1916600184901b178455613122565b5f84815260208120601f198516915b828110156131b75787850151825560209485019460019092019101613197565b50848210156131d457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b5f61320582846131e3565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612bf66040830184612b3c565b5f612a3082846131e3565b5f6020828403121561325f575f80fd5b8151612a3081612bfe565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061329c90830184612b3c565b95945050505050565b5f602082840312156132b5575f80fd5b8151612a3081612ddb565b80516001600160601b031682525f602082015161010060208501526132e9610100850182612b3c565b9050604083015161330560408601826001600160601b03169052565b506060830151848203606086015261331d8282612b3c565b915050608083015184820360808601526133378282612b3c565b91505060a083015161335260a086018264ffffffffff169052565b5060c083015161336b60c086018264ffffffffff169052565b5060e083015161337f60e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6133a860608301856132c0565b905060ff83166040830152949350505050565b805161308681612c26565b805161308681612c34565b805161308681612bfe565b5f82601f8301126133eb575f80fd5b8151602083015f6133fe612d1384612cd0565b9050828152858383011115613411575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f6020828403121561343b575f80fd5b81516001600160401b03811115613450575f80fd5b820160e08185031215613461575f80fd5b613469612c55565b6134728261307b565b81526134806020830161307b565b6020820152613491604083016133bb565b60408201526134a2606083016133c6565b60608201526134b3608083016133d1565b60808201526134c460a083016133d1565b60a082015260c08201516001600160401b038111156134e1575f80fd5b6134ed868285016133dc565b60c083015250949350505050565b5f6020828403121561350b575f80fd5b8151612a3081612c34565b5f60208284031215613526575f80fd5b8151612a3081612c26565b805161308681612f7e565b5f6020828403121561354c575f80fd5b8151612a3081612f7e565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f61329c604083018486613557565b602081525f612a3060208301846132c0565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6135e4608083018587613557565b905064ffffffffff831660608301529695505050505050565b5f6020828403121561360d575f80fd5b5051919050565b5f60208284031215613624575f80fd5b81516001600160401b03811115613639575f80fd5b8201610100818503121561364b575f80fd5b613653612c7d565b61365c8261307b565b815260208201516001600160401b03811115613676575f80fd5b613682868285016133dc565b6020830152506136946040830161307b565b604082015260608201516001600160401b038111156136b1575f80fd5b6136bd868285016133dc565b60608301525060808201516001600160401b038111156136db575f80fd5b6136e7868285016133dc565b6080830152506136f960a08301613531565b60a082015261370a60c08301613531565b60c082015261371b60e083016133c6565b60e0820152949350505050565b5f8060408385031215613739575f80fd5b825161374481612bfe565b602084015190925061304e81612bfe56fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200e79eea4b48ab5d65a96f8af190e91e64ed5bddab4b4b86107448ff38719845664736f6c634300081a0033",
865
- "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610187575f3560e01c8063644c45e0116100d95780638fb3603711610093578063bf7e214f1161006e578063bf7e214f146103b5578063cf4ee77a146103d2578063f6845663146103e5578063f7c34ee0146103f8575f80fd5b80638fb3603714610371578063ada9652e14610392578063b68d1809146103a6575f80fd5b8063644c45e0146102f3578063675393bf146103105780636c741e78146103235780637a9e5e4b14610343578063893d20e8146103565780638e32e9791461035e575f80fd5b806327bb7a331161014457806336fc697e1161011f57806336fc697e146102a057806349bb9e4b146102a85780634c125e79146102bb5780635ab1bd53146102ce575f80fd5b806327bb7a33146102675780632ccc7da41461027a578063329d6e741461028d575f80fd5b806301ffc9a71461018b5780630d8e6e2c146101cc5780630fec111c146101e8578063138461e0146101fd5780631eff4b221461021d578063214cdb8014610252575b5f80fd5b6101b7610199366004612b15565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101d461040b565b60405162ffffff90911681526020016101c3565b6101f0610492565b6040516101c39190612b6a565b61020561061e565b6040516001600160601b0390911681526020016101c3565b6102447f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101c3565b610265610260366004612b15565b610628565b005b610265610275366004612d48565b610654565b610265610288366004612def565b6106f9565b61026561029b366004612e0a565b61096e565b610265610ab8565b6102656102b6366004612e3b565b610afd565b6102656102c9366004612def565b610bf9565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101c3565b5f80516020613756833981519152546001600160601b0316610205565b61026561031e366004612e87565b610e21565b61032b610f33565b6040516001600160401b0390911681526020016101c3565b610265610351366004612e87565b611029565b6102db6110c1565b61026561036c366004612ea2565b6111f2565b61037961132f565b6040516001600160e01b031990911681526020016101c3565b6102445f8051602061375683398151915281565b604051600d81526020016101c3565b5f80516020613776833981519152546001600160a01b03166102db565b6101b76103e0366004612f2e565b611364565b61032b6103f3366004612f90565b6118ae565b610265610406366004613022565b611d51565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d9190613059565b905090565b61049a612ad8565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610510573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610534919061308b565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c6110c1565b6001600160a01b03168152602001826001018054610599906130a6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906130a6565b80156106105780601f106105e757610100808354040283529160200191610610565b820191905f5260205f20905b8154815290600101906020018083116105f357829003601f168201915b505050505081525091505090565b5f61048d30611dc7565b610630611fc0565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b61065c611fc0565b6106668287611d51565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016106ef8382613129565b5050505050505050565b5f8080610706600b611ff8565b9250925092505f8061071a83878785612094565b90505f816020015160405160200161073291906131fa565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a866080015160405160240161076b929190613223565b60408051601f19818403018152908290529161078691613244565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516107bd9190613244565b5f604051808303815f865af19150503d805f81146107f6576040519150601f19603f3d011682016040523d82523d5f602084013e6107fb565b606091505b5091509150811561092357856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610842573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610866919061324f565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156108bd575f80fd5b505af11580156108cf573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a1610963565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018988608001518560405161095a9392919061326a565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61099061040b565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f291906132a5565b5f805160206137968339815191528054600160401b900460ff1680610a24575080546001600160401b03808416911610155b15610a425760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a6c8361246f565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610ac0611fc0565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b5f805160206137968339815191528054600160401b810460ff1615906001600160401b03165f81158015610b2e5750825b90505f826001600160401b03166001148015610b495750303b155b905081158015610b57575080155b15610b755760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b9f57845460ff60401b1916600160401b1785555b610ba98787612477565b8315610bf057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610c06600b611ff8565b9250925092505f80610c1a83878785612094565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061324f565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610cbc93929190613387565b5f604051808303815f87803b158015610cd3575f80fd5b505af1158015610ce5573d5f803e3d5ffd5b505050505f610cfc6001546001600160a01b031690565b60408084015190516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015610d4e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d75919081019061342b565b60800151604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610dc3575f80fd5b505af1158015610dd5573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610be7565b610e29611fc0565b806001600160a01b03163b5f03610e635760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526318788cbb60e11b60048201526301ffc9a790602401602060405180830381865afa925050508015610edd575060408051601f3d908101601f19168201909252610eda918101906134fb565b60015b610f055760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e5a565b80610f2e5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e5a565b505b50565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610f9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc29190613516565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015611005573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d91906132a5565b336110485f80516020613776833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146110835760405162d1953b60e31b81526001600160a01b0382166004820152602401610e5a565b816001600160a01b03163b5f036110b8576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e5a565b610f2e82612592565b5f805f8051602061375683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561112d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115191906134fb565b156111dc576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d6919061324f565b91505090565b54600160601b90046001600160a01b0316919050565b6111fa611fc0565b61127683846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125e919061308b565b60085f8560405180602001604052805f815250610654565b6001600160a01b038216156112935761128e826125f2565b61130a565b5f61129e6002612603565b9050611308816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611303919061324f565b6125f2565b505b61131a634a531f3360e01b610628565b61132a63daf9067160e01b610628565b505050565b5f8051602061377683398151915280545f9190600160a01b900460ff16611356575f6111d6565b638fb3603760e01b91505090565b5f808080611372600d611ff8565b9194509250905060015f611388838a8785612094565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015611412573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611436919061353c565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a9919061324f565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016114d993929190613387565b5f604051808303815f87803b1580156114f0575f80fd5b505af1158015611502573d5f803e3d5ffd5b505050505f6115196001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611568573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261158f919081019061342b565b90505f82602001516040516020016115a791906131fa565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016115dc9392919061357f565b60408051601f1981840301815290829052916115f791613244565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161162e9190613244565b5f604051808303815f865af19150503d805f8114611667576040519150601f19603f3d011682016040523d82523d5f602084013e61166c565b606091505b5090985050871561174957846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d7919061324f565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561172e575f80fd5b505af1158015611740573d5f803e3d5ffd5b50505050611856565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611785573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a9919061324f565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611800575f80fd5b505af1158015611812573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161184d9392919061326a565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f8080806118bc600b611ff8565b9250925092505f6118d68b6118cf600d90565b600161270a565b5090506118eb836020015182602001516129ac565b156119265760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610e5a565b6119a48873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611995919061353c565b64ffffffffff90811691161090565b15611a3f5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156119f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a14919061353c565b604051639ca7f30b60e01b815264ffffffffff91821660048201529089166024820152604401610e5a565b5f869003611a605760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b0316815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050908252506001600160601b038e1660208083019190915260408051601f8f0183900483028101830182528e8152920191908e908e90819084018382808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611b5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b80919061353c565b64ffffffffff1681526020018a64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c01919061324f565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b8152600401611c2c91906135a1565b6020604051808303815f875af1158015611c48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6c91906132a5565b955081608001516001600160a01b0316630b29e28e87878e8e8e6040518663ffffffff1660e01b8152600401611ca69594939291906135b3565b5f604051808303815f87803b158015611cbd575f80fd5b505af1158015611ccf573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50886868e8c604051611d3a94939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a150505050509695505050505050565b611d59611fc0565b611d6281610e21565b611d6a610ab8565b6001600160a01b038216611d915760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061375683398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b5f805f8051602061375683398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5791906134fb565b15611e835780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610e5a565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef991906134fb565b611f215760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610e5a565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611f73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f97919061308b565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f8051602061379683398151915254600160401b900460ff16611ff657604051631afcd79f60e31b815260040160405180910390fd5b565b5f612001612ad8565b5f6120146001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa158015612058573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207c919061308b565b925061208a8385600161270a565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612113573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612137919061324f565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af41580156121a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c791906135fd565b6040518263ffffffff1660e01b81526004016121e591815260200190565b602060405180830381865afa158015612200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122249190613516565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015612271573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122989190810190613614565b9250831561233d576122b38160045b60ff9081169116141590565b156122e4576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610e5a565b6122f28584604001516129ac565b1561233857604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610e5a565b6123db565b6123488160046122a7565b801561235a575061235a8160076122a7565b1561238b576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610e5a565b61239885845f01516129ac565b156123db578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610e5a565b61242a8360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611971573d5f803e3d5ffd5b156124655760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610e5a565b5050949350505050565b610187611fc0565b5f805160206137968339815191528054600160401b810460ff1615906001600160401b03165f811580156124a85750825b90505f826001600160401b031660011480156124c35750303b155b9050811580156124d1575080155b156124ef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561251957845460ff60401b1916600160401b1785555b5f808780602001905181019061252f9190613728565b9250905061253e815f8b6111f2565b61254e63164524b160e21b610628565b50508315610bf057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610be7565b5f8051602061377683398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6125fa611fc0565b610f3081612a37565b5f6126166001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612679573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061269d9190613516565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156126e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612704919061324f565b92915050565b612712612ad8565b5f806127266001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612773573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261279a919081019061342b565b92506127a785600b6122a7565b156127fd57604083015160ff8681169116146127f857604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610e5a565b612899565b612818836040015161280d600c90565b60ff90811691161490565b8061282e575061282e836040015161280d600f90565b806128445750612844836040015161280d600e90565b8061285a575061285a836040015161280d600d90565b61289957604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610e5a565b6128a68360200151612a48565b915083156129a357816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290e919061324f565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612956573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061297a91906134fb565b156129a357604051637d71120960e11b81526001600160601b0387166004820152602401610e5a565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af4158015612a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3091906134fb565b9392505050565b612a3f611fc0565b610f3081612592565b5f612a5b6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015612aa7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612ace919081019061342b565b6080015192915050565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612b25575f80fd5b81356001600160e01b031981168114612a30575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612bb2608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612bf6610100840182612b3c565b949350505050565b6001600160a01b0381168114610f30575f80fd5b6001600160601b0381168114610f30575f80fd5b60ff81168114610f30575f80fd5b8015158114610f30575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612c7757612c77612c41565b60405290565b60405161010081016001600160401b0381118282101715612c7757612c77612c41565b604051601f8201601f191681016001600160401b0381118282101715612cc857612cc8612c41565b604052919050565b5f6001600160401b03821115612ce857612ce8612c41565b50601f01601f191660200190565b5f82601f830112612d05575f80fd5b8135612d18612d1382612cd0565b612ca0565b818152846020838601011115612d2c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215612d5d575f80fd5b8635612d6881612bfe565b95506020870135612d7881612c12565b94506040870135612d8881612c26565b93506060870135612d9881612c34565b92506080870135612da881612bfe565b915060a08701356001600160401b03811115612dc2575f80fd5b612dce89828a01612cf6565b9150509295509295509295565b6001600160401b0381168114610f30575f80fd5b5f60208284031215612dff575f80fd5b8135612a3081612ddb565b5f60208284031215612e1a575f80fd5b81356001600160401b03811115612e2f575f80fd5b612bf684828501612cf6565b5f8060408385031215612e4c575f80fd5b8235612e5781612bfe565b915060208301356001600160401b03811115612e71575f80fd5b612e7d85828601612cf6565b9150509250929050565b5f60208284031215612e97575f80fd5b8135612a3081612bfe565b5f805f60608486031215612eb4575f80fd5b8335612ebf81612bfe565b92506020840135612ecf81612bfe565b91506040840135612edf81612bfe565b809150509250925092565b5f8083601f840112612efa575f80fd5b5081356001600160401b03811115612f10575f80fd5b602083019150836020828501011115612f27575f80fd5b9250929050565b5f805f60408486031215612f40575f80fd5b8335612f4b81612ddb565b925060208401356001600160401b03811115612f65575f80fd5b612f7186828701612eea565b9497909650939450505050565b64ffffffffff81168114610f30575f80fd5b5f805f805f8060808789031215612fa5575f80fd5b8635612fb081612c12565b955060208701356001600160401b03811115612fca575f80fd5b612fd689828a01612eea565b9096509450506040870135612fea81612f7e565b925060608701356001600160401b03811115613004575f80fd5b61301089828a01612eea565b979a9699509497509295939492505050565b5f8060408385031215613033575f80fd5b823561303e81612bfe565b9150602083013561304e81612bfe565b809150509250929050565b5f60208284031215613069575f80fd5b815162ffffff81168114612a30575f80fd5b805161308681612c12565b919050565b5f6020828403121561309b575f80fd5b8151612a3081612c12565b600181811c908216806130ba57607f821691505b6020821081036130d857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561132a57805f5260205f20601f840160051c810160208510156131035750805b601f840160051c820191505b81811015613122575f815560010161310f565b5050505050565b81516001600160401b0381111561314257613142612c41565b6131568161315084546130a6565b846130de565b6020601f821160018114613188575f83156131715750848201515b5f19600385901b1c1916600184901b178455613122565b5f84815260208120601f198516915b828110156131b75787850151825560209485019460019092019101613197565b50848210156131d457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518060208401855e5f93019283525090919050565b5f61320582846131e3565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612bf66040830184612b3c565b5f612a3082846131e3565b5f6020828403121561325f575f80fd5b8151612a3081612bfe565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061329c90830184612b3c565b95945050505050565b5f602082840312156132b5575f80fd5b8151612a3081612ddb565b80516001600160601b031682525f602082015161010060208501526132e9610100850182612b3c565b9050604083015161330560408601826001600160601b03169052565b506060830151848203606086015261331d8282612b3c565b915050608083015184820360808601526133378282612b3c565b91505060a083015161335260a086018264ffffffffff169052565b5060c083015161336b60c086018264ffffffffff169052565b5060e083015161337f60e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6133a860608301856132c0565b905060ff83166040830152949350505050565b805161308681612c26565b805161308681612c34565b805161308681612bfe565b5f82601f8301126133eb575f80fd5b8151602083015f6133fe612d1384612cd0565b9050828152858383011115613411575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f6020828403121561343b575f80fd5b81516001600160401b03811115613450575f80fd5b820160e08185031215613461575f80fd5b613469612c55565b6134728261307b565b81526134806020830161307b565b6020820152613491604083016133bb565b60408201526134a2606083016133c6565b60608201526134b3608083016133d1565b60808201526134c460a083016133d1565b60a082015260c08201516001600160401b038111156134e1575f80fd5b6134ed868285016133dc565b60c083015250949350505050565b5f6020828403121561350b575f80fd5b8151612a3081612c34565b5f60208284031215613526575f80fd5b8151612a3081612c26565b805161308681612f7e565b5f6020828403121561354c575f80fd5b8151612a3081612f7e565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f61329c604083018486613557565b602081525f612a3060208301846132c0565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6135e4608083018587613557565b905064ffffffffff831660608301529695505050505050565b5f6020828403121561360d575f80fd5b5051919050565b5f60208284031215613624575f80fd5b81516001600160401b03811115613639575f80fd5b8201610100818503121561364b575f80fd5b613653612c7d565b61365c8261307b565b815260208201516001600160401b03811115613676575f80fd5b613682868285016133dc565b6020830152506136946040830161307b565b604082015260608201516001600160401b038111156136b1575f80fd5b6136bd868285016133dc565b60608301525060808201516001600160401b038111156136db575f80fd5b6136e7868285016133dc565b6080830152506136f960a08301613531565b60a082015261370a60c08301613531565b60c082015261371b60e083016133c6565b60e0820152949350505050565b5f8060408385031215613739575f80fd5b825161374481612bfe565b602084015190925061304e81612bfe56fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200e79eea4b48ab5d65a96f8af190e91e64ed5bddab4b4b86107448ff38719845664736f6c634300081a0033",
752
+ "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613614806100d65f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063644c45e0116100a9578063ada9652e1161006e578063ada9652e146102de578063b68d1809146102f2578063bf7e214f14610301578063cf4ee77a1461031e578063f684566314610331575f80fd5b8063644c45e0146102655780636c741e78146102825780637a9e5e4b146102a2578063893d20e8146102b55780638fb36037146102bd575f80fd5b80632ccc7da4116100ef5780632ccc7da4146101f2578063329d6e741461020757806349bb9e4b1461021a5780634c125e791461022d5780635ab1bd5314610240575f80fd5b806301ffc9a71461012b5780630d8e6e2c1461016c5780630fec111c14610188578063138461e01461019d5780631eff4b22146101bd575b5f80fd5b610157610139366004612a50565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610174610344565b60405162ffffff9091168152602001610163565b6101906103cb565b6040516101639190612aa5565b6101a5610557565b6040516001600160601b039091168152602001610163565b6101e47f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610163565b610205610200366004612b4d565b610561565b005b610205610215366004612c6f565b6107d6565b610205610228366004612cb4565b610920565b61020561023b366004612b4d565b610a1c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610163565b5f8051602061357f833981519152546001600160601b03166101a5565b61028a610c44565b6040516001600160401b039091168152602001610163565b6102056102b0366004612d00565b610d3a565b61024d610ddb565b6102c5610f0c565b6040516001600160e01b03199091168152602001610163565b6101e45f8051602061357f83398151915281565b604051600d8152602001610163565b5f8051602061359f833981519152546001600160a01b031661024d565b61015761032c366004612d5f565b610f41565b61028a61033f366004612dd5565b61148b565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612e67565b905090565b6103d3612a13565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046d9190612e99565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104b5610ddb565b6001600160a01b031681526020018260010180546104d290612eb4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90612eb4565b80156105495780601f1061052057610100808354040283529160200191610549565b820191905f5260205f20905b81548152906001019060200180831161052c57829003601f168201915b505050505081525091505090565b5f6103c63061192e565b5f808061056e600b611b27565b9250925092505f8061058283878785611bc3565b90505f816020015160405160200161059a9190612f03565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a86608001516040516024016105d3929190612f2c565b60408051601f1981840301815290829052916105ee91612f4d565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516106259190612f4d565b5f604051808303815f865af19150503d805f811461065e576040519150601f19603f3d011682016040523d82523d5f602084013e610663565b606091505b5091509150811561078b57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce9190612f58565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107cb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107c293929190612f73565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107f8610344565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190612fae565b5f805160206135bf8339815191528054600160401b900460ff168061088c575080546001600160401b03808416911610155b156108aa5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556108d483611f9e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206135bf8339815191528054600160401b810460ff1615906001600160401b03165f811580156109515750825b90505f826001600160401b0316600114801561096c5750303b155b90508115801561097a575080155b156109985760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c257845460ff60401b1916600160401b1785555b6109cc8787611fa6565b8315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a29600b611b27565b9250925092505f80610a3d83878785611bc3565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612f58565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610adf93929190613090565b5f604051808303815f87803b158015610af6575f80fd5b505af1158015610b08573d5f803e3d5ffd5b505050505f610b1f6001546001600160a01b031690565b60408084015190516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015610b71573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b989190810190613146565b60800151604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610be6575f80fd5b505af1158015610bf8573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a0a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610caf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd39190613216565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610d16573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612fae565b33610d595f8051602061359f833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610d995760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610dce576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d90565b610dd7826120c1565b5050565b5f805f8051602061357f83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b9190613231565b15610ef6576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190612f58565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061359f83398151915280545f9190600160a01b900460ff16610f33575f610ef0565b638fb3603760e01b91505090565b5f808080610f4f600d611b27565b9194509250905060015f610f65838a8785611bc3565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190613255565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611062573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190612f58565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110b693929190613090565b5f604051808303815f87803b1580156110cd575f80fd5b505af11580156110df573d5f803e3d5ffd5b505050505f6110f66001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611145573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261116c9190810190613146565b90505f82602001516040516020016111849190612f03565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111b993929190613298565b60408051601f1981840301815290829052916111d491612f4d565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161120b9190612f4d565b5f604051808303815f865af19150503d805f8114611244576040519150601f19603f3d011682016040523d82523d5f602084013e611249565b606091505b5090985050871561132657846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611290573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b49190612f58565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b50505050611433565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190612f58565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156113dd575f80fd5b505af11580156113ef573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161142a93929190612f73565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f808080611499600b611b27565b9250925092505f6114b38b6114ac600d90565b6001612121565b5090506114c8836020015182602001516123c3565b156115035760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610d90565b6115818873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115729190613255565b64ffffffffff90811691161090565b1561161c5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156115cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f19190613255565b604051639ca7f30b60e01b815264ffffffffff91821660048201529089166024820152604401610d90565b5f86900361163d5760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b0316815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050908252506001600160601b038e1660208083019190915260408051601f8f0183900483028101830182528e8152920191908e908e90819084018382808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611739573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175d9190613255565b64ffffffffff1681526020018a64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117de9190612f58565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b815260040161180991906132ba565b6020604051808303815f875af1158015611825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118499190612fae565b955081608001516001600160a01b0316630b29e28e87878e8e8e6040518663ffffffff1660e01b81526004016118839594939291906132cc565b5f604051808303815f87803b15801561189a575f80fd5b505af11580156118ac573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50886868e8c60405161191794939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a150505050509695505050505050565b5f805f8051602061357f83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561199a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119be9190613231565b156119ea5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610d90565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a609190613231565b611a885760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610d90565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611ada573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afe9190612e99565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611b30612a13565b5f611b436001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bab9190612e99565b9250611bb983856001612121565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c669190612f58565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190613316565b6040518263ffffffff1660e01b8152600401611d1491815260200190565b602060405180830381865afa158015611d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d539190613216565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611da0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dc7919081019061332d565b92508315611e6c57611de28160045b60ff9081169116141590565b15611e13576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d90565b611e218584604001516123c3565b15611e6757604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d90565b611f0a565b611e77816004611dd6565b8015611e895750611e89816007611dd6565b15611eba576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d90565b611ec785845f01516123c3565b15611f0a578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d90565b611f598360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154e573d5f803e3d5ffd5b15611f945760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610d90565b5050949350505050565b61012761244e565b5f805160206135bf8339815191528054600160401b810460ff1615906001600160401b03165f81158015611fd75750825b90505f826001600160401b03166001148015611ff25750303b155b905081158015612000575080155b1561201e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561204857845460ff60401b1916600160401b1785555b5f808780602001905181019061205e9190613441565b9250905061206d815f8b612486565b61207d63164524b160e21b6125c3565b50508315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a0a565b5f8051602061359f83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b612129612a13565b5f8061213d6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561218a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121b19190810190613146565b92506121be85600b611dd6565b1561221457604083015160ff86811691161461220f57604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d90565b6122b0565b61222f8360400151612224600c90565b60ff90811691161490565b8061224557506122458360400151612224600f90565b8061225b575061225b8360400151612224600e90565b8061227157506122718360400151612224600d90565b6122b057604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d90565b6122bd83602001516125ef565b915083156123ba57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa158015612301573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123259190612f58565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa15801561236d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123919190613231565b156123ba57604051637d71120960e11b81526001600160601b0387166004820152602401610d90565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af4158015612423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124479190613231565b9392505050565b5f805160206135bf83398151915254600160401b900460ff1661248457604051631afcd79f60e31b815260040160405180910390fd5b565b61248e61244e565b61250a83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f29190612e99565b60085f8560405180602001604052805f81525061267f565b6001600160a01b038216156125275761252282612724565b61259e565b5f6125326002612738565b905061259c816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612573573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125979190612f58565b612724565b505b6125ae634a531f3360e01b6125c3565b6125be63daf9067160e01b6125c3565b505050565b6125cb61244e565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f6126026001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa15801561264e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126759190810190613146565b6080015192915050565b61268761244e565b612691828761283f565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161271a83826134c4565b5050505050505050565b61272c61244e565b612735816128b5565b50565b5f61274b6001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156127ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d29190613216565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128399190612f58565b92915050565b61284761244e565b612850816128c6565b6128586129ce565b6001600160a01b03821661287f5760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061357f83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6128bd61244e565b612735816120c1565b6128ce61244e565b806001600160a01b03163b5f036129035760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d90565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152632f6da6f960e01b60048201526301ffc9a790602401602060405180830381865afa92505050801561297d575060408051601f3d908101601f1916820190925261297a91810190613231565b60015b6129a55760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d90565b80610dd75760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610d90565b6129d661244e565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612a60575f80fd5b81356001600160e01b031981168114612447575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612aed608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612b31610100840182612a77565b949350505050565b6001600160401b0381168114612735575f80fd5b5f60208284031215612b5d575f80fd5b813561244781612b39565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b68565b60405290565b60405161010081016001600160401b0381118282101715612b9e57612b9e612b68565b604051601f8201601f191681016001600160401b0381118282101715612bef57612bef612b68565b604052919050565b5f6001600160401b03821115612c0f57612c0f612b68565b50601f01601f191660200190565b5f82601f830112612c2c575f80fd5b8135612c3f612c3a82612bf7565b612bc7565b818152846020838601011115612c53575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612c7f575f80fd5b81356001600160401b03811115612c94575f80fd5b612b3184828501612c1d565b6001600160a01b0381168114612735575f80fd5b5f8060408385031215612cc5575f80fd5b8235612cd081612ca0565b915060208301356001600160401b03811115612cea575f80fd5b612cf685828601612c1d565b9150509250929050565b5f60208284031215612d10575f80fd5b813561244781612ca0565b5f8083601f840112612d2b575f80fd5b5081356001600160401b03811115612d41575f80fd5b602083019150836020828501011115612d58575f80fd5b9250929050565b5f805f60408486031215612d71575f80fd5b8335612d7c81612b39565b925060208401356001600160401b03811115612d96575f80fd5b612da286828701612d1b565b9497909650939450505050565b6001600160601b0381168114612735575f80fd5b64ffffffffff81168114612735575f80fd5b5f805f805f8060808789031215612dea575f80fd5b8635612df581612daf565b955060208701356001600160401b03811115612e0f575f80fd5b612e1b89828a01612d1b565b9096509450506040870135612e2f81612dc3565b925060608701356001600160401b03811115612e49575f80fd5b612e5589828a01612d1b565b979a9699509497509295939492505050565b5f60208284031215612e77575f80fd5b815162ffffff81168114612447575f80fd5b8051612e9481612daf565b919050565b5f60208284031215612ea9575f80fd5b815161244781612daf565b600181811c90821680612ec857607f821691505b602082108103612ee657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f612f0e8284612eec565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612b316040830184612a77565b5f6124478284612eec565b5f60208284031215612f68575f80fd5b815161244781612ca0565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f90612fa590830184612a77565b95945050505050565b5f60208284031215612fbe575f80fd5b815161244781612b39565b80516001600160601b031682525f60208201516101006020850152612ff2610100850182612a77565b9050604083015161300e60408601826001600160601b03169052565b50606083015184820360608601526130268282612a77565b915050608083015184820360808601526130408282612a77565b91505060a083015161305b60a086018264ffffffffff169052565b5060c083015161307460c086018264ffffffffff169052565b5060e083015161308860e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6130b16060830185612fc9565b905060ff83166040830152949350505050565b60ff81168114612735575f80fd5b8051612e94816130c4565b80518015158114612e94575f80fd5b8051612e9481612ca0565b5f82601f830112613106575f80fd5b8151602083015f613119612c3a84612bf7565b905082815285838301111561312c575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613156575f80fd5b81516001600160401b0381111561316b575f80fd5b820160e0818503121561317c575f80fd5b613184612b7c565b61318d82612e89565b815261319b60208301612e89565b60208201526131ac604083016130d2565b60408201526131bd606083016130dd565b60608201526131ce608083016130ec565b60808201526131df60a083016130ec565b60a082015260c08201516001600160401b038111156131fc575f80fd5b613208868285016130f7565b60c083015250949350505050565b5f60208284031215613226575f80fd5b8151612447816130c4565b5f60208284031215613241575f80fd5b612447826130dd565b8051612e9481612dc3565b5f60208284031215613265575f80fd5b815161244781612dc3565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f612fa5604083018486613270565b602081525f6124476020830184612fc9565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6132fd608083018587613270565b905064ffffffffff831660608301529695505050505050565b5f60208284031215613326575f80fd5b5051919050565b5f6020828403121561333d575f80fd5b81516001600160401b03811115613352575f80fd5b82016101008185031215613364575f80fd5b61336c612ba4565b61337582612e89565b815260208201516001600160401b0381111561338f575f80fd5b61339b868285016130f7565b6020830152506133ad60408301612e89565b604082015260608201516001600160401b038111156133ca575f80fd5b6133d6868285016130f7565b60608301525060808201516001600160401b038111156133f4575f80fd5b613400868285016130f7565b60808301525061341260a0830161324a565b60a082015261342360c0830161324a565b60c082015261343460e083016130dd565b60e0820152949350505050565b5f8060408385031215613452575f80fd5b825161345d81612ca0565b602084015190925061346e81612ca0565b809150509250929050565b601f8211156125be57805f5260205f20601f840160051c8101602085101561349e5750805b601f840160051c820191505b818110156134bd575f81556001016134aa565b5050505050565b81516001600160401b038111156134dd576134dd612b68565b6134f1816134eb8454612eb4565b84613479565b6020601f821160018114613523575f831561350c5750848201515b5f19600385901b1c1916600184901b1784556134bd565b5f84815260208120601f198516915b828110156135525787850151825560209485019460019092019101613532565b508482101561356f57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220cebaa8622daaf88101e7f90d26df215913171c584c12aad8dfa6cec2febd931964736f6c634300081a0033",
753
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063644c45e0116100a9578063ada9652e1161006e578063ada9652e146102de578063b68d1809146102f2578063bf7e214f14610301578063cf4ee77a1461031e578063f684566314610331575f80fd5b8063644c45e0146102655780636c741e78146102825780637a9e5e4b146102a2578063893d20e8146102b55780638fb36037146102bd575f80fd5b80632ccc7da4116100ef5780632ccc7da4146101f2578063329d6e741461020757806349bb9e4b1461021a5780634c125e791461022d5780635ab1bd5314610240575f80fd5b806301ffc9a71461012b5780630d8e6e2c1461016c5780630fec111c14610188578063138461e01461019d5780631eff4b22146101bd575b5f80fd5b610157610139366004612a50565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610174610344565b60405162ffffff9091168152602001610163565b6101906103cb565b6040516101639190612aa5565b6101a5610557565b6040516001600160601b039091168152602001610163565b6101e47f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610163565b610205610200366004612b4d565b610561565b005b610205610215366004612c6f565b6107d6565b610205610228366004612cb4565b610920565b61020561023b366004612b4d565b610a1c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610163565b5f8051602061357f833981519152546001600160601b03166101a5565b61028a610c44565b6040516001600160401b039091168152602001610163565b6102056102b0366004612d00565b610d3a565b61024d610ddb565b6102c5610f0c565b6040516001600160e01b03199091168152602001610163565b6101e45f8051602061357f83398151915281565b604051600d8152602001610163565b5f8051602061359f833981519152546001600160a01b031661024d565b61015761032c366004612d5f565b610f41565b61028a61033f366004612dd5565b61148b565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612e67565b905090565b6103d3612a13565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046d9190612e99565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104b5610ddb565b6001600160a01b031681526020018260010180546104d290612eb4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90612eb4565b80156105495780601f1061052057610100808354040283529160200191610549565b820191905f5260205f20905b81548152906001019060200180831161052c57829003601f168201915b505050505081525091505090565b5f6103c63061192e565b5f808061056e600b611b27565b9250925092505f8061058283878785611bc3565b90505f816020015160405160200161059a9190612f03565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a86608001516040516024016105d3929190612f2c565b60408051601f1981840301815290829052916105ee91612f4d565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516106259190612f4d565b5f604051808303815f865af19150503d805f811461065e576040519150601f19603f3d011682016040523d82523d5f602084013e610663565b606091505b5091509150811561078b57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce9190612f58565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107cb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107c293929190612f73565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107f8610344565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190612fae565b5f805160206135bf8339815191528054600160401b900460ff168061088c575080546001600160401b03808416911610155b156108aa5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556108d483611f9e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206135bf8339815191528054600160401b810460ff1615906001600160401b03165f811580156109515750825b90505f826001600160401b0316600114801561096c5750303b155b90508115801561097a575080155b156109985760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c257845460ff60401b1916600160401b1785555b6109cc8787611fa6565b8315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a29600b611b27565b9250925092505f80610a3d83878785611bc3565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612f58565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610adf93929190613090565b5f604051808303815f87803b158015610af6575f80fd5b505af1158015610b08573d5f803e3d5ffd5b505050505f610b1f6001546001600160a01b031690565b60408084015190516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015610b71573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b989190810190613146565b60800151604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610be6575f80fd5b505af1158015610bf8573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a0a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610caf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd39190613216565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610d16573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612fae565b33610d595f8051602061359f833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610d995760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610dce576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d90565b610dd7826120c1565b5050565b5f805f8051602061357f83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6b9190613231565b15610ef6576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190612f58565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061359f83398151915280545f9190600160a01b900460ff16610f33575f610ef0565b638fb3603760e01b91505090565b5f808080610f4f600d611b27565b9194509250905060015f610f65838a8785611bc3565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190613255565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611062573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190612f58565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110b693929190613090565b5f604051808303815f87803b1580156110cd575f80fd5b505af11580156110df573d5f803e3d5ffd5b505050505f6110f66001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611145573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261116c9190810190613146565b90505f82602001516040516020016111849190612f03565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111b993929190613298565b60408051601f1981840301815290829052916111d491612f4d565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161120b9190612f4d565b5f604051808303815f865af19150503d805f8114611244576040519150601f19603f3d011682016040523d82523d5f602084013e611249565b606091505b5090985050871561132657846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611290573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b49190612f58565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b50505050611433565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190612f58565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156113dd575f80fd5b505af11580156113ef573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161142a93929190612f73565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f808080611499600b611b27565b9250925092505f6114b38b6114ac600d90565b6001612121565b5090506114c8836020015182602001516123c3565b156115035760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610d90565b6115818873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115729190613255565b64ffffffffff90811691161090565b1561161c5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156115cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f19190613255565b604051639ca7f30b60e01b815264ffffffffff91821660048201529089166024820152604401610d90565b5f86900361163d5760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b0316815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050908252506001600160601b038e1660208083019190915260408051601f8f0183900483028101830182528e8152920191908e908e90819084018382808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611739573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175d9190613255565b64ffffffffff1681526020018a64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117de9190612f58565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b815260040161180991906132ba565b6020604051808303815f875af1158015611825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118499190612fae565b955081608001516001600160a01b0316630b29e28e87878e8e8e6040518663ffffffff1660e01b81526004016118839594939291906132cc565b5f604051808303815f87803b15801561189a575f80fd5b505af11580156118ac573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50886868e8c60405161191794939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a150505050509695505050505050565b5f805f8051602061357f83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561199a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119be9190613231565b156119ea5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610d90565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a609190613231565b611a885760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610d90565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611ada573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afe9190612e99565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611b30612a13565b5f611b436001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bab9190612e99565b9250611bb983856001612121565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c669190612f58565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190613316565b6040518263ffffffff1660e01b8152600401611d1491815260200190565b602060405180830381865afa158015611d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d539190613216565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611da0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dc7919081019061332d565b92508315611e6c57611de28160045b60ff9081169116141590565b15611e13576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d90565b611e218584604001516123c3565b15611e6757604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d90565b611f0a565b611e77816004611dd6565b8015611e895750611e89816007611dd6565b15611eba576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d90565b611ec785845f01516123c3565b15611f0a578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d90565b611f598360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154e573d5f803e3d5ffd5b15611f945760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610d90565b5050949350505050565b61012761244e565b5f805160206135bf8339815191528054600160401b810460ff1615906001600160401b03165f81158015611fd75750825b90505f826001600160401b03166001148015611ff25750303b155b905081158015612000575080155b1561201e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561204857845460ff60401b1916600160401b1785555b5f808780602001905181019061205e9190613441565b9250905061206d815f8b612486565b61207d63164524b160e21b6125c3565b50508315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a0a565b5f8051602061359f83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b612129612a13565b5f8061213d6001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561218a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121b19190810190613146565b92506121be85600b611dd6565b1561221457604083015160ff86811691161461220f57604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d90565b6122b0565b61222f8360400151612224600c90565b60ff90811691161490565b8061224557506122458360400151612224600f90565b8061225b575061225b8360400151612224600e90565b8061227157506122718360400151612224600d90565b6122b057604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d90565b6122bd83602001516125ef565b915083156123ba57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa158015612301573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123259190612f58565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa15801561236d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123919190613231565b156123ba57604051637d71120960e11b81526001600160601b0387166004820152602401610d90565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af4158015612423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124479190613231565b9392505050565b5f805160206135bf83398151915254600160401b900460ff1661248457604051631afcd79f60e31b815260040160405180910390fd5b565b61248e61244e565b61250a83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f29190612e99565b60085f8560405180602001604052805f81525061267f565b6001600160a01b038216156125275761252282612724565b61259e565b5f6125326002612738565b905061259c816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612573573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125979190612f58565b612724565b505b6125ae634a531f3360e01b6125c3565b6125be63daf9067160e01b6125c3565b505050565b6125cb61244e565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f6126026001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa15801561264e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126759190810190613146565b6080015192915050565b61268761244e565b612691828761283f565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161271a83826134c4565b5050505050505050565b61272c61244e565b612735816128b5565b50565b5f61274b6001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156127ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d29190613216565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128399190612f58565b92915050565b61284761244e565b612850816128c6565b6128586129ce565b6001600160a01b03821661287f5760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061357f83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6128bd61244e565b612735816120c1565b6128ce61244e565b806001600160a01b03163b5f036129035760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d90565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152632f6da6f960e01b60048201526301ffc9a790602401602060405180830381865afa92505050801561297d575060408051601f3d908101601f1916820190925261297a91810190613231565b60015b6129a55760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d90565b80610dd75760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610d90565b6129d661244e565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612a60575f80fd5b81356001600160e01b031981168114612447575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612aed608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612b31610100840182612a77565b949350505050565b6001600160401b0381168114612735575f80fd5b5f60208284031215612b5d575f80fd5b813561244781612b39565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b68565b60405290565b60405161010081016001600160401b0381118282101715612b9e57612b9e612b68565b604051601f8201601f191681016001600160401b0381118282101715612bef57612bef612b68565b604052919050565b5f6001600160401b03821115612c0f57612c0f612b68565b50601f01601f191660200190565b5f82601f830112612c2c575f80fd5b8135612c3f612c3a82612bf7565b612bc7565b818152846020838601011115612c53575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612c7f575f80fd5b81356001600160401b03811115612c94575f80fd5b612b3184828501612c1d565b6001600160a01b0381168114612735575f80fd5b5f8060408385031215612cc5575f80fd5b8235612cd081612ca0565b915060208301356001600160401b03811115612cea575f80fd5b612cf685828601612c1d565b9150509250929050565b5f60208284031215612d10575f80fd5b813561244781612ca0565b5f8083601f840112612d2b575f80fd5b5081356001600160401b03811115612d41575f80fd5b602083019150836020828501011115612d58575f80fd5b9250929050565b5f805f60408486031215612d71575f80fd5b8335612d7c81612b39565b925060208401356001600160401b03811115612d96575f80fd5b612da286828701612d1b565b9497909650939450505050565b6001600160601b0381168114612735575f80fd5b64ffffffffff81168114612735575f80fd5b5f805f805f8060808789031215612dea575f80fd5b8635612df581612daf565b955060208701356001600160401b03811115612e0f575f80fd5b612e1b89828a01612d1b565b9096509450506040870135612e2f81612dc3565b925060608701356001600160401b03811115612e49575f80fd5b612e5589828a01612d1b565b979a9699509497509295939492505050565b5f60208284031215612e77575f80fd5b815162ffffff81168114612447575f80fd5b8051612e9481612daf565b919050565b5f60208284031215612ea9575f80fd5b815161244781612daf565b600181811c90821680612ec857607f821691505b602082108103612ee657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f612f0e8284612eec565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612b316040830184612a77565b5f6124478284612eec565b5f60208284031215612f68575f80fd5b815161244781612ca0565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f90612fa590830184612a77565b95945050505050565b5f60208284031215612fbe575f80fd5b815161244781612b39565b80516001600160601b031682525f60208201516101006020850152612ff2610100850182612a77565b9050604083015161300e60408601826001600160601b03169052565b50606083015184820360608601526130268282612a77565b915050608083015184820360808601526130408282612a77565b91505060a083015161305b60a086018264ffffffffff169052565b5060c083015161307460c086018264ffffffffff169052565b5060e083015161308860e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6130b16060830185612fc9565b905060ff83166040830152949350505050565b60ff81168114612735575f80fd5b8051612e94816130c4565b80518015158114612e94575f80fd5b8051612e9481612ca0565b5f82601f830112613106575f80fd5b8151602083015f613119612c3a84612bf7565b905082815285838301111561312c575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613156575f80fd5b81516001600160401b0381111561316b575f80fd5b820160e0818503121561317c575f80fd5b613184612b7c565b61318d82612e89565b815261319b60208301612e89565b60208201526131ac604083016130d2565b60408201526131bd606083016130dd565b60608201526131ce608083016130ec565b60808201526131df60a083016130ec565b60a082015260c08201516001600160401b038111156131fc575f80fd5b613208868285016130f7565b60c083015250949350505050565b5f60208284031215613226575f80fd5b8151612447816130c4565b5f60208284031215613241575f80fd5b612447826130dd565b8051612e9481612dc3565b5f60208284031215613265575f80fd5b815161244781612dc3565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f612fa5604083018486613270565b602081525f6124476020830184612fc9565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6132fd608083018587613270565b905064ffffffffff831660608301529695505050505050565b5f60208284031215613326575f80fd5b5051919050565b5f6020828403121561333d575f80fd5b81516001600160401b03811115613352575f80fd5b82016101008185031215613364575f80fd5b61336c612ba4565b61337582612e89565b815260208201516001600160401b0381111561338f575f80fd5b61339b868285016130f7565b6020830152506133ad60408301612e89565b604082015260608201516001600160401b038111156133ca575f80fd5b6133d6868285016130f7565b60608301525060808201516001600160401b038111156133f4575f80fd5b613400868285016130f7565b60808301525061341260a0830161324a565b60a082015261342360c0830161324a565b60c082015261343460e083016130dd565b60e0820152949350505050565b5f8060408385031215613452575f80fd5b825161345d81612ca0565b602084015190925061346e81612ca0565b809150509250929050565b601f8211156125be57805f5260205f20601f840160051c8101602085101561349e5750805b601f840160051c820191505b818110156134bd575f81556001016134aa565b5050505050565b81516001600160401b038111156134dd576134dd612b68565b6134f1816134eb8454612eb4565b84613479565b6020601f821160018114613523575f831561350c5750848201515b5f19600385901b1c1916600184901b1784556134bd565b5f84815260208120601f198516915b828110156135525787850151825560209485019460019092019101613532565b508482101561356f57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220cebaa8622daaf88101e7f90d26df215913171c584c12aad8dfa6cec2febd931964736f6c634300081a0033",
866
754
  "linkReferences": {
867
755
  "contracts/type/NftId.sol": {
868
756
  "NftIdLib": [
869
757
  {
870
758
  "length": 20,
871
- "start": 1441
759
+ "start": 1242
872
760
  },
873
761
  {
874
762
  "length": 20,
875
- "start": 4555
763
+ "start": 3813
876
764
  },
877
765
  {
878
766
  "length": 20,
879
- "start": 7889
767
+ "start": 6712
880
768
  },
881
769
  {
882
770
  "length": 20,
883
- "start": 10922
771
+ "start": 9409
884
772
  }
885
773
  ]
886
774
  },
@@ -888,7 +776,7 @@
888
776
  "RequestIdLib": [
889
777
  {
890
778
  "length": 20,
891
- "start": 8769
779
+ "start": 7536
892
780
  }
893
781
  ]
894
782
  },
@@ -896,7 +784,7 @@
896
784
  "RoleIdLib": [
897
785
  {
898
786
  "length": 20,
899
- "start": 4108
787
+ "start": 3357
900
788
  }
901
789
  ]
902
790
  },
@@ -904,23 +792,23 @@
904
792
  "TimestampLib": [
905
793
  {
906
794
  "length": 20,
907
- "start": 5292
795
+ "start": 4233
908
796
  },
909
797
  {
910
798
  "length": 20,
911
- "start": 6658
799
+ "start": 5599
912
800
  },
913
801
  {
914
802
  "length": 20,
915
- "start": 6785
803
+ "start": 5726
916
804
  },
917
805
  {
918
806
  "length": 20,
919
- "start": 7160
807
+ "start": 6101
920
808
  },
921
809
  {
922
810
  "length": 20,
923
- "start": 9403
811
+ "start": 8170
924
812
  }
925
813
  ]
926
814
  },
@@ -928,21 +816,21 @@
928
816
  "VersionLib": [
929
817
  {
930
818
  "length": 20,
931
- "start": 1287
819
+ "start": 1088
932
820
  },
933
821
  {
934
822
  "length": 20,
935
- "start": 2630
823
+ "start": 2222
936
824
  }
937
825
  ],
938
826
  "VersionPartLib": [
939
827
  {
940
828
  "length": 20,
941
- "start": 4156
829
+ "start": 3405
942
830
  },
943
831
  {
944
832
  "length": 20,
945
- "start": 10007
833
+ "start": 10316
946
834
  }
947
835
  ]
948
836
  }
@@ -952,19 +840,19 @@
952
840
  "NftIdLib": [
953
841
  {
954
842
  "length": 20,
955
- "start": 1227
843
+ "start": 1028
956
844
  },
957
845
  {
958
846
  "length": 20,
959
- "start": 4341
847
+ "start": 3599
960
848
  },
961
849
  {
962
850
  "length": 20,
963
- "start": 7675
851
+ "start": 6498
964
852
  },
965
853
  {
966
854
  "length": 20,
967
- "start": 10708
855
+ "start": 9195
968
856
  }
969
857
  ]
970
858
  },
@@ -972,7 +860,7 @@
972
860
  "RequestIdLib": [
973
861
  {
974
862
  "length": 20,
975
- "start": 8555
863
+ "start": 7322
976
864
  }
977
865
  ]
978
866
  },
@@ -980,7 +868,7 @@
980
868
  "RoleIdLib": [
981
869
  {
982
870
  "length": 20,
983
- "start": 3894
871
+ "start": 3143
984
872
  }
985
873
  ]
986
874
  },
@@ -988,23 +876,23 @@
988
876
  "TimestampLib": [
989
877
  {
990
878
  "length": 20,
991
- "start": 5078
879
+ "start": 4019
992
880
  },
993
881
  {
994
882
  "length": 20,
995
- "start": 6444
883
+ "start": 5385
996
884
  },
997
885
  {
998
886
  "length": 20,
999
- "start": 6571
887
+ "start": 5512
1000
888
  },
1001
889
  {
1002
890
  "length": 20,
1003
- "start": 6946
891
+ "start": 5887
1004
892
  },
1005
893
  {
1006
894
  "length": 20,
1007
- "start": 9189
895
+ "start": 7956
1008
896
  }
1009
897
  ]
1010
898
  },
@@ -1012,21 +900,21 @@
1012
900
  "VersionLib": [
1013
901
  {
1014
902
  "length": 20,
1015
- "start": 1073
903
+ "start": 874
1016
904
  },
1017
905
  {
1018
906
  "length": 20,
1019
- "start": 2416
907
+ "start": 2008
1020
908
  }
1021
909
  ],
1022
910
  "VersionPartLib": [
1023
911
  {
1024
912
  "length": 20,
1025
- "start": 3942
913
+ "start": 3191
1026
914
  },
1027
915
  {
1028
916
  "length": 20,
1029
- "start": 9793
917
+ "start": 10102
1030
918
  }
1031
919
  ]
1032
920
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a5d64b58f2ce370700cec8a3cc399eee.json"
3
+ "buildInfo": "../../../build-info/069e2a3d84abad36150ad93219befd86.json"
4
4
  }