@etherisc/gif-next 0.0.2-c6d46bb-892 → 0.0.2-c7609c4-545

Sign up to get free protection for your applications and to get access to all the features.
Files changed (529) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +236 -564
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +331 -432
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +167 -109
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +220 -291
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -97
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +173 -87
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +122 -222
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -231
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +145 -79
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +225 -87
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +238 -373
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +268 -577
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +151 -93
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +138 -76
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +180 -90
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +360 -209
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +163 -121
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +167 -93
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  162. package/artifacts/contracts/product/Product.sol/Product.json +381 -448
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +435 -29
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +270 -109
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +861 -64
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -234
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +132 -76
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Component.sol/Component.json +138 -286
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +110 -114
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +68 -85
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  238. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Service.sol/Service.json +55 -101
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
  242. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  243. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  244. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  246. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  247. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
  248. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  250. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  252. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  254. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  256. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  258. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
  260. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  262. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  264. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  265. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  266. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  267. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  268. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  270. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  272. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  274. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  276. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  278. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  280. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  282. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  283. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  284. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  286. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  288. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  290. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  292. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  294. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  296. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  298. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  304. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  306. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  308. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  312. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  314. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  316. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  318. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  320. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  323. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  324. package/contracts/authorization/AccessAdmin.sol +596 -0
  325. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  326. package/contracts/authorization/Authorization.sol +289 -0
  327. package/contracts/authorization/IAccess.sol +49 -0
  328. package/contracts/authorization/IAccessAdmin.sol +137 -0
  329. package/contracts/authorization/IAuthorization.sol +60 -0
  330. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  331. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  332. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  333. package/contracts/distribution/BasicDistribution.sol +139 -0
  334. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  335. package/contracts/distribution/Distribution.sol +156 -156
  336. package/contracts/distribution/DistributionService.sol +179 -173
  337. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  338. package/contracts/distribution/IDistributionComponent.sol +28 -47
  339. package/contracts/distribution/IDistributionService.sol +24 -10
  340. package/contracts/examples/fire/DamageLevel.sol +59 -0
  341. package/contracts/examples/fire/FirePool.sol +73 -0
  342. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  343. package/contracts/examples/fire/FireProduct.sol +415 -0
  344. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  345. package/contracts/examples/fire/FireUSD.sol +26 -0
  346. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  347. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  348. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  349. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  350. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  351. package/contracts/instance/IInstance.sol +33 -44
  352. package/contracts/instance/IInstanceService.sol +32 -34
  353. package/contracts/instance/Instance.sol +129 -126
  354. package/contracts/instance/InstanceAdmin.sol +277 -0
  355. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  356. package/contracts/instance/InstanceReader.sol +194 -67
  357. package/contracts/instance/InstanceService.sol +250 -144
  358. package/contracts/instance/InstanceServiceManager.sol +14 -29
  359. package/contracts/instance/InstanceStore.sol +142 -66
  360. package/contracts/instance/base/BalanceStore.sol +123 -0
  361. package/contracts/instance/base/Cloneable.sol +2 -25
  362. package/contracts/instance/base/ObjectCounter.sol +21 -0
  363. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  364. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  365. package/contracts/instance/module/IAccess.sol +2 -10
  366. package/contracts/instance/module/IBundle.sol +1 -4
  367. package/contracts/instance/module/IComponents.sol +21 -11
  368. package/contracts/instance/module/IDistribution.sol +0 -1
  369. package/contracts/instance/module/IPolicy.sol +31 -25
  370. package/contracts/mock/Dip.sol +26 -0
  371. package/contracts/oracle/BasicOracle.sol +47 -0
  372. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  373. package/contracts/oracle/IOracle.sol +36 -0
  374. package/contracts/oracle/IOracleComponent.sol +33 -0
  375. package/contracts/oracle/IOracleService.sol +66 -0
  376. package/contracts/oracle/Oracle.sol +156 -0
  377. package/contracts/oracle/OracleService.sol +291 -0
  378. package/contracts/oracle/OracleServiceManager.sol +39 -0
  379. package/contracts/pool/BasicPool.sol +154 -0
  380. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  381. package/contracts/pool/BundleService.sol +322 -211
  382. package/contracts/pool/BundleServiceManager.sol +13 -25
  383. package/contracts/pool/IBundleService.sol +44 -19
  384. package/contracts/pool/IPoolComponent.sol +27 -73
  385. package/contracts/pool/IPoolService.sol +93 -40
  386. package/contracts/pool/Pool.sol +186 -153
  387. package/contracts/pool/PoolService.sol +375 -234
  388. package/contracts/pool/PoolServiceManager.sol +12 -24
  389. package/contracts/product/ApplicationService.sol +158 -85
  390. package/contracts/product/ApplicationServiceManager.sol +12 -9
  391. package/contracts/product/BasicProduct.sol +53 -0
  392. package/contracts/product/BasicProductAuthorization.sol +42 -0
  393. package/contracts/product/ClaimService.sol +333 -163
  394. package/contracts/product/ClaimServiceManager.sol +12 -9
  395. package/contracts/product/IApplicationService.sol +2 -1
  396. package/contracts/product/IClaimService.sol +35 -5
  397. package/contracts/product/IPolicyService.sol +38 -38
  398. package/contracts/product/IPricingService.sol +13 -11
  399. package/contracts/product/IProductComponent.sol +28 -10
  400. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  401. package/contracts/product/PolicyService.sol +519 -204
  402. package/contracts/product/PolicyServiceManager.sol +12 -27
  403. package/contracts/product/PricingService.sol +109 -84
  404. package/contracts/product/PricingServiceManager.sol +12 -24
  405. package/contracts/product/Product.sol +222 -146
  406. package/contracts/product/RiskService.sol +96 -0
  407. package/contracts/product/RiskServiceManager.sol +39 -0
  408. package/contracts/registry/ChainNft.sol +75 -38
  409. package/contracts/registry/IRegistry.sol +91 -21
  410. package/contracts/registry/IRegistryService.sol +30 -34
  411. package/contracts/registry/ITransferInterceptor.sol +1 -2
  412. package/contracts/registry/Registry.sol +445 -195
  413. package/contracts/registry/RegistryAdmin.sol +448 -0
  414. package/contracts/registry/RegistryService.sol +85 -129
  415. package/contracts/registry/RegistryServiceManager.sol +23 -30
  416. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  417. package/contracts/registry/ReleaseRegistry.sol +501 -0
  418. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  419. package/contracts/registry/TokenRegistry.sol +261 -62
  420. package/contracts/shared/Component.sol +150 -156
  421. package/contracts/shared/ComponentService.sol +694 -99
  422. package/contracts/shared/ComponentServiceManager.sol +38 -0
  423. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  424. package/contracts/shared/ContractLib.sol +38 -0
  425. package/contracts/shared/IComponent.sol +25 -41
  426. package/contracts/shared/IComponentService.sol +120 -0
  427. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  428. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  429. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  430. package/contracts/shared/INftOwnable.sol +3 -1
  431. package/contracts/shared/IPolicyHolder.sol +12 -17
  432. package/contracts/shared/IRegisterable.sol +11 -0
  433. package/contracts/shared/IService.sol +9 -2
  434. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  435. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  436. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  437. package/contracts/shared/Lifecycle.sol +88 -0
  438. package/contracts/shared/NftIdSet.sol +65 -0
  439. package/contracts/shared/NftOwnable.sol +31 -22
  440. package/contracts/shared/PolicyHolder.sol +18 -50
  441. package/contracts/shared/Registerable.sol +21 -11
  442. package/contracts/shared/RegistryLinked.sol +3 -2
  443. package/contracts/shared/Service.sol +48 -36
  444. package/contracts/shared/TokenHandler.sol +112 -8
  445. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  446. package/contracts/staking/IStaking.sol +168 -0
  447. package/contracts/staking/IStakingService.sol +103 -48
  448. package/contracts/staking/StakeManagerLib.sol +224 -0
  449. package/contracts/staking/Staking.sol +497 -0
  450. package/contracts/staking/StakingLifecycle.sol +23 -0
  451. package/contracts/staking/StakingManager.sol +52 -0
  452. package/contracts/staking/StakingReader.sol +190 -0
  453. package/contracts/staking/StakingService.sol +290 -49
  454. package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +14 -7
  455. package/contracts/staking/StakingStore.sol +605 -0
  456. package/contracts/staking/TargetManagerLib.sol +211 -0
  457. package/contracts/type/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +44 -3
  459. package/contracts/type/Blocknumber.sol +26 -3
  460. package/contracts/type/ClaimId.sol +6 -1
  461. package/contracts/type/Fee.sol +17 -16
  462. package/contracts/type/NftId.sol +15 -16
  463. package/contracts/type/NftIdSet.sol +1 -1
  464. package/contracts/type/ObjectType.sol +176 -62
  465. package/contracts/type/PayoutId.sol +10 -10
  466. package/contracts/type/Referral.sol +2 -1
  467. package/contracts/type/RequestId.sol +75 -0
  468. package/contracts/type/RiskId.sol +16 -2
  469. package/contracts/type/RoleId.sol +98 -68
  470. package/contracts/type/Seconds.sol +48 -1
  471. package/contracts/type/Selector.sol +102 -0
  472. package/contracts/type/StateId.sol +41 -2
  473. package/contracts/type/String.sol +53 -0
  474. package/contracts/type/Timestamp.sol +17 -3
  475. package/contracts/type/UFixed.sol +38 -9
  476. package/contracts/type/Version.sol +4 -2
  477. package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
  478. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  479. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  480. package/package.json +10 -6
  481. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  483. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  485. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  486. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  487. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  493. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  495. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  498. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  501. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  503. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  504. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  505. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  506. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  507. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  508. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  509. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  511. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  514. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  515. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  516. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  517. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
  518. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
  519. package/contracts/instance/InstanceAccessManager.sol +0 -543
  520. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  521. package/contracts/instance/base/Lifecycle.sol +0 -121
  522. package/contracts/instance/module/ISetup.sol +0 -33
  523. package/contracts/instance/module/ITreasury.sol +0 -23
  524. package/contracts/product/ProductService.sol +0 -210
  525. package/contracts/product/ProductServiceManager.sol +0 -54
  526. package/contracts/registry/RegistryAccessManager.sol +0 -216
  527. package/contracts/registry/ReleaseManager.sol +0 -328
  528. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  529. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -41,17 +41,6 @@
41
41
  "name": "AccessManagedUnauthorized",
42
42
  "type": "error"
43
43
  },
44
- {
45
- "inputs": [
46
- {
47
- "internalType": "NftId",
48
- "name": "policyNftId",
49
- "type": "uint96"
50
- }
51
- ],
52
- "name": "ErrorBundleManagerPolicyAlreadyActivated",
53
- "type": "error"
54
- },
55
44
  {
56
45
  "inputs": [
57
46
  {
@@ -142,6 +131,27 @@
142
131
  "name": "ErrorBundleServiceCapacityInsufficient",
143
132
  "type": "error"
144
133
  },
134
+ {
135
+ "inputs": [],
136
+ "name": "ErrorBundleServiceExtensionLifetimeIsZero",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "inputs": [
141
+ {
142
+ "internalType": "Amount",
143
+ "name": "amount",
144
+ "type": "uint96"
145
+ },
146
+ {
147
+ "internalType": "Amount",
148
+ "name": "limit",
149
+ "type": "uint96"
150
+ }
151
+ ],
152
+ "name": "ErrorBundleServiceFeesWithdrawAmountExceedsLimit",
153
+ "type": "error"
154
+ },
145
155
  {
146
156
  "inputs": [
147
157
  {
@@ -177,129 +187,87 @@
177
187
  {
178
188
  "inputs": [
179
189
  {
180
- "internalType": "address",
181
- "name": "component",
182
- "type": "address"
190
+ "internalType": "Amount",
191
+ "name": "amount",
192
+ "type": "uint96"
193
+ },
194
+ {
195
+ "internalType": "Amount",
196
+ "name": "limit",
197
+ "type": "uint96"
183
198
  }
184
199
  ],
185
- "name": "ErrorComponentServiceComponentLocked",
200
+ "name": "ErrorBundleServiceUnstakeAmountExceedsLimit",
186
201
  "type": "error"
187
202
  },
188
203
  {
189
204
  "inputs": [
190
205
  {
191
- "internalType": "address",
192
- "name": "component",
193
- "type": "address"
194
- },
195
- {
196
- "internalType": "ObjectType",
197
- "name": "expectedType",
198
- "type": "uint8"
199
- },
200
- {
201
- "internalType": "ObjectType",
202
- "name": "foundType",
203
- "type": "uint8"
206
+ "internalType": "NftId",
207
+ "name": "policyNftId",
208
+ "type": "uint96"
204
209
  }
205
210
  ],
206
- "name": "ErrorComponentServiceComponentTypeInvalid",
211
+ "name": "ErrorBundleSetPolicyAlreadyActivated",
207
212
  "type": "error"
208
213
  },
209
214
  {
210
215
  "inputs": [
211
216
  {
212
217
  "internalType": "NftId",
213
- "name": "instanceNftId",
218
+ "name": "componentNftId",
214
219
  "type": "uint96"
215
- },
216
- {
217
- "internalType": "RoleId",
218
- "name": "requiredRole",
219
- "type": "uint64"
220
- },
221
- {
222
- "internalType": "address",
223
- "name": "sender",
224
- "type": "address"
225
220
  }
226
221
  ],
227
- "name": "ErrorComponentServiceExpectedRoleMissing",
222
+ "name": "ErrorComponentVerifyingServiceComponentIsLocked",
228
223
  "type": "error"
229
224
  },
230
225
  {
231
226
  "inputs": [
232
227
  {
233
- "internalType": "address",
234
- "name": "component",
235
- "type": "address"
228
+ "internalType": "NftId",
229
+ "name": "componentNftId",
230
+ "type": "uint96"
236
231
  },
237
232
  {
238
233
  "internalType": "ObjectType",
239
- "name": "requiredType",
234
+ "name": "expectedType",
240
235
  "type": "uint8"
241
236
  },
242
237
  {
243
238
  "internalType": "ObjectType",
244
- "name": "componentType",
239
+ "name": "actualType",
245
240
  "type": "uint8"
246
241
  }
247
242
  ],
248
- "name": "ErrorComponentServiceInvalidType",
243
+ "name": "ErrorComponentVerifyingServiceComponentTypeInvalid",
249
244
  "type": "error"
250
245
  },
251
246
  {
252
247
  "inputs": [
253
248
  {
254
- "internalType": "address",
255
- "name": "component",
256
- "type": "address"
257
- }
258
- ],
259
- "name": "ErrorComponentServiceNotComponent",
260
- "type": "error"
261
- },
262
- {
263
- "inputs": [
264
- {
265
- "internalType": "address",
266
- "name": "component",
267
- "type": "address"
268
- },
269
- {
270
- "internalType": "address",
271
- "name": "initialOwner",
272
- "type": "address"
273
- },
274
- {
275
- "internalType": "address",
276
- "name": "sender",
277
- "type": "address"
249
+ "internalType": "NftId",
250
+ "name": "nftId",
251
+ "type": "uint96"
278
252
  }
279
253
  ],
280
- "name": "ErrorComponentServiceSenderNotOwner",
254
+ "name": "ErrorNftOwnableAlreadyLinked",
281
255
  "type": "error"
282
256
  },
283
257
  {
284
258
  "inputs": [
285
259
  {
286
260
  "internalType": "address",
287
- "name": "sender",
261
+ "name": "contractAddress",
288
262
  "type": "address"
289
263
  }
290
264
  ],
291
- "name": "ErrorComponentServiceSenderNotService",
265
+ "name": "ErrorNftOwnableContractNotRegistered",
292
266
  "type": "error"
293
267
  },
294
268
  {
295
- "inputs": [
296
- {
297
- "internalType": "address",
298
- "name": "target",
299
- "type": "address"
300
- }
301
- ],
302
- "name": "ErrorIAccessTargetLocked",
269
+ "inputs": [],
270
+ "name": "ErrorNftOwnableInitialOwnerZero",
303
271
  "type": "error"
304
272
  },
305
273
  {
@@ -308,25 +276,14 @@
308
276
  "internalType": "NftId",
309
277
  "name": "nftId",
310
278
  "type": "uint96"
311
- }
312
- ],
313
- "name": "ErrorNftOwnableAlreadyLinked",
314
- "type": "error"
315
- },
316
- {
317
- "inputs": [
279
+ },
318
280
  {
319
- "internalType": "address",
320
- "name": "contractAddress",
321
- "type": "address"
281
+ "internalType": "ObjectType",
282
+ "name": "expectedObjectType",
283
+ "type": "uint8"
322
284
  }
323
285
  ],
324
- "name": "ErrorNftOwnableContractNotRegistered",
325
- "type": "error"
326
- },
327
- {
328
- "inputs": [],
329
- "name": "ErrorNftOwnableInitialOwnerZero",
286
+ "name": "ErrorNftOwnableInvalidType",
330
287
  "type": "error"
331
288
  },
332
289
  {
@@ -366,6 +323,11 @@
366
323
  "name": "NotInitializing",
367
324
  "type": "error"
368
325
  },
326
+ {
327
+ "inputs": [],
328
+ "name": "ReentrancyGuardReentrantCall",
329
+ "type": "error"
330
+ },
369
331
  {
370
332
  "anonymous": false,
371
333
  "inputs": [
@@ -405,6 +367,31 @@
405
367
  "name": "LogBundleServiceBundleActivated",
406
368
  "type": "event"
407
369
  },
370
+ {
371
+ "anonymous": false,
372
+ "inputs": [
373
+ {
374
+ "indexed": false,
375
+ "internalType": "NftId",
376
+ "name": "bundleNftId",
377
+ "type": "uint96"
378
+ },
379
+ {
380
+ "indexed": false,
381
+ "internalType": "Seconds",
382
+ "name": "lifetimeExtension",
383
+ "type": "uint40"
384
+ },
385
+ {
386
+ "indexed": false,
387
+ "internalType": "Timestamp",
388
+ "name": "extendedExpiredAt",
389
+ "type": "uint40"
390
+ }
391
+ ],
392
+ "name": "LogBundleServiceBundleExtended",
393
+ "type": "event"
394
+ },
408
395
  {
409
396
  "anonymous": false,
410
397
  "inputs": [
@@ -418,6 +405,50 @@
418
405
  "name": "LogBundleServiceBundleLocked",
419
406
  "type": "event"
420
407
  },
408
+ {
409
+ "anonymous": false,
410
+ "inputs": [
411
+ {
412
+ "indexed": false,
413
+ "internalType": "NftId",
414
+ "name": "bundleNftId",
415
+ "type": "uint96"
416
+ },
417
+ {
418
+ "indexed": false,
419
+ "internalType": "address",
420
+ "name": "recipient",
421
+ "type": "address"
422
+ },
423
+ {
424
+ "indexed": false,
425
+ "internalType": "address",
426
+ "name": "tokenAddress",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "indexed": false,
431
+ "internalType": "Amount",
432
+ "name": "amount",
433
+ "type": "uint96"
434
+ }
435
+ ],
436
+ "name": "LogBundleServiceFeesWithdrawn",
437
+ "type": "event"
438
+ },
439
+ {
440
+ "inputs": [],
441
+ "name": "GIF_RELEASE",
442
+ "outputs": [
443
+ {
444
+ "internalType": "uint256",
445
+ "name": "",
446
+ "type": "uint256"
447
+ }
448
+ ],
449
+ "stateMutability": "view",
450
+ "type": "function"
451
+ },
421
452
  {
422
453
  "inputs": [],
423
454
  "name": "NAME",
@@ -484,7 +515,18 @@
484
515
  }
485
516
  ],
486
517
  "name": "close",
487
- "outputs": [],
518
+ "outputs": [
519
+ {
520
+ "internalType": "Amount",
521
+ "name": "unstakedAmount",
522
+ "type": "uint96"
523
+ },
524
+ {
525
+ "internalType": "Amount",
526
+ "name": "feeAmount",
527
+ "type": "uint96"
528
+ }
529
+ ],
488
530
  "stateMutability": "nonpayable",
489
531
  "type": "function"
490
532
  },
@@ -549,13 +591,37 @@
549
591
  "stateMutability": "nonpayable",
550
592
  "type": "function"
551
593
  },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "NftId",
598
+ "name": "bundleNftId",
599
+ "type": "uint96"
600
+ },
601
+ {
602
+ "internalType": "Seconds",
603
+ "name": "lifetimeExtension",
604
+ "type": "uint40"
605
+ }
606
+ ],
607
+ "name": "extend",
608
+ "outputs": [
609
+ {
610
+ "internalType": "Timestamp",
611
+ "name": "extendedExpiredAt",
612
+ "type": "uint40"
613
+ }
614
+ ],
615
+ "stateMutability": "nonpayable",
616
+ "type": "function"
617
+ },
552
618
  {
553
619
  "inputs": [],
554
620
  "name": "getDomain",
555
621
  "outputs": [
556
622
  {
557
623
  "internalType": "ObjectType",
558
- "name": "",
624
+ "name": "serviceDomain",
559
625
  "type": "uint8"
560
626
  }
561
627
  ],
@@ -612,19 +678,6 @@
612
678
  "stateMutability": "view",
613
679
  "type": "function"
614
680
  },
615
- {
616
- "inputs": [],
617
- "name": "getInstanceService",
618
- "outputs": [
619
- {
620
- "internalType": "contract InstanceService",
621
- "name": "",
622
- "type": "address"
623
- }
624
- ],
625
- "stateMutability": "view",
626
- "type": "function"
627
- },
628
681
  {
629
682
  "inputs": [],
630
683
  "name": "getNftId",
@@ -666,15 +719,28 @@
666
719
  },
667
720
  {
668
721
  "inputs": [],
669
- "name": "getRegistryService",
722
+ "name": "getRelease",
670
723
  "outputs": [
671
724
  {
672
- "internalType": "contract IRegistryService",
673
- "name": "",
674
- "type": "address"
725
+ "internalType": "VersionPart",
726
+ "name": "release",
727
+ "type": "uint8"
675
728
  }
676
729
  ],
677
- "stateMutability": "view",
730
+ "stateMutability": "pure",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [],
735
+ "name": "getRoleId",
736
+ "outputs": [
737
+ {
738
+ "internalType": "RoleId",
739
+ "name": "serviceRoleId",
740
+ "type": "uint64"
741
+ }
742
+ ],
743
+ "stateMutability": "pure",
678
744
  "type": "function"
679
745
  },
680
746
  {
@@ -693,130 +759,8 @@
693
759
  {
694
760
  "inputs": [
695
761
  {
696
- "internalType": "contract IInstance",
697
- "name": "instance",
698
- "type": "address"
699
- },
700
- {
701
- "internalType": "NftId",
702
- "name": "bundleNftId",
703
- "type": "uint96"
704
- },
705
- {
706
- "internalType": "Amount",
707
- "name": "premiumAmount",
708
- "type": "uint96"
709
- }
710
- ],
711
- "name": "increaseBalance",
712
- "outputs": [],
713
- "stateMutability": "nonpayable",
714
- "type": "function"
715
- },
716
- {
717
- "inputs": [],
718
- "name": "initializeERC165",
719
- "outputs": [],
720
- "stateMutability": "nonpayable",
721
- "type": "function"
722
- },
723
- {
724
- "inputs": [
725
- {
726
- "internalType": "address",
727
- "name": "initialOwner",
728
- "type": "address"
729
- },
730
- {
731
- "internalType": "address",
732
- "name": "registryAddress",
733
- "type": "address"
734
- }
735
- ],
736
- "name": "initializeNftOwnable",
737
- "outputs": [],
738
- "stateMutability": "nonpayable",
739
- "type": "function"
740
- },
741
- {
742
- "inputs": [
743
- {
744
- "internalType": "address",
745
- "name": "registryAddress",
746
- "type": "address"
747
- },
748
- {
749
- "internalType": "NftId",
750
- "name": "parentNftId",
751
- "type": "uint96"
752
- },
753
- {
754
- "internalType": "ObjectType",
755
- "name": "objectType",
756
- "type": "uint8"
757
- },
758
- {
759
- "internalType": "bool",
760
- "name": "isInterceptor",
761
- "type": "bool"
762
- },
763
- {
764
- "internalType": "address",
765
- "name": "initialOwner",
766
- "type": "address"
767
- },
768
- {
769
- "internalType": "bytes",
770
- "name": "registryData",
771
- "type": "bytes"
772
- }
773
- ],
774
- "name": "initializeRegisterable",
775
- "outputs": [],
776
- "stateMutability": "nonpayable",
777
- "type": "function"
778
- },
779
- {
780
- "inputs": [
781
- {
782
- "internalType": "address",
783
- "name": "registryAddress",
784
- "type": "address"
785
- }
786
- ],
787
- "name": "initializeRegistryLinked",
788
- "outputs": [],
789
- "stateMutability": "nonpayable",
790
- "type": "function"
791
- },
792
- {
793
- "inputs": [
794
- {
795
- "internalType": "address",
796
- "name": "registry",
797
- "type": "address"
798
- },
799
- {
800
- "internalType": "address",
801
- "name": "authority",
802
- "type": "address"
803
- },
804
- {
805
- "internalType": "address",
806
- "name": "initialOwner",
807
- "type": "address"
808
- }
809
- ],
810
- "name": "initializeService",
811
- "outputs": [],
812
- "stateMutability": "nonpayable",
813
- "type": "function"
814
- },
815
- {
816
- "inputs": [
817
- {
818
- "internalType": "address",
819
- "name": "activatedBy",
762
+ "internalType": "address",
763
+ "name": "activatedBy",
820
764
  "type": "address"
821
765
  },
822
766
  {
@@ -846,7 +790,13 @@
846
790
  {
847
791
  "inputs": [],
848
792
  "name": "linkToRegisteredNftId",
849
- "outputs": [],
793
+ "outputs": [
794
+ {
795
+ "internalType": "NftId",
796
+ "name": "nftId",
797
+ "type": "uint96"
798
+ }
799
+ ],
850
800
  "stateMutability": "nonpayable",
851
801
  "type": "function"
852
802
  },
@@ -884,11 +834,6 @@
884
834
  "internalType": "Amount",
885
835
  "name": "collateralAmount",
886
836
  "type": "uint96"
887
- },
888
- {
889
- "internalType": "Amount",
890
- "name": "premiumAmount",
891
- "type": "uint96"
892
837
  }
893
838
  ],
894
839
  "name": "lockCollateral",
@@ -899,14 +844,25 @@
899
844
  {
900
845
  "inputs": [
901
846
  {
902
- "internalType": "bytes4",
903
- "name": "interfaceId",
904
- "type": "bytes4"
847
+ "internalType": "contract IInstance",
848
+ "name": "instance",
849
+ "type": "address"
850
+ },
851
+ {
852
+ "internalType": "NftId",
853
+ "name": "policyNftId",
854
+ "type": "uint96"
905
855
  }
906
856
  ],
907
- "name": "registerInterface",
908
- "outputs": [],
909
- "stateMutability": "nonpayable",
857
+ "name": "policyIsCloseable",
858
+ "outputs": [
859
+ {
860
+ "internalType": "bool",
861
+ "name": "isCloseable",
862
+ "type": "bool"
863
+ }
864
+ ],
865
+ "stateMutability": "view",
910
866
  "type": "function"
911
867
  },
912
868
  {
@@ -980,6 +936,29 @@
980
936
  "stateMutability": "nonpayable",
981
937
  "type": "function"
982
938
  },
939
+ {
940
+ "inputs": [
941
+ {
942
+ "internalType": "contract IInstance",
943
+ "name": "instance",
944
+ "type": "address"
945
+ },
946
+ {
947
+ "internalType": "NftId",
948
+ "name": "bundleNftId",
949
+ "type": "uint96"
950
+ },
951
+ {
952
+ "internalType": "Amount",
953
+ "name": "amount",
954
+ "type": "uint96"
955
+ }
956
+ ],
957
+ "name": "stake",
958
+ "outputs": [],
959
+ "stateMutability": "nonpayable",
960
+ "type": "function"
961
+ },
983
962
  {
984
963
  "inputs": [
985
964
  {
@@ -1044,12 +1023,18 @@
1044
1023
  },
1045
1024
  {
1046
1025
  "internalType": "Amount",
1047
- "name": "feeAmount",
1026
+ "name": "amount",
1027
+ "type": "uint96"
1028
+ }
1029
+ ],
1030
+ "name": "unstake",
1031
+ "outputs": [
1032
+ {
1033
+ "internalType": "Amount",
1034
+ "name": "unstakedAmount",
1048
1035
  "type": "uint96"
1049
1036
  }
1050
1037
  ],
1051
- "name": "updateBundleFees",
1052
- "outputs": [],
1053
1038
  "stateMutability": "nonpayable",
1054
1039
  "type": "function"
1055
1040
  },
@@ -1065,48 +1050,100 @@
1065
1050
  "outputs": [],
1066
1051
  "stateMutability": "nonpayable",
1067
1052
  "type": "function"
1053
+ },
1054
+ {
1055
+ "inputs": [
1056
+ {
1057
+ "internalType": "NftId",
1058
+ "name": "bundleNftId",
1059
+ "type": "uint96"
1060
+ },
1061
+ {
1062
+ "internalType": "Amount",
1063
+ "name": "amount",
1064
+ "type": "uint96"
1065
+ }
1066
+ ],
1067
+ "name": "withdrawBundleFees",
1068
+ "outputs": [
1069
+ {
1070
+ "internalType": "Amount",
1071
+ "name": "withdrawnAmount",
1072
+ "type": "uint96"
1073
+ }
1074
+ ],
1075
+ "stateMutability": "nonpayable",
1076
+ "type": "function"
1068
1077
  }
1069
1078
  ],
1070
- "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61485980620000e66000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806376429bc01161011a578063ada9652e116100ad578063bf7e214f1161007c578063bf7e214f146104d2578063caf4e3d4146104f0578063cc9fc59a146104f8578063e283b4a914610500578063f7c34ee01461051357600080fd5b8063ada9652e14610488578063b5346af51461049d578063b68d1809146104b0578063b7565f9c146104bf57600080fd5b80638fb36037116100e95780638fb3603714610408578063a3f4df7e14610429578063aa9acb2c14610462578063ad328d9f1461047557600080fd5b806376429bc0146103c75780637a9e5e4b146103da578063893d20e8146103ed5780638e32e979146103f557600080fd5b806327bb7a331161019d57806349bb9e4b1161016c57806349bb9e4b146103375780635ab1bd531461034a5780635ed325671461036f578063644c45e014610382578063675393bf146103b457600080fd5b806327bb7a33146102f6578063329d6e741461030957806336fc697e1461031c578063377a6db71461032457600080fd5b8063138461e0116101d9578063138461e0146102935780631eff4b221461029b5780631f8e8f36146102d0578063214cdb80146102e357600080fd5b806301ffc9a71461020b57806306fa45651461024d5780630d8e6e2c146102625780630fec111c1461027e575b600080fd5b610238610219366004613805565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61026061025b366004613844565b610526565b005b61026a610716565b60405162ffffff9091168152602001610244565b6102866107a0565b60405161024491906138b1565b6102606108c1565b6102c27f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610244565b6102606102de366004613a42565b610ac8565b6102606102f1366004613805565b610d84565b610260610304366004613b1e565b610db1565b610260610317366004613bb6565b610e56565b610260610f9b565b610260610332366004613bea565b610fe1565b610260610345366004613c5b565b6113e0565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610244565b61026061037d366004613caa565b6114df565b6000805160206147c4833981519152546001600160601b03165b6040516001600160601b039091168152602001610244565b6102606103c2366004613cf5565b61167b565b6102606103d5366004613d12565b611789565b6102606103e8366004613cf5565b611948565b6103576119e2565b610260610403366004613d4b565b611b19565b610410611d52565b6040516001600160e01b03199091168152602001610244565b6104556040518060400160405280600d81526020016c42756e646c655365727669636560981b81525081565b6040516102449190613d8b565b610260610470366004613d12565b611d8a565b610260610483366004613d9e565b611fcb565b6102c26000805160206147c483398151915281565b6102606104ab366004613844565b612243565b60405160dc8152602001610244565b6102606104cd366004613caa565b61242a565b6000805160206147e4833981519152546001600160a01b0316610357565b61035761263a565b610357612646565b61039c61050e366004613e0d565b612652565b610260610521366004613eee565b612b59565b6000610532608c612bd0565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105989190613f1c565b6001600160a01b031663fe1f18d68360646040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b505050506000816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190613f1c565b6040516306fa456560e01b81526001600160601b03851660048201529091506001600160a01b038216906306fa456590602401600060405180830381600087803b1580156106bb57600080fd5b505af11580156106cf573d6000803e3d6000fd5b50506040516001600160601b03861681527f87cfb697b5d649751f13ba6e2e51778a1fd0a1f260df7281952986c453708e71925060200190505b60405180910390a1505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b9190613f39565b905090565b6107a86137c7565b6040805160e081018252600081527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b038116602084015260ff600160601b8204811694840194909452600160681b90049092161515606082015230608082015260a0810161081d6119e2565b6001600160a01b0316815260200182600101805461083a90613f5e565b80601f016020809104026020016040519081016040528092919081815260200182805461086690613f5e565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b505050505081525091505090565b60006000805160206147c483398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610930573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109549190613fa8565b156109855780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306109986001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa1580156109e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a049190613fa8565b610a2c5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161097c565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190613fd0565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b600080610ad5608c612bd0565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e9190613f1c565b604051634793b4ab60e01b81526001600160601b03871660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bb9919081019061406d565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b9190613fa8565b15610c64576040516349e9f38360e01b81526001600160601b038716600482015260240161097c565b80516001600160601b03858116911614610caf57805160405163dab86e4560e01b81526001600160601b0380891660048301529182166024820152908516604482015260640161097c565b848160200181905250826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190613f1c565b6001600160a01b03166359852426878360ff6040518463ffffffff1660e01b8152600401610d4a93929190614238565b600060405180830381600087803b158015610d6457600080fd5b505af1158015610d78573d6000803e3d6000fd5b50505050505050505050565b610d8c612d72565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610db9612d72565b610dc38287612b59565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610e4c83826142b3565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610e78610716565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edc9190614372565b6000805160206148048339815191528054600160401b900460ff1680610f0f575080546001600160401b03808416911610155b15610f2d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610f5783612dab565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610709565b610fa3612d72565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b33610ff46001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa15801561103c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110609190613fa8565b6110885760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000866001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec9190613f1c565b905060006001600160a01b03821663a5961b4c73__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038a1660dc6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611195919061439b565b6040518263ffffffff1660e01b81526004016111b391815260200190565b60a060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906143de565b60200151604051634793b4ab60e01b81526001600160601b03881660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa15801561124b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611273919081019061406d565b905060ff8216606414158061130757506113078160e0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f89190614471565b64ffffffffff90811691161090565b1561134c5760e081015160405163bf5b8f0960e01b81526001600160601b038916600482015260ff8416602482015264ffffffffff909116604482015260640161097c565b600061136961135f836060015188612db3565b8360800151612e42565b90506113758188612e8d565b156113ae5760405163826a5ff960e01b81526001600160601b03808a16600483015280831660248301528816604482015260640161097c565b6113bc826080015188612db3565b6001600160601b031660808301526113d68a898489612f14565b610d788a8a6130c2565b6000805160206148048339815191528054600160401b810460ff1615906001600160401b03166000811580156114135750825b90506000826001600160401b0316600114801561142f5750303b155b90508115801561143d575080155b1561145b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561148557845460ff60401b1916600160401b1785555b61148f8787613377565b83156114d657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b336114f26001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190613fa8565b6115865760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea9190613f1c565b604051634793b4ab60e01b81526001600160601b03861660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa15801561163d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611665919081019061406d565b905061167386868387612f14565b505050505050565b611683612d72565b806001600160a01b03163b6000036116b95760405163fdeac91f60e01b81526001600160a01b038216600482015260240161097c565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015611733575060408051601f3d908101601f1916820190925261173091810190613fa8565b60015b61175b5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161097c565b806117845760405163fdeac91f60e01b81526001600160a01b038316600482015260240161097c565b505b50565b816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117eb9190613f1c565b6040516375d357df60e01b81526001600160601b03831660048201526001600160a01b0391909116906375d357df90602401602060405180830381865afa15801561183a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185e9190613fa8565b611886576040516392bb4dff60e01b81526001600160601b038216600482015260240161097c565b816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e89190613f1c565b604051631351fccf60e31b81526001600160601b03831660048201526001600160a01b039190911690639a8fe67890602401600060405180830381600087803b15801561193457600080fd5b505af1158015611673573d6000803e3d6000fd5b336119686000805160206147e4833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146119a35760405162d1953b60e31b81526001600160a01b038216600482015260240161097c565b816001600160a01b03163b6000036119d9576040516361798f2f60e11b81526001600160a01b038316600482015260240161097c565b61178482613498565b6000806000805160206147c483398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190613fa8565b15611b03576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190613f1c565b91505090565b54600160601b90046001600160a01b0316919050565b611b21612d72565b611ba183846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613fd0565b603c60008560405180602001604052806000815250610db1565b6001600160a01b03821615611bbe57611bb9826134f9565b611d2d565b6000611bd26001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c56919061448e565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbf9190613f1c565b9050611d2b816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190613f1c565b6134f9565b505b611d3d634a531f3360e01b610d84565b611d4d63b68d180960e01b610d84565b505050565b6000805160206147e4833981519152805460009190600160a01b900460ff16611d7c576000611afd565b638fb3603760e01b91505090565b816001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dec9190613f1c565b6001600160a01b031663fe1f18d68260c86040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050506000826001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190613f1c565b6040516322cc1d4560e11b81526001600160601b03841660048201529091506000906001600160a01b038316906345983a8a90602401602060405180830381865afa158015611f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f39919061439b565b90508015611f6c576040516356a410b760e01b81526001600160601b03841660048201526024810182905260440161097c565b60405163b5346af560e01b81526001600160601b03841660048201526001600160a01b0383169063b5346af5906024015b600060405180830381600087803b158015611fb757600080fd5b505af1158015610e4c573d6000803e3d6000fd5b33611fde6001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa158015612026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204a9190613fa8565b6120725760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d69190613f1c565b604051634793b4ab60e01b81526001600160601b03861660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa158015612129573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612151919081019061406d565b9050612161816080015185612e42565b6001600160601b0316608082015260408051631a99b41b60e31b815290516001600160a01b0389169163d4cda0d89160048083019260209291908290030181865afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190613f1c565b6001600160a01b03166359852426868360ff6040518463ffffffff1660e01b815260040161220893929190614238565b600060405180830381600087803b15801561222257600080fd5b505af1158015612236573d6000803e3d6000fd5b5050505050505050505050565b600061224f608c612bd0565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b59190613f1c565b6001600160a01b031663fe1f18d683606e6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b15801561230f57600080fd5b505af1158015612323573d6000803e3d6000fd5b505050506000816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238b9190613f1c565b60405163b5346af560e01b81526001600160601b03851660048201529091506001600160a01b0382169063b5346af590602401600060405180830381600087803b1580156123d857600080fd5b505af11580156123ec573d6000803e3d6000fd5b50506040516001600160601b03861681527f6764112d27879e5bb12f07fde08a48629ec22e603c75c9942ba62a06c95a55f492506020019050610709565b6000836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248e9190613f1c565b604051634793b4ab60e01b81526001600160601b03851660048201526001600160a01b039190911690634793b4ab90602401600060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612505919081019061406d565b60a081015160405163274acb3560e01b81526001600160601b039182166004820152908416602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af415801561256e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125929190613fd0565b6001600160601b031660a082015260408051631a99b41b60e31b815290516001600160a01b0386169163d4cda0d89160048083019260209291908290030181865afa1580156125e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126099190613f1c565b6001600160a01b03166359852426848360ff5b6040518463ffffffff1660e01b8152600401611f9d93929190614238565b600061079b602861350a565b600061079b604661350a565b600061265c61263a565b6001600160a01b031663c2bf08c86040518060e0016040528061267d600090565b6001600160601b031681526020018b6001600160601b031681526020016126a260dc90565b60ff16815260200160001515815260200160006001600160a01b031681526020018a6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b815260040161270191906138b1565b6020604051808303816000875af1158015612720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127449190613fd0565b9050886001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613f1c565b6001600160a01b03166397affbf5826040518061012001604052808c6001600160601b031681526020018a815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160601b038a166020808301919091526040805163bc1b392d60e01b81528151919093019273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015612874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128989190613fd0565b6001600160601b0316815260200173__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156128ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129139190613fd0565b6001600160601b031681526020018864ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614471565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908a16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156129fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1e9190614471565b64ffffffffff16815260006020909101526040516001600160e01b031960e085901b168152612a519291906004016144ab565b600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b505050506000896001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae79190613f1c565b6040516346f0e8a760e11b81526001600160601b03841660048201529091506001600160a01b03821690638de1d14e90602401600060405180830381600087803b158015612b3457600080fd5b505af1158015612b48573d6000803e3d6000fd5b505050505098975050505050505050565b612b61612d72565b612b6a8161167b565b612b72610f9b565b6001600160a01b038216612b995760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206147c483398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6000612bda6137c7565b6000612bee6001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa158015612c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c589190613fd0565b9250612c64838561361d565b8092508193505050806001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa158015612caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cce9190613f1c565b6080830151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190613fa8565b15612d6b57608082015160405163d53987e560e01b81526001600160a01b03909116600482015260240161097c565b9193909250565b60008051602061480483398151915254600160401b900460ff16612da957604051631afcd79f60e31b815260040160405180910390fd5b565b610206612d72565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af4158015612e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3b9190613fd0565b9392505050565b6040516363cf551160e11b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401612dfa565b6040516304d40eb160e11b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401602060405180830381865af4158015612ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3b9190613fa8565b6040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613fa8565b1561304957602082810151604051634f69237560e11b81528151600482015291015160248201526001600160601b038216604482015260009073__$58e11c6004c5796aaa8c56e718245e69a2$__90639ed246ea906064016040805180830381865af4158015613004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302891906144cd565b915050613039836060015182612db3565b6001600160601b03166060840152505b836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ab9190613f1c565b6001600160a01b03166359852426848460ff61261c565b6000826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131269190613f1c565b60405163bd7d9d8560e01b81526001600160601b03841660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015613179573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131a19190810190614526565b6101c0810151604051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015613201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132259190613fa8565b801561327e575061327e816101c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112d4573d6000803e3d6000fd5b156132a757604051630cd0c0b560e31b81526001600160601b038416600482015260240161097c565b6000846001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330b9190613f1c565b604051630331f98560e21b81526001600160601b03861660048201529091506001600160a01b03821690630cc7e61490602401600060405180830381600087803b15801561335857600080fd5b505af115801561336c573d6000803e3d6000fd5b505050505050505050565b6000805160206148048339815191528054600160401b810460ff1615906001600160401b03166000811580156133aa5750825b90506000826001600160401b031660011480156133c65750303b155b9050811580156133d4575080155b156133f25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561341c57845460ff60401b1916600160401b1785555b6000808780602001905181019061343391906146c2565b90925090506134448260008b611b19565b613454630e1d6de360e41b610d84565b505083156114d657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016114cd565b6000805160206147e483398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b613501612d72565b61178681613721565b600061351e6001546001600160a01b031690565b6001600160a01b031663d39e604383613535610716565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af415801561358a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ae919061448e565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136179190613f1c565b92915050565b6136256137c7565b60006136396001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015613688573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b091908101906146f1565b91506136c782604001518460ff9081169116141590565b1561370b57608082015160408084015190516304081d4960e41b81526001600160a01b03909216600483015260ff808616602484015216604482015260640161097c565b6137188260200151613732565b90509250929050565b613729612d72565b61178681613498565b60006137466001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015613795573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137bd91908101906146f1565b6080015192915050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60006020828403121561381757600080fd5b81356001600160e01b031981168114612e3b57600080fd5b6001600160601b038116811461178657600080fd5b60006020828403121561385657600080fd5b8135612e3b8161382f565b60005b8381101561387c578181015183820152602001613864565b50506000910152565b6000815180845261389d816020860160208601613861565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161391a60c08401826001600160a01b03169052565b5060c083015160e080840152613934610100840182613885565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156139745761397461393c565b60405290565b60405161012081016001600160401b03811182821017156139745761397461393c565b60405161022081016001600160401b03811182821017156139745761397461393c565b60405160e081016001600160401b03811182821017156139745761397461393c565b604051601f8201601f191681016001600160401b0381118282101715613a0a57613a0a61393c565b604052919050565b600060408284031215613a2457600080fd5b613a2c613952565b9050813581526020820135602082015292915050565b60008060608385031215613a5557600080fd5b8235613a608161382f565b91506137188460208501613a12565b6001600160a01b038116811461178657600080fd5b60ff8116811461178657600080fd5b801515811461178657600080fd5b60006001600160401b03821115613aba57613aba61393c565b50601f01601f191660200190565b600082601f830112613ad957600080fd5b8135613aec613ae782613aa1565b6139e2565b818152846020838601011115613b0157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613b3757600080fd5b8635613b4281613a6f565b95506020870135613b528161382f565b94506040870135613b6281613a84565b93506060870135613b7281613a93565b92506080870135613b8281613a6f565b915060a08701356001600160401b03811115613b9d57600080fd5b613ba989828a01613ac8565b9150509295509295509295565b600060208284031215613bc857600080fd5b81356001600160401b03811115613bde57600080fd5b61393484828501613ac8565b600080600080600060a08688031215613c0257600080fd5b8535613c0d81613a6f565b94506020860135613c1d8161382f565b93506040860135613c2d8161382f565b92506060860135613c3d8161382f565b91506080860135613c4d8161382f565b809150509295509295909350565b60008060408385031215613c6e57600080fd5b8235613c7981613a6f565b915060208301356001600160401b03811115613c9457600080fd5b613ca085828601613ac8565b9150509250929050565b600080600060608486031215613cbf57600080fd5b8335613cca81613a6f565b92506020840135613cda8161382f565b91506040840135613cea8161382f565b809150509250925092565b600060208284031215613d0757600080fd5b8135612e3b81613a6f565b60008060408385031215613d2557600080fd5b8235613d3081613a6f565b91506020830135613d408161382f565b809150509250929050565b600080600060608486031215613d6057600080fd5b8335613d6b81613a6f565b92506020840135613d7b81613a6f565b91506040840135613cea81613a6f565b602081526000612e3b6020830184613885565b60008060008060808587031215613db457600080fd5b8435613dbf81613a6f565b93506020850135613dcf8161382f565b92506040850135613ddf8161382f565b91506060850135613def8161382f565b939692955090935050565b64ffffffffff8116811461178657600080fd5b600080600080600080600080610100898b031215613e2a57600080fd5b8835613e3581613a6f565b97506020890135613e458161382f565b96506040890135613e5581613a6f565b9550613e648a60608b01613a12565b945060a0890135613e748161382f565b935060c0890135613e8481613dfa565b925060e08901356001600160401b0380821115613ea057600080fd5b818b0191508b601f830112613eb457600080fd5b813581811115613ec357600080fd5b8c6020828501011115613ed557600080fd5b6020830194508093505050509295985092959890939650565b60008060408385031215613f0157600080fd5b8235613f0c81613a6f565b91506020830135613d4081613a6f565b600060208284031215613f2e57600080fd5b8151612e3b81613a6f565b600060208284031215613f4b57600080fd5b815162ffffff81168114612e3b57600080fd5b600181811c90821680613f7257607f821691505b602082108103613f9257634e487b7160e01b600052602260045260246000fd5b50919050565b8051613fa381613a93565b919050565b600060208284031215613fba57600080fd5b8151612e3b81613a93565b8051613fa38161382f565b600060208284031215613fe257600080fd5b8151612e3b8161382f565b600060408284031215613fff57600080fd5b614007613952565b9050815181526020820151602082015292915050565b600082601f83011261402e57600080fd5b815161403c613ae782613aa1565b81815284602083860101111561405157600080fd5b613934826020830160208701613861565b8051613fa381613dfa565b60006020828403121561407f57600080fd5b81516001600160401b038082111561409657600080fd5b9083019061014082860312156140ab57600080fd5b6140b361397a565b6140bc83613fc5565b81526140cb8660208501613fed565b60208201526060830151828111156140e257600080fd5b6140ee8782860161401d565b60408301525061410060808401613fc5565b606082015261411160a08401613fc5565b608082015261412260c08401613fc5565b60a082015261413360e08401614062565b60c08201526101009150614148828401614062565b60e082015261415a6101208401614062565b91810191909152949350505050565b80516001600160601b0316825260006101406020838101518051868301529081015160408601525060408301518160608601526141a882860182613885565b91505060608301516141c560808601826001600160601b03169052565b5060808301516001600160601b03811660a08601525060a08301516001600160601b03811660c08601525060c083015164ffffffffff811660e08601525060e083015161010061421d8187018364ffffffffff169052565b84015164ffffffffff81166101208701529050509392505050565b6001600160601b038416815260606020820152600061425a6060830185614169565b905060ff83166040830152949350505050565b601f821115611d4d57600081815260208120601f850160051c810160208610156142945750805b601f850160051c820191505b81811015611673578281556001016142a0565b81516001600160401b038111156142cc576142cc61393c565b6142e0816142da8454613f5e565b8461426d565b602080601f83116001811461431557600084156142fd5750858301515b600019600386901b1c1916600185901b178555611673565b600085815260208120601f198616915b8281101561434457888601518255948401946001909101908401614325565b50858210156143625787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561438457600080fd5b81516001600160401b0381168114612e3b57600080fd5b6000602082840312156143ad57600080fd5b5051919050565b8051613fa381613a84565b8051613fa381613a6f565b805163ffffffff81168114613fa357600080fd5b600060a082840312156143f057600080fd5b60405160a081018181106001600160401b03821117156144125761441261393c565b604052825161442081613a84565b8152602083015161443081613a84565b6020820152604083015161444381613a6f565b6040820152614454606084016143ca565b6060820152614465608084016143ca565b60808201529392505050565b60006020828403121561448357600080fd5b8151612e3b81613dfa565b6000602082840312156144a057600080fd5b8151612e3b81613a84565b6001600160601b03831681526040602082015260006139346040830184614169565b600080604083850312156144e057600080fd5b82516144eb8161382f565b6020840151909250613d408161382f565b80516001600160c01b031981168114613fa357600080fd5b805161ffff81168114613fa357600080fd5b60006020828403121561453857600080fd5b81516001600160401b038082111561454f57600080fd5b90830190610220828603121561456457600080fd5b61456c61399d565b61457583613fc5565b815261458360208401613fc5565b6020820152614594604084016144fc565b60408201526145a5606084016144fc565b60608201526145b660808401613fc5565b60808201526145c760a08401613fc5565b60a08201526145d860c08401613fc5565b60c08201526145e960e08401614062565b60e0820152610100808401518381111561460257600080fd5b61460e8882870161401d565b828401525050610120808401518381111561462857600080fd5b6146348882870161401d565b828401525050610140915061464a828401614514565b82820152610160915061465e828401614514565b828201526101809150614672828401613fc5565b828201526101a09150614686828401613fc5565b828201526101c0915061469a828401614062565b828201526101e091506146ae828401614062565b82820152610200915061415a828401614062565b600080604083850312156146d557600080fd5b82516146e081613a6f565b6020840151909250613d4081613a6f565b60006020828403121561470357600080fd5b81516001600160401b038082111561471a57600080fd5b9083019060e0828603121561472e57600080fd5b6147366139c0565b61473f83613fc5565b815261474d60208401613fc5565b602082015261475e604084016143b4565b604082015261476f60608401613f98565b6060820152614780608084016143bf565b608082015261479160a084016143bf565b60a082015260c0830151828111156147a857600080fd5b6147b48782860161401d565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200f3cae3789c3b53e280812eba1b2372302f4ba64b8e0ca239bf7fc1e955ef8e564736f6c63430008140033",
1071
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c806376429bc01161011a578063ada9652e116100ad578063bf7e214f1161007c578063bf7e214f146104d2578063caf4e3d4146104f0578063cc9fc59a146104f8578063e283b4a914610500578063f7c34ee01461051357600080fd5b8063ada9652e14610488578063b5346af51461049d578063b68d1809146104b0578063b7565f9c146104bf57600080fd5b80638fb36037116100e95780638fb3603714610408578063a3f4df7e14610429578063aa9acb2c14610462578063ad328d9f1461047557600080fd5b806376429bc0146103c75780637a9e5e4b146103da578063893d20e8146103ed5780638e32e979146103f557600080fd5b806327bb7a331161019d57806349bb9e4b1161016c57806349bb9e4b146103375780635ab1bd531461034a5780635ed325671461036f578063644c45e014610382578063675393bf146103b457600080fd5b806327bb7a33146102f6578063329d6e741461030957806336fc697e1461031c578063377a6db71461032457600080fd5b8063138461e0116101d9578063138461e0146102935780631eff4b221461029b5780631f8e8f36146102d0578063214cdb80146102e357600080fd5b806301ffc9a71461020b57806306fa45651461024d5780630d8e6e2c146102625780630fec111c1461027e575b600080fd5b610238610219366004613805565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61026061025b366004613844565b610526565b005b61026a610716565b60405162ffffff9091168152602001610244565b6102866107a0565b60405161024491906138b1565b6102606108c1565b6102c27f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610244565b6102606102de366004613a42565b610ac8565b6102606102f1366004613805565b610d84565b610260610304366004613b1e565b610db1565b610260610317366004613bb6565b610e56565b610260610f9b565b610260610332366004613bea565b610fe1565b610260610345366004613c5b565b6113e0565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610244565b61026061037d366004613caa565b6114df565b6000805160206147c4833981519152546001600160601b03165b6040516001600160601b039091168152602001610244565b6102606103c2366004613cf5565b61167b565b6102606103d5366004613d12565b611789565b6102606103e8366004613cf5565b611948565b6103576119e2565b610260610403366004613d4b565b611b19565b610410611d52565b6040516001600160e01b03199091168152602001610244565b6104556040518060400160405280600d81526020016c42756e646c655365727669636560981b81525081565b6040516102449190613d8b565b610260610470366004613d12565b611d8a565b610260610483366004613d9e565b611fcb565b6102c26000805160206147c483398151915281565b6102606104ab366004613844565b612243565b60405160dc8152602001610244565b6102606104cd366004613caa565b61242a565b6000805160206147e4833981519152546001600160a01b0316610357565b61035761263a565b610357612646565b61039c61050e366004613e0d565b612652565b610260610521366004613eee565b612b59565b6000610532608c612bd0565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105989190613f1c565b6001600160a01b031663fe1f18d68360646040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156105f257600080fd5b505af1158015610606573d6000803e3d6000fd5b505050506000816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190613f1c565b6040516306fa456560e01b81526001600160601b03851660048201529091506001600160a01b038216906306fa456590602401600060405180830381600087803b1580156106bb57600080fd5b505af11580156106cf573d6000803e3d6000fd5b50506040516001600160601b03861681527f87cfb697b5d649751f13ba6e2e51778a1fd0a1f260df7281952986c453708e71925060200190505b60405180910390a1505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b9190613f39565b905090565b6107a86137c7565b6040805160e081018252600081527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b038116602084015260ff600160601b8204811694840194909452600160681b90049092161515606082015230608082015260a0810161081d6119e2565b6001600160a01b0316815260200182600101805461083a90613f5e565b80601f016020809104026020016040519081016040528092919081815260200182805461086690613f5e565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b505050505081525091505090565b60006000805160206147c483398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610930573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109549190613fa8565b156109855780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306109986001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa1580156109e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a049190613fa8565b610a2c5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161097c565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190613fd0565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b600080610ad5608c612bd0565b92505091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e9190613f1c565b604051634793b4ab60e01b81526001600160601b03871660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bb9919081019061406d565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610c17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3b9190613fa8565b15610c64576040516349e9f38360e01b81526001600160601b038716600482015260240161097c565b80516001600160601b03858116911614610caf57805160405163dab86e4560e01b81526001600160601b0380891660048301529182166024820152908516604482015260640161097c565b848160200181905250826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a9190613f1c565b6001600160a01b03166359852426878360ff6040518463ffffffff1660e01b8152600401610d4a93929190614238565b600060405180830381600087803b158015610d6457600080fd5b505af1158015610d78573d6000803e3d6000fd5b50505050505050505050565b610d8c612d72565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610db9612d72565b610dc38287612b59565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610e4c83826142b3565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610e78610716565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edc9190614372565b6000805160206148048339815191528054600160401b900460ff1680610f0f575080546001600160401b03808416911610155b15610f2d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610f5783612dab565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610709565b610fa3612d72565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b33610ff46001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa15801561103c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110609190613fa8565b6110885760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000866001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ec9190613f1c565b905060006001600160a01b03821663a5961b4c73__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038a1660dc6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611195919061439b565b6040518263ffffffff1660e01b81526004016111b391815260200190565b60a060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906143de565b60200151604051634793b4ab60e01b81526001600160601b03881660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa15801561124b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611273919081019061406d565b905060ff8216606414158061130757506113078160e0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f89190614471565b64ffffffffff90811691161090565b1561134c5760e081015160405163bf5b8f0960e01b81526001600160601b038916600482015260ff8416602482015264ffffffffff909116604482015260640161097c565b600061136961135f836060015188612db3565b8360800151612e42565b90506113758188612e8d565b156113ae5760405163826a5ff960e01b81526001600160601b03808a16600483015280831660248301528816604482015260640161097c565b6113bc826080015188612db3565b6001600160601b031660808301526113d68a898489612f14565b610d788a8a6130c2565b6000805160206148048339815191528054600160401b810460ff1615906001600160401b03166000811580156114135750825b90506000826001600160401b0316600114801561142f5750303b155b90508115801561143d575080155b1561145b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561148557845460ff60401b1916600160401b1785555b61148f8787613377565b83156114d657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b336114f26001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190613fa8565b6115865760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea9190613f1c565b604051634793b4ab60e01b81526001600160601b03861660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa15801561163d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611665919081019061406d565b905061167386868387612f14565b505050505050565b611683612d72565b806001600160a01b03163b6000036116b95760405163fdeac91f60e01b81526001600160a01b038216600482015260240161097c565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015611733575060408051601f3d908101601f1916820190925261173091810190613fa8565b60015b61175b5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161097c565b806117845760405163fdeac91f60e01b81526001600160a01b038316600482015260240161097c565b505b50565b816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117eb9190613f1c565b6040516375d357df60e01b81526001600160601b03831660048201526001600160a01b0391909116906375d357df90602401602060405180830381865afa15801561183a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185e9190613fa8565b611886576040516392bb4dff60e01b81526001600160601b038216600482015260240161097c565b816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e89190613f1c565b604051631351fccf60e31b81526001600160601b03831660048201526001600160a01b039190911690639a8fe67890602401600060405180830381600087803b15801561193457600080fd5b505af1158015611673573d6000803e3d6000fd5b336119686000805160206147e4833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146119a35760405162d1953b60e31b81526001600160a01b038216600482015260240161097c565b816001600160a01b03163b6000036119d9576040516361798f2f60e11b81526001600160a01b038316600482015260240161097c565b61178482613498565b6000806000805160206147c483398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190613fa8565b15611b03576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afd9190613f1c565b91505090565b54600160601b90046001600160a01b0316919050565b611b21612d72565b611ba183846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613fd0565b603c60008560405180602001604052806000815250610db1565b6001600160a01b03821615611bbe57611bb9826134f9565b611d2d565b6000611bd26001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c56919061448e565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611c9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbf9190613f1c565b9050611d2b816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190613f1c565b6134f9565b505b611d3d634a531f3360e01b610d84565b611d4d63b68d180960e01b610d84565b505050565b6000805160206147e4833981519152805460009190600160a01b900460ff16611d7c576000611afd565b638fb3603760e01b91505090565b816001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dec9190613f1c565b6001600160a01b031663fe1f18d68260c86040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050506000826001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190613f1c565b6040516322cc1d4560e11b81526001600160601b03841660048201529091506000906001600160a01b038316906345983a8a90602401602060405180830381865afa158015611f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f39919061439b565b90508015611f6c576040516356a410b760e01b81526001600160601b03841660048201526024810182905260440161097c565b60405163b5346af560e01b81526001600160601b03841660048201526001600160a01b0383169063b5346af5906024015b600060405180830381600087803b158015611fb757600080fd5b505af1158015610e4c573d6000803e3d6000fd5b33611fde6001546001600160a01b031690565b604051632b91e0a960e01b81526001600160a01b0383811660048301529190911690632b91e0a990602401602060405180830381865afa158015612026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204a9190613fa8565b6120725760405163ea8a77fd60e01b81526001600160a01b038216600482015260240161097c565b6000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d69190613f1c565b604051634793b4ab60e01b81526001600160601b03861660048201529091506000906001600160a01b03831690634793b4ab90602401600060405180830381865afa158015612129573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612151919081019061406d565b9050612161816080015185612e42565b6001600160601b0316608082015260408051631a99b41b60e31b815290516001600160a01b0389169163d4cda0d89160048083019260209291908290030181865afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190613f1c565b6001600160a01b03166359852426868360ff6040518463ffffffff1660e01b815260040161220893929190614238565b600060405180830381600087803b15801561222257600080fd5b505af1158015612236573d6000803e3d6000fd5b5050505050505050505050565b600061224f608c612bd0565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b59190613f1c565b6001600160a01b031663fe1f18d683606e6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b15801561230f57600080fd5b505af1158015612323573d6000803e3d6000fd5b505050506000816001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238b9190613f1c565b60405163b5346af560e01b81526001600160601b03851660048201529091506001600160a01b0382169063b5346af590602401600060405180830381600087803b1580156123d857600080fd5b505af11580156123ec573d6000803e3d6000fd5b50506040516001600160601b03861681527f6764112d27879e5bb12f07fde08a48629ec22e603c75c9942ba62a06c95a55f492506020019050610709565b6000836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248e9190613f1c565b604051634793b4ab60e01b81526001600160601b03851660048201526001600160a01b039190911690634793b4ab90602401600060405180830381865afa1580156124dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612505919081019061406d565b60a081015160405163274acb3560e01b81526001600160601b039182166004820152908416602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af415801561256e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125929190613fd0565b6001600160601b031660a082015260408051631a99b41b60e31b815290516001600160a01b0386169163d4cda0d89160048083019260209291908290030181865afa1580156125e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126099190613f1c565b6001600160a01b03166359852426848360ff5b6040518463ffffffff1660e01b8152600401611f9d93929190614238565b600061079b602861350a565b600061079b604661350a565b600061265c61263a565b6001600160a01b031663c2bf08c86040518060e0016040528061267d600090565b6001600160601b031681526020018b6001600160601b031681526020016126a260dc90565b60ff16815260200160001515815260200160006001600160a01b031681526020018a6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b815260040161270191906138b1565b6020604051808303816000875af1158015612720573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127449190613fd0565b9050886001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a89190613f1c565b6001600160a01b03166397affbf5826040518061012001604052808c6001600160601b031681526020018a815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160601b038a166020808301919091526040805163bc1b392d60e01b81528151919093019273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015612874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128989190613fd0565b6001600160601b0316815260200173__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156128ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129139190613fd0565b6001600160601b031681526020018864ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614471565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908a16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156129fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1e9190614471565b64ffffffffff16815260006020909101526040516001600160e01b031960e085901b168152612a519291906004016144ab565b600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b505050506000896001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae79190613f1c565b6040516346f0e8a760e11b81526001600160601b03841660048201529091506001600160a01b03821690638de1d14e90602401600060405180830381600087803b158015612b3457600080fd5b505af1158015612b48573d6000803e3d6000fd5b505050505098975050505050505050565b612b61612d72565b612b6a8161167b565b612b72610f9b565b6001600160a01b038216612b995760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206147c483398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6000612bda6137c7565b6000612bee6001546001600160a01b031690565b604051636939560f60e11b81523360048201526001600160a01b03919091169063d272ac1e90602401602060405180830381865afa158015612c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c589190613fd0565b9250612c64838561361d565b8092508193505050806001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa158015612caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cce9190613f1c565b6080830151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3c9190613fa8565b15612d6b57608082015160405163d53987e560e01b81526001600160a01b03909116600482015260240161097c565b9193909250565b60008051602061480483398151915254600160401b900460ff16612da957604051631afcd79f60e31b815260040160405180910390fd5b565b610206612d72565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af4158015612e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3b9190613fd0565b9392505050565b6040516363cf551160e11b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401612dfa565b6040516304d40eb160e11b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401602060405180830381865af4158015612ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3b9190613fa8565b6040516330b8415f60e01b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613fa8565b1561304957602082810151604051634f69237560e11b81528151600482015291015160248201526001600160601b038216604482015260009073__$58e11c6004c5796aaa8c56e718245e69a2$__90639ed246ea906064016040805180830381865af4158015613004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302891906144cd565b915050613039836060015182612db3565b6001600160601b03166060840152505b836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015613087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ab9190613f1c565b6001600160a01b03166359852426848460ff61261c565b6000826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131269190613f1c565b60405163bd7d9d8560e01b81526001600160601b03841660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015613179573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131a19190810190614526565b6101c0810151604051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015613201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132259190613fa8565b801561327e575061327e816101c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112d4573d6000803e3d6000fd5b156132a757604051630cd0c0b560e31b81526001600160601b038416600482015260240161097c565b6000846001600160a01b03166361f5f4206040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330b9190613f1c565b604051630331f98560e21b81526001600160601b03861660048201529091506001600160a01b03821690630cc7e61490602401600060405180830381600087803b15801561335857600080fd5b505af115801561336c573d6000803e3d6000fd5b505050505050505050565b6000805160206148048339815191528054600160401b810460ff1615906001600160401b03166000811580156133aa5750825b90506000826001600160401b031660011480156133c65750303b155b9050811580156133d4575080155b156133f25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561341c57845460ff60401b1916600160401b1785555b6000808780602001905181019061343391906146c2565b90925090506134448260008b611b19565b613454630e1d6de360e41b610d84565b505083156114d657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016114cd565b6000805160206147e483398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b613501612d72565b61178681613721565b600061351e6001546001600160a01b031690565b6001600160a01b031663d39e604383613535610716565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af415801561358a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ae919061448e565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136179190613f1c565b92915050565b6136256137c7565b60006136396001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015613688573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b091908101906146f1565b91506136c782604001518460ff9081169116141590565b1561370b57608082015160408084015190516304081d4960e41b81526001600160a01b03909216600483015260ff808616602484015216604482015260640161097c565b6137188260200151613732565b90509250929050565b613729612d72565b61178681613498565b60006137466001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015613795573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137bd91908101906146f1565b6080015192915050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60006020828403121561381757600080fd5b81356001600160e01b031981168114612e3b57600080fd5b6001600160601b038116811461178657600080fd5b60006020828403121561385657600080fd5b8135612e3b8161382f565b60005b8381101561387c578181015183820152602001613864565b50506000910152565b6000815180845261389d816020860160208601613861565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161391a60c08401826001600160a01b03169052565b5060c083015160e080840152613934610100840182613885565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156139745761397461393c565b60405290565b60405161012081016001600160401b03811182821017156139745761397461393c565b60405161022081016001600160401b03811182821017156139745761397461393c565b60405160e081016001600160401b03811182821017156139745761397461393c565b604051601f8201601f191681016001600160401b0381118282101715613a0a57613a0a61393c565b604052919050565b600060408284031215613a2457600080fd5b613a2c613952565b9050813581526020820135602082015292915050565b60008060608385031215613a5557600080fd5b8235613a608161382f565b91506137188460208501613a12565b6001600160a01b038116811461178657600080fd5b60ff8116811461178657600080fd5b801515811461178657600080fd5b60006001600160401b03821115613aba57613aba61393c565b50601f01601f191660200190565b600082601f830112613ad957600080fd5b8135613aec613ae782613aa1565b6139e2565b818152846020838601011115613b0157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613b3757600080fd5b8635613b4281613a6f565b95506020870135613b528161382f565b94506040870135613b6281613a84565b93506060870135613b7281613a93565b92506080870135613b8281613a6f565b915060a08701356001600160401b03811115613b9d57600080fd5b613ba989828a01613ac8565b9150509295509295509295565b600060208284031215613bc857600080fd5b81356001600160401b03811115613bde57600080fd5b61393484828501613ac8565b600080600080600060a08688031215613c0257600080fd5b8535613c0d81613a6f565b94506020860135613c1d8161382f565b93506040860135613c2d8161382f565b92506060860135613c3d8161382f565b91506080860135613c4d8161382f565b809150509295509295909350565b60008060408385031215613c6e57600080fd5b8235613c7981613a6f565b915060208301356001600160401b03811115613c9457600080fd5b613ca085828601613ac8565b9150509250929050565b600080600060608486031215613cbf57600080fd5b8335613cca81613a6f565b92506020840135613cda8161382f565b91506040840135613cea8161382f565b809150509250925092565b600060208284031215613d0757600080fd5b8135612e3b81613a6f565b60008060408385031215613d2557600080fd5b8235613d3081613a6f565b91506020830135613d408161382f565b809150509250929050565b600080600060608486031215613d6057600080fd5b8335613d6b81613a6f565b92506020840135613d7b81613a6f565b91506040840135613cea81613a6f565b602081526000612e3b6020830184613885565b60008060008060808587031215613db457600080fd5b8435613dbf81613a6f565b93506020850135613dcf8161382f565b92506040850135613ddf8161382f565b91506060850135613def8161382f565b939692955090935050565b64ffffffffff8116811461178657600080fd5b600080600080600080600080610100898b031215613e2a57600080fd5b8835613e3581613a6f565b97506020890135613e458161382f565b96506040890135613e5581613a6f565b9550613e648a60608b01613a12565b945060a0890135613e748161382f565b935060c0890135613e8481613dfa565b925060e08901356001600160401b0380821115613ea057600080fd5b818b0191508b601f830112613eb457600080fd5b813581811115613ec357600080fd5b8c6020828501011115613ed557600080fd5b6020830194508093505050509295985092959890939650565b60008060408385031215613f0157600080fd5b8235613f0c81613a6f565b91506020830135613d4081613a6f565b600060208284031215613f2e57600080fd5b8151612e3b81613a6f565b600060208284031215613f4b57600080fd5b815162ffffff81168114612e3b57600080fd5b600181811c90821680613f7257607f821691505b602082108103613f9257634e487b7160e01b600052602260045260246000fd5b50919050565b8051613fa381613a93565b919050565b600060208284031215613fba57600080fd5b8151612e3b81613a93565b8051613fa38161382f565b600060208284031215613fe257600080fd5b8151612e3b8161382f565b600060408284031215613fff57600080fd5b614007613952565b9050815181526020820151602082015292915050565b600082601f83011261402e57600080fd5b815161403c613ae782613aa1565b81815284602083860101111561405157600080fd5b613934826020830160208701613861565b8051613fa381613dfa565b60006020828403121561407f57600080fd5b81516001600160401b038082111561409657600080fd5b9083019061014082860312156140ab57600080fd5b6140b361397a565b6140bc83613fc5565b81526140cb8660208501613fed565b60208201526060830151828111156140e257600080fd5b6140ee8782860161401d565b60408301525061410060808401613fc5565b606082015261411160a08401613fc5565b608082015261412260c08401613fc5565b60a082015261413360e08401614062565b60c08201526101009150614148828401614062565b60e082015261415a6101208401614062565b91810191909152949350505050565b80516001600160601b0316825260006101406020838101518051868301529081015160408601525060408301518160608601526141a882860182613885565b91505060608301516141c560808601826001600160601b03169052565b5060808301516001600160601b03811660a08601525060a08301516001600160601b03811660c08601525060c083015164ffffffffff811660e08601525060e083015161010061421d8187018364ffffffffff169052565b84015164ffffffffff81166101208701529050509392505050565b6001600160601b038416815260606020820152600061425a6060830185614169565b905060ff83166040830152949350505050565b601f821115611d4d57600081815260208120601f850160051c810160208610156142945750805b601f850160051c820191505b81811015611673578281556001016142a0565b81516001600160401b038111156142cc576142cc61393c565b6142e0816142da8454613f5e565b8461426d565b602080601f83116001811461431557600084156142fd5750858301515b600019600386901b1c1916600185901b178555611673565b600085815260208120601f198616915b8281101561434457888601518255948401946001909101908401614325565b50858210156143625787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561438457600080fd5b81516001600160401b0381168114612e3b57600080fd5b6000602082840312156143ad57600080fd5b5051919050565b8051613fa381613a84565b8051613fa381613a6f565b805163ffffffff81168114613fa357600080fd5b600060a082840312156143f057600080fd5b60405160a081018181106001600160401b03821117156144125761441261393c565b604052825161442081613a84565b8152602083015161443081613a84565b6020820152604083015161444381613a6f565b6040820152614454606084016143ca565b6060820152614465608084016143ca565b60808201529392505050565b60006020828403121561448357600080fd5b8151612e3b81613dfa565b6000602082840312156144a057600080fd5b8151612e3b81613a84565b6001600160601b03831681526040602082015260006139346040830184614169565b600080604083850312156144e057600080fd5b82516144eb8161382f565b6020840151909250613d408161382f565b80516001600160c01b031981168114613fa357600080fd5b805161ffff81168114613fa357600080fd5b60006020828403121561453857600080fd5b81516001600160401b038082111561454f57600080fd5b90830190610220828603121561456457600080fd5b61456c61399d565b61457583613fc5565b815261458360208401613fc5565b6020820152614594604084016144fc565b60408201526145a5606084016144fc565b60608201526145b660808401613fc5565b60808201526145c760a08401613fc5565b60a08201526145d860c08401613fc5565b60c08201526145e960e08401614062565b60e0820152610100808401518381111561460257600080fd5b61460e8882870161401d565b828401525050610120808401518381111561462857600080fd5b6146348882870161401d565b828401525050610140915061464a828401614514565b82820152610160915061465e828401614514565b828201526101809150614672828401613fc5565b828201526101a09150614686828401613fc5565b828201526101c0915061469a828401614062565b828201526101e091506146ae828401614062565b82820152610200915061415a828401614062565b600080604083850312156146d557600080fd5b82516146e081613a6f565b6020840151909250613d4081613a6f565b60006020828403121561470357600080fd5b81516001600160401b038082111561471a57600080fd5b9083019060e0828603121561472e57600080fd5b6147366139c0565b61473f83613fc5565b815261474d60208401613fc5565b602082015261475e604084016143b4565b604082015261476f60608401613f98565b6060820152614780608084016143bf565b608082015261479160a084016143bf565b60a082015260c0830151828111156147a857600080fd5b6147b48782860161401d565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212200f3cae3789c3b53e280812eba1b2372302f4ba64b8e0ca239bf7fc1e955ef8e564736f6c63430008140033",
1079
+ "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615f8d806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806376429bc011610109578063ad328d9f1161009e578063bf7e214f1161006e578063bf7e214f146104cc578063e283b4a9146104d4578063f3d0e5d2146104e7578063fc5f2d5514610510575f80fd5b8063ad328d9f1461048b578063ada9652e1461049e578063b5346af5146104b2578063b68d1809146104c5575f80fd5b8063893d20e8116100d9578063893d20e8146103f65780638fb36037146103fe578063a3f4df7e1461041f578063aa9acb2c14610458575f80fd5b806376429bc0146103ae57806376b707b7146103c15780637a9e5e4b146103db5780638899278a146103ee575f80fd5b80632d2cf2221161017f57806354e507791161014f57806354e50779146103395780635ab1bd531461034c578063644c45e0146103715780636c741e781461038e575f80fd5b80632d2cf222146102ed578063329d6e741461030057806349bb9e4b146103135780634adcf90914610326575f80fd5b8063138461e0116101ba578063138461e0146102725780631eff4b22146102925780631f8e8f36146102c757806325fa796b146102da575f80fd5b806301ffc9a7146101eb57806306fa45651461022c5780630d8e6e2c146102415780630fec111c1461025d575b5f80fd5b6102176101f9366004614fe0565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61023f61023a36600461501b565b610523565b005b61024961070e565b60405162ffffff9091168152602001610223565b610265610795565b6040516102239190615064565b61027a610921565b6040516001600160601b039091168152602001610223565b6102b97f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610223565b61023f6102d536600461521c565b61092b565b61023f6102e8366004615264565b610be2565b61027a6102fb366004615264565b61103e565b61023f61030e366004615324565b61136c565b61023f610321366004615355565b6114ae565b61023f6103343660046153a1565b6115aa565b61027a6103473660046153fa565b6119e2565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610223565b5f80516020615ef8833981519152546001600160601b031661027a565b610396612184565b6040516001600160401b039091168152602001610223565b61023f6103bc366004615431565b612210565b6103c9612311565b60405160ff9091168152602001610223565b61023f6103e936600461544d565b612385565b6102b9600381565b61035961240b565b61040661253c565b6040516001600160e01b03199091168152602001610223565b61044b6040518060400160405280600d81526020016c42756e646c655365727669636560981b81525081565b6040516102239190615468565b61046b610466366004615431565b612571565b604080516001600160601b03938416815292909116602083015201610223565b61023f6104993660046153a1565b61297e565b6102b95f80516020615ef883398151915281565b61023f6104c036600461501b565b612a7e565b601f6103c9565b610359612c60565b61027a6104e236600461548c565b612c7b565b6104fa6104f5366004615564565b6132ae565b60405164ffffffffff9091168152602001610223565b61021761051e366004615431565b6137b4565b61052e81601f613b11565b5f610539600f613bc8565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610579573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059d9190615590565b6001600160a01b031663fe1f18d68360056040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156105f4575f80fd5b505af1158015610606573d5f803e3d5ffd5b505050505f816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066b9190615590565b6040516306fa456560e01b81526001600160601b03851660048201529091506001600160a01b038216906306fa4565906024015f604051808303815f87803b1580156106b5575f80fd5b505af11580156106c7573d5f803e3d5ffd5b50506040516001600160601b03861681527f87cfb697b5d649751f13ba6e2e51778a1fd0a1f260df7281952986c453708e71925060200190505b60405180910390a1505050565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801561076c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079091906155ab565b905090565b61079d614fa3565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610813573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083791906155dd565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161087f61240b565b6001600160a01b0316815260200182600101805461089c906155f8565b80601f01602080910402602001604051908101604052809291908181526020018280546108c8906155f8565b80156109135780601f106108ea57610100808354040283529160200191610913565b820191905f5260205f20905b8154815290600101906020018083116108f657829003601f168201915b505050505081525091505090565b5f61079030613c64565b61093682601f613b11565b5f80610942600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a89190615590565b604051634793b4ab60e01b81526001600160601b03871660048201529091505f906001600160a01b03831690634793b4ab906024015f60405180830381865afa1580156109f7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a1e919081019061568f565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9e919061577e565b15610acc576040516349e9f38360e01b81526001600160601b03871660048201526024015b60405180910390fd5b8051610ad89085613e5d565b15610b1457805160405163dab86e4560e01b81526001600160601b03808916600483015291821660248201529085166044820152606401610ac3565b848160200181905250826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7d9190615590565b6001600160a01b03166351dd844b878360ff6040518463ffffffff1660e01b8152600401610bad9392919061581b565b5f604051808303815f87803b158015610bc4575f80fd5b505af1158015610bd6573d5f803e3d5ffd5b50505050505050505050565b610bed82601f613b11565b5f836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190615590565b604051634793b4ab60e01b81526001600160601b03851660048201526001600160a01b039190911690634793b4ab906024015f60405180830381865afa158015610c9a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cc1919081019061568f565b90505f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190615590565b604051637d8f1e8160e01b81526001600160601b03861660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa158015610d71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d959190615868565b9050610daa8160055b60ff9081169116141590565b8015610dbc5750610dbc81606e610d9e565b80610e445750610e44826080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e359190615883565b64ffffffffff90811691161090565b80610ec8575060a0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015610ea4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec8919061577e565b15610f0d57608082015160405163bf5b8f0960e01b81526001600160601b038616600482015260ff8316602482015264ffffffffff9091166044820152606401610ac3565b6004805460408051631a99b41b60e31b815290516001600160a01b03928316936325e451d3938a169263d4cda0d892818301926020928290030181865afa158015610f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7e9190615590565b868673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610fc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610feb91906155dd565b6040518563ffffffff1660e01b815260040161100a949392919061589e565b5f604051808303815f87803b158015611021575f80fd5b505af1158015611033573d5f803e3d5ffd5b505050505050505050565b5f61104a83601f613b11565b5f846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ab9190615590565b6040516317bb785d60e21b81526001600160601b03861660048201529091505f90819081906001600160a01b03851690635eede17490602401606060405180830381865afa1580156110ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112391906158d0565b9250925092508594505f6111408461113b8585613ee9565b613f6e565b9050866001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63262b32d2909173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156111af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d391906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af415801561121c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611240919061577e565b15611249578095505b6112538682613fb8565b156112835760405162f808ef60e61b81526001600160601b03808916600483015282166024820152604401610ac3565b60045f9054906101000a90046001600160a01b03166001600160a01b031663e618053f868a8973__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131491906155dd565b6040518563ffffffff1660e01b8152600401611333949392919061589e565b5f604051808303815f87803b15801561134a575f80fd5b505af115801561135c573d5f803e3d5ffd5b5050505050505050509392505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61138e61070e565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f09190615923565b5f80516020615f388339815191528054600160401b900460ff1680611422575080546001600160401b03808416911610155b156114405760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561146a83614002565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610701565b5f80516020615f388339815191528054600160401b810460ff1615906001600160401b03165f811580156114df5750825b90505f826001600160401b031660011480156114fa5750303b155b905081158015611508575080155b156115265760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561155057845460ff60401b1916600160401b1785555b61155a878761400a565b83156115a157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6115b6335b5f36614179565b6115c1836015613b11565b6115cc82601f613b11565b5f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611609573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162d9190615590565b90505f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116909190615590565b604051637d8f1e8160e01b81526001600160601b03861660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa1580156116dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117019190615868565b604051634793b4ab60e01b81526001600160601b03861660048201529091505f906001600160a01b03841690634793b4ab906024015f60405180830381865afa158015611750573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611777919081019061568f565b9050611784826005610d9e565b806117d957506117d9816080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b1561181e57608081015160405163bf5b8f0960e01b81526001600160601b038716600482015260ff8416602482015264ffffffffff9091166044820152606401610ac3565b50505f856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118819190615590565b6040516317bb785d60e21b81526001600160601b03861660048201529091505f90819081906001600160a01b03851690635eede17490602401606060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f991906158d0565b9250925092505f61190e8461113b8585613ee9565b905061191a818861426f565b156119535760405163826a5ff960e01b81526001600160601b03808a166004830152808316602483015288166044820152606401610ac3565b505060405163248a77dd60e01b81526001600160601b038088166004830152861660248201526001600160a01b038416925063248a77dd91506044016020604051808303815f875af11580156119ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cf91906155dd565b506119da86866142b9565b505050505050565b5f6119ee83601f613b11565b5f806119fa600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a609190615590565b60405163f0ea17c360e01b81526001600160601b03851660048201529091505f906001600160a01b0383169063f0ea17c3906024015f60405180830381865afa158015611aaf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ad69190810190615949565b90505f81606001519050869550856001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63262b32d2909173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611b50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b7491906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af4158015611bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be1919061577e565b15611c5c57604051630232ca4960e01b81526001600160601b03891660048201526001600160a01b03841690630232ca4990602401602060405180830381865afa158015611c31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5591906155dd565b9550611dfa565b604051630232ca4960e01b81526001600160601b03898116600483015273__$3bac17678db7ae928afa209f2f44deec9c$__916398058c4c918916906001600160a01b03871690630232ca4990602401602060405180830381865afa158015611cc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ceb91906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af4158015611d34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d58919061577e565b15611dfa57604051630232ca4960e01b81526001600160601b038916600482015286906001600160a01b03851690630232ca4990602401602060405180830381865afa158015611daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dce91906155dd565b60405163d98a83b760e01b81526001600160601b03928316600482015291166024820152604401610ac3565b5f846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5b9190615590565b905060045f9054906101000a90046001600160a01b03166001600160a01b031663e618053f828b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611ec9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eed91906155dd565b8b6040518563ffffffff1660e01b8152600401611f0d949392919061589e565b5f604051808303815f87803b158015611f24575f80fd5b505af1158015611f36573d5f803e3d5ffd5b5050505060045f9054906101000a90046001600160a01b03166001600160a01b03166389fad8a282888a73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611fa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fcb91906155dd565b6040518563ffffffff1660e01b8152600401611fea949392919061589e565b5f604051808303815f87803b158015612001575f80fd5b505af1158015612013573d5f803e3d5ffd5b50505050505f61202b6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b038b1660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612078573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209c9190615590565b602080850151604080516001600160601b03808f1682526001600160a01b0380871695830195909552939092169082015290891660608201529091507fc3eff56dd5436528da6d208eff7a92ed71cafc177d49a9c55303bff3b1bcf8d29060800160405180910390a1604080840151905163153c361360e21b81526001600160a01b03848116600483015283811660248301526001600160601b038a166044830152909116906354f0d84c906064015f604051808303815f87803b158015612162575f80fd5b505af1158015612174573d5f803e3d5ffd5b5050505050505050505092915050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3601f6121a9612311565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af41580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190615923565b612219336115af565b612224816015613b11565b61222e82826137b4565b612256576040516392bb4dff60e01b81526001600160601b0382166004820152602401610ac3565b816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612292573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b69190615590565b604051631351fccf60e31b81526001600160601b03831660048201526001600160a01b039190911690639a8fe678906024015f604051808303815f87803b1580156122ff575f80fd5b505af11580156119da573d5f803e3d5ffd5b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190615868565b3361238e612c60565b6001600160a01b0316816001600160a01b0316146123c95760405162d1953b60e31b81526001600160a01b0382166004820152602401610ac3565b816001600160a01b03163b5f036123fe576040516361798f2f60e11b81526001600160a01b0383166004820152602401610ac3565b6124078261452b565b5050565b5f805f80516020615ef883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061249b919061577e565b15612526576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156124fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125209190615590565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020615f1883398151915280545f9190600160a01b900460ff16612563575f612520565b638fb3603760e01b91505090565b5f8061257c336115af565b61258783601f613b11565b5f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e89190615590565b90505f856001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264b9190615590565b6040516322cc1d4560e11b81526001600160601b03871660048201529091505f906001600160a01b038316906345983a8a90602401602060405180830381865afa15801561269b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bf9190615a23565b905080156126f2576040516356a410b760e01b81526001600160601b038716600482015260248101829052604401610ac3565b5f876001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561272f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127539190615590565b90506001600160a01b03811663fe1f18d68860c86040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156127ad575f80fd5b505af11580156127bf573d5f803e3d5ffd5b505060405163b5346af560e01b81526001600160601b038a1660048201526001600160a01b038616925063b5346af591506024015f604051808303815f87803b15801561280a575f80fd5b505af115801561281c573d5f803e3d5ffd5b50506040516308a390bb60e21b81526001600160601b038a1660048201525f92506001600160a01b038716915063228e42ec90602401602060405180830381865afa15801561286d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289191906155dd565b604051630232ca4960e01b81526001600160601b038a1660048201529091506001600160a01b03861690630232ca4990602401602060405180830381865afa1580156128df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290391906155dd565b955061290f8187613f6e565b6004805460405163e618053f60e01b81529299506001600160a01b03169163e618053f916129459186918d918d918d910161589e565b5f604051808303815f87803b15801561295c575f80fd5b505af115801561296e573d5f803e3d5ffd5b5050505050505050509250929050565b612987336115af565b612992836015613b11565b61299d82601f613b11565b836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129fd9190615590565b6040516353ebe12960e01b81526001600160601b038085166004830152831660248201526001600160a01b0391909116906353ebe129906044016020604051808303815f875af1158015612a53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a7791906155dd565b5050505050565b612a8981601f613b11565b5f612a94600f613bc8565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190615590565b6001600160a01b031663fe1f18d683606e6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b158015612b4f575f80fd5b505af1158015612b61573d5f803e3d5ffd5b505050505f816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bc69190615590565b60405163b5346af560e01b81526001600160601b03851660048201529091506001600160a01b0382169063b5346af5906024015f604051808303815f87803b158015612c10575f80fd5b505af1158015612c22573d5f803e3d5ffd5b50506040516001600160601b03861681527f6764112d27879e5bb12f07fde08a48629ec22e603c75c9942ba62a06c95a55f492506020019050610701565b5f80516020615f18833981519152546001600160a01b031690565b5f612c85336115af565b612c9088600f613b11565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c2bf08c86040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612d05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d2991906155dd565b6001600160601b031681526020018b6001600160601b03168152602001612d4e601f90565b60ff1681526020015f151581526020015f6001600160a01b031681526020018a6001600160a01b0316815260200160405180602001604052805f8152508152506040518263ffffffff1660e01b8152600401612daa9190615064565b6020604051808303815f875af1158015612dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dea91906155dd565b90505f896001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e4d9190615590565b9050806001600160a01b031663a46eb8dc836040518060c001604052808d6001600160601b031681526020018b815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250604080516356db0c1960e11b8152905160209283019273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480830193928290030181865af4158015612f07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2b9190615883565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa29190615883565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908b16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015612fff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130239190615883565b64ffffffffff1681525f6020909101526040516001600160e01b031960e085901b168152613055929190600401615a3a565b5f604051808303815f87803b15801561306c575f80fd5b505af115801561307e573d5f803e3d5ffd5b50506040516330b8415f60e01b81526001600160601b038916600482015273__$3bac17678db7ae928afa209f2f44deec9c$__92506330b8415f9150602401602060405180830381865af41580156130d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130fc919061577e565b156131df5760045f9054906101000a90046001600160a01b03166001600160a01b03166325e451d382848973__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561316e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319291906155dd565b6040518563ffffffff1660e01b81526004016131b1949392919061589e565b5f604051808303815f87803b1580156131c8575f80fd5b505af11580156131da573d5f803e3d5ffd5b505050505b5f8a6001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561321c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132409190615590565b6040516346f0e8a760e11b81526001600160601b03851660048201529091506001600160a01b03821690638de1d14e906024015f604051808303815f87803b15801561328a575f80fd5b505af115801561329c573d5f803e3d5ffd5b50505050505098975050505050505050565b5f6132ba83601f613b11565b5f806132c6600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061332c9190615590565b604051634793b4ab60e01b81526001600160601b03881660048201526001600160a01b039190911690634793b4ab906024015f60405180830381865afa158015613378573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261339f919081019061568f565b90505f826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134029190615590565b604051637d8f1e8160e01b81526001600160601b03891660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa15801561344f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134739190615868565b9050613482825f015185613e5d565b156134be57815160405163dab86e4560e01b81526001600160601b03808a16600483015291821660248201529085166044820152606401610ac3565b6134c9816005610d9e565b8061351e575061351e826080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b1561356357608082015160405163bf5b8f0960e01b81526001600160601b038916600482015260ff8316602482015264ffffffffff9091166044820152606401610ac3565b60405163790a38ad60e01b815264ffffffffff8716600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af41580156135b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135db919061577e565b156135f9576040516307f6a6ab60e31b815260040160405180910390fd5b60808201516040516352bcc5a760e11b815264ffffffffff9182166004820152908716602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af415801561365b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367f9190615883565b64ffffffffff16608083015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa1580156136ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f29190615590565b6001600160a01b03166351dd844b888460ff6040518463ffffffff1660e01b81526004016137229392919061581b565b5f604051808303815f87803b158015613739575f80fd5b505af115801561374b573d5f803e3d5ffd5b505050506080820151604080516001600160601b038a16815264ffffffffff898116602083015290921682820152517f47dde095fac4cfe7361ede303a6499020b475037d805fa37784e682c423ddc929181900360600190a15060800151925050505b92915050565b5f6137c0826015613b11565b5f836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138219190615590565b60405163bd7d9d8560e01b81526001600160601b03851660048201526001600160a01b03919091169063bd7d9d85906024015f60405180830381865afa15801561386d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526138949190810190615a83565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af41580156138f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613914919061577e565b15613922575f9150506137ae565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af415801561397d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139a1919061577e565b156139af575f9150506137ae565b6101e0810151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015613a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a2e919061577e565b15613a3c575f9150506137ae565b61014081015161ffff1615613a54575f9150506137ae565b613a67816101600151826080015161458b565b15613a765760019150506137ae565b613af973__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015613ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ae49190615883565b826101c0015164ffffffffff90811691161090565b15613b07575f9150506137ae565b5060019392505050565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613b73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b97919061577e565b6124075760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610ac3565b5f613bd1614fa3565b5f613be46001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015613c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c4c91906155dd565b9250613c5a838560016145d5565b9395909450915050565b5f805f80516020615ef883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015613cd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cf4919061577e565b15613d205780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610ac3565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613d72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d96919061577e565b613dbe5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610ac3565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015613e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e3491906155dd565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c51906044015b602060405180830381865af4158015613ebe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee2919061577e565b9392505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af4158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee291906155dd565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401613f2f565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401613ea3565b6101e7614874565b5f80516020615f388339815191528054600160401b810460ff1615906001600160401b03165f8115801561403b5750825b90505f826001600160401b031660011480156140565750303b155b905081158015614064575080155b156140825760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156140ac57845460ff60401b1916600160401b1785555b5f80878060200190518101906140c29190615c16565b915091506140d182828b6148ac565b6140db60026149f1565b600380546001600160a01b0319166001600160a01b0392909216919091179055614105600b6149f1565b600480546001600160a01b0319166001600160a01b0392909216919091179055614135631324ba6160e11b614a82565b505083156115a157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b5f80516020615f188339815191525f806141b1614194612c60565b87306141a360045f8a8c615c43565b6141ac91615c6a565b614aae565b91509150816119da5763ffffffff81161561424c57825460ff60a01b1916600160a01b1783556141df612c60565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161420e93929190615ca2565b5f604051808303815f87803b158015614225575f80fd5b505af1158015614237573d5f803e3d5ffd5b5050845460ff60a01b19168555506119da9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610ac3565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401613ea3565b5f826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431a9190615590565b60405163bd7d9d8560e01b81526001600160601b03841660048201529091505f906001600160a01b0383169063bd7d9d85906024015f60405180830381865afa158015614369573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526143909190810190615a83565b6101a0810151604051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156143ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614412919061577e565b80156144695750614469816101a0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b15614492576040516311db797560e31b81526001600160601b0384166004820152602401610ac3565b5f846001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156144cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f39190615590565b604051630331f98560e21b81526001600160601b03861660048201529091506001600160a01b03821690630cc7e6149060240161100a565b5f80516020615f1883398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60405163c4cade9d60e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c4cade9d90604401613ea3565b6145dd614fa3565b5f806145f16001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561463e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526146659190810190615ce1565b925061467285600b610d9e565b156146c857604083015160ff8681169116146146c357604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610ac3565b614764565b6146e383604001516146d8600c90565b60ff90811691161490565b806146f957506146f983604001516146d8600f90565b8061470f575061470f83604001516146d8600e90565b80614725575061472583604001516146d8600d90565b61476457604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610ac3565b61476e8184614bb6565b9150831561486b57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156147b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147d69190615590565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa15801561481e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614842919061577e565b1561486b57604051637d71120960e11b81526001600160601b0387166004820152602401610ac3565b50935093915050565b5f80516020615f3883398151915254600160401b900460ff166148aa57604051631afcd79f60e31b815260040160405180910390fd5b565b6148b4614874565b6148bc614c67565b6001600160a01b038216156148d9576148d482614c77565b614950565b5f6148e460026149f1565b905061494e816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149499190615590565b614c77565b505b6149cc83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015614990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149b491906155dd565b60085f8560405180602001604052805f815250614c8b565b6149dc634a531f3360e01b614a82565b6149ec63daf9067160e01b614a82565b505050565b5f614a046001546001600160a01b031690565b6001600160a01b031663d39e604383614a1b612311565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015614a5e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ae9190615590565b614a8a614874565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251614b1c9190615db1565b5f60405180830381855afa9150503d805f8114614b54576040519150601f19603f3d011682016040523d82523d5f602084013e614b59565b606091505b50915091508115614bab576040815110614b8b5780806020019051810190614b819190615dc7565b9094509250614bab565b6020815110614bab5780806020019051810190614ba8919061577e565b93505b505094509492505050565b5f614bc782604001516146d8600c90565b15614be157614bda838360200151614d30565b90506137ae565b60208201516040516305247a1760e51b81526001600160601b039091166004820152613ee29084906001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015614c37573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052614c5e9190810190615ce1565b60200151614d30565b614c6f614874565b6148aa614da1565b614c7f614874565b614c8881614dcf565b50565b614c93614874565b614c9d8683614de0565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301614d268382615e3d565b5050505050505050565b60405163bf8e179760e01b81526001600160601b03821660048201525f906001600160a01b0384169063bf8e179790602401602060405180830381865afa158015614d7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee29190615590565b614da9614874565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b614dd7614874565b614c888161452b565b614de8614874565b614df182614e56565b614df9614f5e565b6001600160a01b038116614e205760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020615ef883398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b614e5e614874565b806001600160a01b03163b5f03614e935760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610ac3565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015614f0d575060408051601f3d908101601f19168201909252614f0a9181019061577e565b60015b614f355760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610ac3565b806124075760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610ac3565b614f66614874565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215614ff0575f80fd5b81356001600160e01b031981168114613ee2575f80fd5b6001600160601b0381168114614c88575f80fd5b5f6020828403121561502b575f80fd5b8135613ee281615007565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516150ac608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e0808401526150f0610100840182615036565b949350505050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561512e5761512e6150f8565b60405290565b60405160c081016001600160401b038111828210171561512e5761512e6150f8565b60405160a081016001600160401b038111828210171561512e5761512e6150f8565b60405161020081016001600160401b038111828210171561512e5761512e6150f8565b60405160e081016001600160401b038111828210171561512e5761512e6150f8565b604051601f8201601f191681016001600160401b03811182821017156151e5576151e56150f8565b604052919050565b5f604082840312156151fd575f80fd5b61520561510c565b823581526020928301359281019290925250919050565b5f806060838503121561522d575f80fd5b823561523881615007565b915061524784602085016151ed565b90509250929050565b6001600160a01b0381168114614c88575f80fd5b5f805f60608486031215615276575f80fd5b833561528181615250565b9250602084013561529181615007565b915060408401356152a181615007565b809150509250925092565b5f6001600160401b038211156152c4576152c46150f8565b50601f01601f191660200190565b5f82601f8301126152e1575f80fd5b81356152f46152ef826152ac565b6151bd565b818152846020838601011115615308575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215615334575f80fd5b81356001600160401b03811115615349575f80fd5b6150f0848285016152d2565b5f8060408385031215615366575f80fd5b823561537181615250565b915060208301356001600160401b0381111561538b575f80fd5b615397858286016152d2565b9150509250929050565b5f805f80608085870312156153b4575f80fd5b84356153bf81615250565b935060208501356153cf81615007565b925060408501356153df81615007565b915060608501356153ef81615007565b939692955090935050565b5f806040838503121561540b575f80fd5b823561541681615007565b9150602083013561542681615007565b809150509250929050565b5f8060408385031215615442575f80fd5b823561541681615250565b5f6020828403121561545d575f80fd5b8135613ee281615250565b602081525f613ee26020830184615036565b64ffffffffff81168114614c88575f80fd5b5f805f805f805f80610100898b0312156154a4575f80fd5b88356154af81615250565b975060208901356154bf81615007565b965060408901356154cf81615250565b95506154de8a60608b016151ed565b945060a08901356154ee81615007565b935060c08901356154fe8161547a565b925060e08901356001600160401b03811115615518575f80fd5b8901601f81018b13615528575f80fd5b80356001600160401b0381111561553d575f80fd5b8b602082840101111561554e575f80fd5b989b979a50959850939692959194602001935050565b5f8060408385031215615575575f80fd5b823561558081615007565b915060208301356154268161547a565b5f602082840312156155a0575f80fd5b8151613ee281615250565b5f602082840312156155bb575f80fd5b815162ffffff81168114613ee2575f80fd5b80516155d881615007565b919050565b5f602082840312156155ed575f80fd5b8151613ee281615007565b600181811c9082168061560c57607f821691505b60208210810361562a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f61563d6152ef846152ac565b9050828152838383011115615650575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f830112615675575f80fd5b613ee283835160208501615630565b80516155d88161547a565b5f6020828403121561569f575f80fd5b81516001600160401b038111156156b4575f80fd5b820180840360e08112156156c6575f80fd5b6156ce615134565b82516156d981615007565b81526040601f19830112156156ec575f80fd5b6156f461510c565b6020848101518252604085015181830152820152606083015191506001600160401b03821115615722575f80fd5b61572e86838501615666565b604082015261573f60808401615684565b606082015261575060a08401615684565b608082015261576160c08401615684565b60a082015295945050505050565b805180151581146155d8575f80fd5b5f6020828403121561578e575f80fd5b613ee28261576f565b6001600160601b0381511682525f6020820151805160208501526020810151604085015250604082015160e060608501526157d560e0850182615036565b905064ffffffffff6060840151166080850152608083015161580060a086018264ffffffffff169052565b5060a083015164ffffffffff811660c0860152509392505050565b6001600160601b0384168152606060208201525f61583c6060830185615797565b905060ff83166040830152949350505050565b60ff81168114614c88575f80fd5b80516155d88161584f565b5f60208284031215615878575f80fd5b8151613ee28161584f565b5f60208284031215615893575f80fd5b8151613ee28161547a565b6001600160a01b039490941684526001600160601b039283166020850152908216604084015216606082015260800190565b5f805f606084860312156158e2575f80fd5b83516158ed81615007565b60208501519093506158fe81615007565b60408501519092506152a181615007565b6001600160401b0381168114614c88575f80fd5b5f60208284031215615933575f80fd5b8151613ee28161590f565b80516155d881615250565b5f60208284031215615959575f80fd5b81516001600160401b0381111561596e575f80fd5b820160a0818503121561597f575f80fd5b615987615156565b81516001600160401b0381111561599c575f80fd5b8201601f810186136159ac575f80fd5b6159bb86825160208401615630565b8252506159ca6020830161593e565b60208201526159db6040830161593e565b60408201526159ec6060830161593e565b606082015260808201516001600160401b03811115615a09575f80fd5b615a1586828501615666565b608083015250949350505050565b5f60208284031215615a33575f80fd5b5051919050565b6001600160601b0383168152604060208201525f6150f06040830184615797565b80516001600160c01b0319811681146155d8575f80fd5b805161ffff811681146155d8575f80fd5b5f60208284031215615a93575f80fd5b81516001600160401b03811115615aa8575f80fd5b82016102008185031215615aba575f80fd5b615ac2615178565b615acb826155cd565b8152615ad9602083016155cd565b6020820152615aea60408301615a5b565b6040820152615afb60608301615a5b565b6060820152615b0c608083016155cd565b6080820152615b1d60a083016155cd565b60a0820152615b2e60c08301615684565b60c082015260e08201516001600160401b03811115615b4b575f80fd5b615b5786828501615666565b60e0830152506101008201516001600160401b03811115615b76575f80fd5b615b8286828501615666565b61010083015250615b966101208301615a72565b610120820152615ba96101408301615a72565b610140820152615bbc61016083016155cd565b610160820152615bcf61018083016155cd565b610180820152615be26101a08301615684565b6101a0820152615bf56101c08301615684565b6101c0820152615c086101e08301615684565b6101e0820152949350505050565b5f8060408385031215615c27575f80fd5b8251615c3281615250565b602084015190925061542681615250565b5f8085851115615c51575f80fd5b83861115615c5d575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615c9b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615cf1575f80fd5b81516001600160401b03811115615d06575f80fd5b820160e08185031215615d17575f80fd5b615d1f61519b565b615d28826155cd565b8152615d36602083016155cd565b6020820152615d476040830161585d565b6040820152615d586060830161576f565b6060820152615d696080830161593e565b6080820152615d7a60a0830161593e565b60a082015260c08201516001600160401b03811115615d97575f80fd5b615da386828501615666565b60c083015250949350505050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615dd8575f80fd5b615de18361576f565b9150602083015163ffffffff81168114615426575f80fd5b601f8211156149ec57805f5260205f20601f840160051c81016020851015615e1e5750805b601f840160051c820191505b81811015612a77575f8155600101615e2a565b81516001600160401b03811115615e5657615e566150f8565b615e6a81615e6484546155f8565b84615df9565b6020601f821160018114615e9c575f8315615e855750848201515b5f19600385901b1c1916600184901b178455612a77565b5f84815260208120601f198516915b82811015615ecb5787850151825560209485019460019092019101615eab565b5084821015615ee857868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202a48ab2be9fb9c38a8fdc81791590b9f275e9610e06630b213a8937fb84296da64736f6c634300081a0033",
1080
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806376429bc011610109578063ad328d9f1161009e578063bf7e214f1161006e578063bf7e214f146104cc578063e283b4a9146104d4578063f3d0e5d2146104e7578063fc5f2d5514610510575f80fd5b8063ad328d9f1461048b578063ada9652e1461049e578063b5346af5146104b2578063b68d1809146104c5575f80fd5b8063893d20e8116100d9578063893d20e8146103f65780638fb36037146103fe578063a3f4df7e1461041f578063aa9acb2c14610458575f80fd5b806376429bc0146103ae57806376b707b7146103c15780637a9e5e4b146103db5780638899278a146103ee575f80fd5b80632d2cf2221161017f57806354e507791161014f57806354e50779146103395780635ab1bd531461034c578063644c45e0146103715780636c741e781461038e575f80fd5b80632d2cf222146102ed578063329d6e741461030057806349bb9e4b146103135780634adcf90914610326575f80fd5b8063138461e0116101ba578063138461e0146102725780631eff4b22146102925780631f8e8f36146102c757806325fa796b146102da575f80fd5b806301ffc9a7146101eb57806306fa45651461022c5780630d8e6e2c146102415780630fec111c1461025d575b5f80fd5b6102176101f9366004614fe0565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61023f61023a36600461501b565b610523565b005b61024961070e565b60405162ffffff9091168152602001610223565b610265610795565b6040516102239190615064565b61027a610921565b6040516001600160601b039091168152602001610223565b6102b97f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610223565b61023f6102d536600461521c565b61092b565b61023f6102e8366004615264565b610be2565b61027a6102fb366004615264565b61103e565b61023f61030e366004615324565b61136c565b61023f610321366004615355565b6114ae565b61023f6103343660046153a1565b6115aa565b61027a6103473660046153fa565b6119e2565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610223565b5f80516020615ef8833981519152546001600160601b031661027a565b610396612184565b6040516001600160401b039091168152602001610223565b61023f6103bc366004615431565b612210565b6103c9612311565b60405160ff9091168152602001610223565b61023f6103e936600461544d565b612385565b6102b9600381565b61035961240b565b61040661253c565b6040516001600160e01b03199091168152602001610223565b61044b6040518060400160405280600d81526020016c42756e646c655365727669636560981b81525081565b6040516102239190615468565b61046b610466366004615431565b612571565b604080516001600160601b03938416815292909116602083015201610223565b61023f6104993660046153a1565b61297e565b6102b95f80516020615ef883398151915281565b61023f6104c036600461501b565b612a7e565b601f6103c9565b610359612c60565b61027a6104e236600461548c565b612c7b565b6104fa6104f5366004615564565b6132ae565b60405164ffffffffff9091168152602001610223565b61021761051e366004615431565b6137b4565b61052e81601f613b11565b5f610539600f613bc8565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610579573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059d9190615590565b6001600160a01b031663fe1f18d68360056040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156105f4575f80fd5b505af1158015610606573d5f803e3d5ffd5b505050505f816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610647573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066b9190615590565b6040516306fa456560e01b81526001600160601b03851660048201529091506001600160a01b038216906306fa4565906024015f604051808303815f87803b1580156106b5575f80fd5b505af11580156106c7573d5f803e3d5ffd5b50506040516001600160601b03861681527f87cfb697b5d649751f13ba6e2e51778a1fd0a1f260df7281952986c453708e71925060200190505b60405180910390a1505050565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801561076c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079091906155ab565b905090565b61079d614fa3565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610813573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083791906155dd565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161087f61240b565b6001600160a01b0316815260200182600101805461089c906155f8565b80601f01602080910402602001604051908101604052809291908181526020018280546108c8906155f8565b80156109135780601f106108ea57610100808354040283529160200191610913565b820191905f5260205f20905b8154815290600101906020018083116108f657829003601f168201915b505050505081525091505090565b5f61079030613c64565b61093682601f613b11565b5f80610942600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a89190615590565b604051634793b4ab60e01b81526001600160601b03871660048201529091505f906001600160a01b03831690634793b4ab906024015f60405180830381865afa1580156109f7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a1e919081019061568f565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015610a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9e919061577e565b15610acc576040516349e9f38360e01b81526001600160601b03871660048201526024015b60405180910390fd5b8051610ad89085613e5d565b15610b1457805160405163dab86e4560e01b81526001600160601b03808916600483015291821660248201529085166044820152606401610ac3565b848160200181905250826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7d9190615590565b6001600160a01b03166351dd844b878360ff6040518463ffffffff1660e01b8152600401610bad9392919061581b565b5f604051808303815f87803b158015610bc4575f80fd5b505af1158015610bd6573d5f803e3d5ffd5b50505050505050505050565b610bed82601f613b11565b5f836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190615590565b604051634793b4ab60e01b81526001600160601b03851660048201526001600160a01b039190911690634793b4ab906024015f60405180830381865afa158015610c9a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cc1919081019061568f565b90505f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d249190615590565b604051637d8f1e8160e01b81526001600160601b03861660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa158015610d71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d959190615868565b9050610daa8160055b60ff9081169116141590565b8015610dbc5750610dbc81606e610d9e565b80610e445750610e44826080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e359190615883565b64ffffffffff90811691161090565b80610ec8575060a0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015610ea4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec8919061577e565b15610f0d57608082015160405163bf5b8f0960e01b81526001600160601b038616600482015260ff8316602482015264ffffffffff9091166044820152606401610ac3565b6004805460408051631a99b41b60e31b815290516001600160a01b03928316936325e451d3938a169263d4cda0d892818301926020928290030181865afa158015610f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7e9190615590565b868673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610fc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610feb91906155dd565b6040518563ffffffff1660e01b815260040161100a949392919061589e565b5f604051808303815f87803b158015611021575f80fd5b505af1158015611033573d5f803e3d5ffd5b505050505050505050565b5f61104a83601f613b11565b5f846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ab9190615590565b6040516317bb785d60e21b81526001600160601b03861660048201529091505f90819081906001600160a01b03851690635eede17490602401606060405180830381865afa1580156110ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112391906158d0565b9250925092508594505f6111408461113b8585613ee9565b613f6e565b9050866001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63262b32d2909173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156111af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d391906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af415801561121c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611240919061577e565b15611249578095505b6112538682613fb8565b156112835760405162f808ef60e61b81526001600160601b03808916600483015282166024820152604401610ac3565b60045f9054906101000a90046001600160a01b03166001600160a01b031663e618053f868a8973__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131491906155dd565b6040518563ffffffff1660e01b8152600401611333949392919061589e565b5f604051808303815f87803b15801561134a575f80fd5b505af115801561135c573d5f803e3d5ffd5b5050505050505050509392505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61138e61070e565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f09190615923565b5f80516020615f388339815191528054600160401b900460ff1680611422575080546001600160401b03808416911610155b156114405760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561146a83614002565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610701565b5f80516020615f388339815191528054600160401b810460ff1615906001600160401b03165f811580156114df5750825b90505f826001600160401b031660011480156114fa5750303b155b905081158015611508575080155b156115265760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561155057845460ff60401b1916600160401b1785555b61155a878761400a565b83156115a157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6115b6335b5f36614179565b6115c1836015613b11565b6115cc82601f613b11565b5f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611609573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162d9190615590565b90505f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116909190615590565b604051637d8f1e8160e01b81526001600160601b03861660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa1580156116dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117019190615868565b604051634793b4ab60e01b81526001600160601b03861660048201529091505f906001600160a01b03841690634793b4ab906024015f60405180830381865afa158015611750573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611777919081019061568f565b9050611784826005610d9e565b806117d957506117d9816080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b1561181e57608081015160405163bf5b8f0960e01b81526001600160601b038716600482015260ff8416602482015264ffffffffff9091166044820152606401610ac3565b50505f856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118819190615590565b6040516317bb785d60e21b81526001600160601b03861660048201529091505f90819081906001600160a01b03851690635eede17490602401606060405180830381865afa1580156118d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f991906158d0565b9250925092505f61190e8461113b8585613ee9565b905061191a818861426f565b156119535760405163826a5ff960e01b81526001600160601b03808a166004830152808316602483015288166044820152606401610ac3565b505060405163248a77dd60e01b81526001600160601b038088166004830152861660248201526001600160a01b038416925063248a77dd91506044016020604051808303815f875af11580156119ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cf91906155dd565b506119da86866142b9565b505050505050565b5f6119ee83601f613b11565b5f806119fa600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a609190615590565b60405163f0ea17c360e01b81526001600160601b03851660048201529091505f906001600160a01b0383169063f0ea17c3906024015f60405180830381865afa158015611aaf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ad69190810190615949565b90505f81606001519050869550856001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63262b32d2909173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611b50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b7491906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af4158015611bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be1919061577e565b15611c5c57604051630232ca4960e01b81526001600160601b03891660048201526001600160a01b03841690630232ca4990602401602060405180830381865afa158015611c31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5591906155dd565b9550611dfa565b604051630232ca4960e01b81526001600160601b03898116600483015273__$3bac17678db7ae928afa209f2f44deec9c$__916398058c4c918916906001600160a01b03871690630232ca4990602401602060405180830381865afa158015611cc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ceb91906155dd565b6040516001600160e01b031960e085901b1681526001600160601b03928316600482015291166024820152604401602060405180830381865af4158015611d34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d58919061577e565b15611dfa57604051630232ca4960e01b81526001600160601b038916600482015286906001600160a01b03851690630232ca4990602401602060405180830381865afa158015611daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dce91906155dd565b60405163d98a83b760e01b81526001600160601b03928316600482015291166024820152604401610ac3565b5f846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e5b9190615590565b905060045f9054906101000a90046001600160a01b03166001600160a01b031663e618053f828b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611ec9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eed91906155dd565b8b6040518563ffffffff1660e01b8152600401611f0d949392919061589e565b5f604051808303815f87803b158015611f24575f80fd5b505af1158015611f36573d5f803e3d5ffd5b5050505060045f9054906101000a90046001600160a01b03166001600160a01b03166389fad8a282888a73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611fa7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fcb91906155dd565b6040518563ffffffff1660e01b8152600401611fea949392919061589e565b5f604051808303815f87803b158015612001575f80fd5b505af1158015612013573d5f803e3d5ffd5b50505050505f61202b6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b038b1660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612078573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061209c9190615590565b602080850151604080516001600160601b03808f1682526001600160a01b0380871695830195909552939092169082015290891660608201529091507fc3eff56dd5436528da6d208eff7a92ed71cafc177d49a9c55303bff3b1bcf8d29060800160405180910390a1604080840151905163153c361360e21b81526001600160a01b03848116600483015283811660248301526001600160601b038a166044830152909116906354f0d84c906064015f604051808303815f87803b158015612162575f80fd5b505af1158015612174573d5f803e3d5ffd5b5050505050505050505092915050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3601f6121a9612311565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af41580156121ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190615923565b612219336115af565b612224816015613b11565b61222e82826137b4565b612256576040516392bb4dff60e01b81526001600160601b0382166004820152602401610ac3565b816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612292573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b69190615590565b604051631351fccf60e31b81526001600160601b03831660048201526001600160a01b039190911690639a8fe678906024015f604051808303815f87803b1580156122ff575f80fd5b505af11580156119da573d5f803e3d5ffd5b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190615868565b3361238e612c60565b6001600160a01b0316816001600160a01b0316146123c95760405162d1953b60e31b81526001600160a01b0382166004820152602401610ac3565b816001600160a01b03163b5f036123fe576040516361798f2f60e11b81526001600160a01b0383166004820152602401610ac3565b6124078261452b565b5050565b5f805f80516020615ef883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061249b919061577e565b15612526576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156124fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125209190615590565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020615f1883398151915280545f9190600160a01b900460ff16612563575f612520565b638fb3603760e01b91505090565b5f8061257c336115af565b61258783601f613b11565b5f846001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e89190615590565b90505f856001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061264b9190615590565b6040516322cc1d4560e11b81526001600160601b03871660048201529091505f906001600160a01b038316906345983a8a90602401602060405180830381865afa15801561269b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126bf9190615a23565b905080156126f2576040516356a410b760e01b81526001600160601b038716600482015260248101829052604401610ac3565b5f876001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561272f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127539190615590565b90506001600160a01b03811663fe1f18d68860c86040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156127ad575f80fd5b505af11580156127bf573d5f803e3d5ffd5b505060405163b5346af560e01b81526001600160601b038a1660048201526001600160a01b038616925063b5346af591506024015f604051808303815f87803b15801561280a575f80fd5b505af115801561281c573d5f803e3d5ffd5b50506040516308a390bb60e21b81526001600160601b038a1660048201525f92506001600160a01b038716915063228e42ec90602401602060405180830381865afa15801561286d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061289191906155dd565b604051630232ca4960e01b81526001600160601b038a1660048201529091506001600160a01b03861690630232ca4990602401602060405180830381865afa1580156128df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290391906155dd565b955061290f8187613f6e565b6004805460405163e618053f60e01b81529299506001600160a01b03169163e618053f916129459186918d918d918d910161589e565b5f604051808303815f87803b15801561295c575f80fd5b505af115801561296e573d5f803e3d5ffd5b5050505050505050509250929050565b612987336115af565b612992836015613b11565b61299d82601f613b11565b836001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129fd9190615590565b6040516353ebe12960e01b81526001600160601b038085166004830152831660248201526001600160a01b0391909116906353ebe129906044016020604051808303815f875af1158015612a53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a7791906155dd565b5050505050565b612a8981601f613b11565b5f612a94600f613bc8565b92505050806001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af89190615590565b6001600160a01b031663fe1f18d683606e6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044015f604051808303815f87803b158015612b4f575f80fd5b505af1158015612b61573d5f803e3d5ffd5b505050505f816001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bc69190615590565b60405163b5346af560e01b81526001600160601b03851660048201529091506001600160a01b0382169063b5346af5906024015f604051808303815f87803b158015612c10575f80fd5b505af1158015612c22573d5f803e3d5ffd5b50506040516001600160601b03861681527f6764112d27879e5bb12f07fde08a48629ec22e603c75c9942ba62a06c95a55f492506020019050610701565b5f80516020615f18833981519152546001600160a01b031690565b5f612c85336115af565b612c9088600f613b11565b60035f9054906101000a90046001600160a01b03166001600160a01b031663c2bf08c86040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612d05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d2991906155dd565b6001600160601b031681526020018b6001600160601b03168152602001612d4e601f90565b60ff1681526020015f151581526020015f6001600160a01b031681526020018a6001600160a01b0316815260200160405180602001604052805f8152508152506040518263ffffffff1660e01b8152600401612daa9190615064565b6020604051808303815f875af1158015612dc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dea91906155dd565b90505f896001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e4d9190615590565b9050806001600160a01b031663a46eb8dc836040518060c001604052808d6001600160601b031681526020018b815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250604080516356db0c1960e11b8152905160209283019273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb6183292600480830193928290030181865af4158015612f07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2b9190615883565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa29190615883565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908b16602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015612fff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130239190615883565b64ffffffffff1681525f6020909101526040516001600160e01b031960e085901b168152613055929190600401615a3a565b5f604051808303815f87803b15801561306c575f80fd5b505af115801561307e573d5f803e3d5ffd5b50506040516330b8415f60e01b81526001600160601b038916600482015273__$3bac17678db7ae928afa209f2f44deec9c$__92506330b8415f9150602401602060405180830381865af41580156130d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130fc919061577e565b156131df5760045f9054906101000a90046001600160a01b03166001600160a01b03166325e451d382848973__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561316e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319291906155dd565b6040518563ffffffff1660e01b81526004016131b1949392919061589e565b5f604051808303815f87803b1580156131c8575f80fd5b505af11580156131da573d5f803e3d5ffd5b505050505b5f8a6001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561321c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132409190615590565b6040516346f0e8a760e11b81526001600160601b03851660048201529091506001600160a01b03821690638de1d14e906024015f604051808303815f87803b15801561328a575f80fd5b505af115801561329c573d5f803e3d5ffd5b50505050505098975050505050505050565b5f6132ba83601f613b11565b5f806132c6600f613bc8565b92505091505f816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061332c9190615590565b604051634793b4ab60e01b81526001600160601b03881660048201526001600160a01b039190911690634793b4ab906024015f60405180830381865afa158015613378573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261339f919081019061568f565b90505f826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134029190615590565b604051637d8f1e8160e01b81526001600160601b03891660048201526001600160a01b039190911690637d8f1e8190602401602060405180830381865afa15801561344f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134739190615868565b9050613482825f015185613e5d565b156134be57815160405163dab86e4560e01b81526001600160601b03808a16600483015291821660248201529085166044820152606401610ac3565b6134c9816005610d9e565b8061351e575061351e826080015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b1561356357608082015160405163bf5b8f0960e01b81526001600160601b038916600482015260ff8316602482015264ffffffffff9091166044820152606401610ac3565b60405163790a38ad60e01b815264ffffffffff8716600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af41580156135b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135db919061577e565b156135f9576040516307f6a6ab60e31b815260040160405180910390fd5b60808201516040516352bcc5a760e11b815264ffffffffff9182166004820152908716602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af415801561365b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367f9190615883565b64ffffffffff16608083015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa1580156136ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136f29190615590565b6001600160a01b03166351dd844b888460ff6040518463ffffffff1660e01b81526004016137229392919061581b565b5f604051808303815f87803b158015613739575f80fd5b505af115801561374b573d5f803e3d5ffd5b505050506080820151604080516001600160601b038a16815264ffffffffff898116602083015290921682820152517f47dde095fac4cfe7361ede303a6499020b475037d805fa37784e682c423ddc929181900360600190a15060800151925050505b92915050565b5f6137c0826015613b11565b5f836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138219190615590565b60405163bd7d9d8560e01b81526001600160601b03851660048201526001600160a01b03919091169063bd7d9d85906024015f60405180830381865afa15801561386d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526138949190810190615a83565b8051604051630a4d29dd60e31b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af41580156138f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613914919061577e565b15613922575f9150506137ae565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063790a38ad90602401602060405180830381865af415801561397d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139a1919061577e565b156139af575f9150506137ae565b6101e0810151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015613a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a2e919061577e565b15613a3c575f9150506137ae565b61014081015161ffff1615613a54575f9150506137ae565b613a67816101600151826080015161458b565b15613a765760019150506137ae565b613af973__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015613ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ae49190615883565b826101c0015164ffffffffff90811691161090565b15613b07575f9150506137ae565b5060019392505050565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613b73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b97919061577e565b6124075760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610ac3565b5f613bd1614fa3565b5f613be46001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015613c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c4c91906155dd565b9250613c5a838560016145d5565b9395909450915050565b5f805f80516020615ef883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015613cd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cf4919061577e565b15613d205780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610ac3565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613d72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d96919061577e565b613dbe5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610ac3565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015613e10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e3491906155dd565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c51906044015b602060405180830381865af4158015613ebe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee2919061577e565b9392505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af4158015613f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee291906155dd565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401613f2f565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401613ea3565b6101e7614874565b5f80516020615f388339815191528054600160401b810460ff1615906001600160401b03165f8115801561403b5750825b90505f826001600160401b031660011480156140565750303b155b905081158015614064575080155b156140825760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156140ac57845460ff60401b1916600160401b1785555b5f80878060200190518101906140c29190615c16565b915091506140d182828b6148ac565b6140db60026149f1565b600380546001600160a01b0319166001600160a01b0392909216919091179055614105600b6149f1565b600480546001600160a01b0319166001600160a01b0392909216919091179055614135631324ba6160e11b614a82565b505083156115a157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001611598565b5f80516020615f188339815191525f806141b1614194612c60565b87306141a360045f8a8c615c43565b6141ac91615c6a565b614aae565b91509150816119da5763ffffffff81161561424c57825460ff60a01b1916600160a01b1783556141df612c60565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161420e93929190615ca2565b5f604051808303815f87803b158015614225575f80fd5b505af1158015614237573d5f803e3d5ffd5b5050845460ff60a01b19168555506119da9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610ac3565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401613ea3565b5f826001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061431a9190615590565b60405163bd7d9d8560e01b81526001600160601b03841660048201529091505f906001600160a01b0383169063bd7d9d85906024015f60405180830381865afa158015614369573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526143909190810190615a83565b6101a0810151604051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156143ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614412919061577e565b80156144695750614469816101a0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610e11573d5f803e3d5ffd5b15614492576040516311db797560e31b81526001600160601b0384166004820152602401610ac3565b5f846001600160a01b0316636dddada46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156144cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f39190615590565b604051630331f98560e21b81526001600160601b03861660048201529091506001600160a01b03821690630cc7e6149060240161100a565b5f80516020615f1883398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60405163c4cade9d60e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c4cade9d90604401613ea3565b6145dd614fa3565b5f806145f16001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561463e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526146659190810190615ce1565b925061467285600b610d9e565b156146c857604083015160ff8681169116146146c357604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610ac3565b614764565b6146e383604001516146d8600c90565b60ff90811691161490565b806146f957506146f983604001516146d8600f90565b8061470f575061470f83604001516146d8600e90565b80614725575061472583604001516146d8600d90565b61476457604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610ac3565b61476e8184614bb6565b9150831561486b57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156147b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906147d69190615590565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa15801561481e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614842919061577e565b1561486b57604051637d71120960e11b81526001600160601b0387166004820152602401610ac3565b50935093915050565b5f80516020615f3883398151915254600160401b900460ff166148aa57604051631afcd79f60e31b815260040160405180910390fd5b565b6148b4614874565b6148bc614c67565b6001600160a01b038216156148d9576148d482614c77565b614950565b5f6148e460026149f1565b905061494e816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149499190615590565b614c77565b505b6149cc83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015614990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149b491906155dd565b60085f8560405180602001604052805f815250614c8b565b6149dc634a531f3360e01b614a82565b6149ec63daf9067160e01b614a82565b505050565b5f614a046001546001600160a01b031690565b6001600160a01b031663d39e604383614a1b612311565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015614a5e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ae9190615590565b614a8a614874565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251614b1c9190615db1565b5f60405180830381855afa9150503d805f8114614b54576040519150601f19603f3d011682016040523d82523d5f602084013e614b59565b606091505b50915091508115614bab576040815110614b8b5780806020019051810190614b819190615dc7565b9094509250614bab565b6020815110614bab5780806020019051810190614ba8919061577e565b93505b505094509492505050565b5f614bc782604001516146d8600c90565b15614be157614bda838360200151614d30565b90506137ae565b60208201516040516305247a1760e51b81526001600160601b039091166004820152613ee29084906001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015614c37573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052614c5e9190810190615ce1565b60200151614d30565b614c6f614874565b6148aa614da1565b614c7f614874565b614c8881614dcf565b50565b614c93614874565b614c9d8683614de0565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301614d268382615e3d565b5050505050505050565b60405163bf8e179760e01b81526001600160601b03821660048201525f906001600160a01b0384169063bf8e179790602401602060405180830381865afa158015614d7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ee29190615590565b614da9614874565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b614dd7614874565b614c888161452b565b614de8614874565b614df182614e56565b614df9614f5e565b6001600160a01b038116614e205760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020615ef883398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b614e5e614874565b806001600160a01b03163b5f03614e935760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610ac3565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015614f0d575060408051601f3d908101601f19168201909252614f0a9181019061577e565b60015b614f355760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610ac3565b806124075760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610ac3565b614f66614874565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215614ff0575f80fd5b81356001600160e01b031981168114613ee2575f80fd5b6001600160601b0381168114614c88575f80fd5b5f6020828403121561502b575f80fd5b8135613ee281615007565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516150ac608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e0808401526150f0610100840182615036565b949350505050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561512e5761512e6150f8565b60405290565b60405160c081016001600160401b038111828210171561512e5761512e6150f8565b60405160a081016001600160401b038111828210171561512e5761512e6150f8565b60405161020081016001600160401b038111828210171561512e5761512e6150f8565b60405160e081016001600160401b038111828210171561512e5761512e6150f8565b604051601f8201601f191681016001600160401b03811182821017156151e5576151e56150f8565b604052919050565b5f604082840312156151fd575f80fd5b61520561510c565b823581526020928301359281019290925250919050565b5f806060838503121561522d575f80fd5b823561523881615007565b915061524784602085016151ed565b90509250929050565b6001600160a01b0381168114614c88575f80fd5b5f805f60608486031215615276575f80fd5b833561528181615250565b9250602084013561529181615007565b915060408401356152a181615007565b809150509250925092565b5f6001600160401b038211156152c4576152c46150f8565b50601f01601f191660200190565b5f82601f8301126152e1575f80fd5b81356152f46152ef826152ac565b6151bd565b818152846020838601011115615308575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215615334575f80fd5b81356001600160401b03811115615349575f80fd5b6150f0848285016152d2565b5f8060408385031215615366575f80fd5b823561537181615250565b915060208301356001600160401b0381111561538b575f80fd5b615397858286016152d2565b9150509250929050565b5f805f80608085870312156153b4575f80fd5b84356153bf81615250565b935060208501356153cf81615007565b925060408501356153df81615007565b915060608501356153ef81615007565b939692955090935050565b5f806040838503121561540b575f80fd5b823561541681615007565b9150602083013561542681615007565b809150509250929050565b5f8060408385031215615442575f80fd5b823561541681615250565b5f6020828403121561545d575f80fd5b8135613ee281615250565b602081525f613ee26020830184615036565b64ffffffffff81168114614c88575f80fd5b5f805f805f805f80610100898b0312156154a4575f80fd5b88356154af81615250565b975060208901356154bf81615007565b965060408901356154cf81615250565b95506154de8a60608b016151ed565b945060a08901356154ee81615007565b935060c08901356154fe8161547a565b925060e08901356001600160401b03811115615518575f80fd5b8901601f81018b13615528575f80fd5b80356001600160401b0381111561553d575f80fd5b8b602082840101111561554e575f80fd5b989b979a50959850939692959194602001935050565b5f8060408385031215615575575f80fd5b823561558081615007565b915060208301356154268161547a565b5f602082840312156155a0575f80fd5b8151613ee281615250565b5f602082840312156155bb575f80fd5b815162ffffff81168114613ee2575f80fd5b80516155d881615007565b919050565b5f602082840312156155ed575f80fd5b8151613ee281615007565b600181811c9082168061560c57607f821691505b60208210810361562a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f61563d6152ef846152ac565b9050828152838383011115615650575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f830112615675575f80fd5b613ee283835160208501615630565b80516155d88161547a565b5f6020828403121561569f575f80fd5b81516001600160401b038111156156b4575f80fd5b820180840360e08112156156c6575f80fd5b6156ce615134565b82516156d981615007565b81526040601f19830112156156ec575f80fd5b6156f461510c565b6020848101518252604085015181830152820152606083015191506001600160401b03821115615722575f80fd5b61572e86838501615666565b604082015261573f60808401615684565b606082015261575060a08401615684565b608082015261576160c08401615684565b60a082015295945050505050565b805180151581146155d8575f80fd5b5f6020828403121561578e575f80fd5b613ee28261576f565b6001600160601b0381511682525f6020820151805160208501526020810151604085015250604082015160e060608501526157d560e0850182615036565b905064ffffffffff6060840151166080850152608083015161580060a086018264ffffffffff169052565b5060a083015164ffffffffff811660c0860152509392505050565b6001600160601b0384168152606060208201525f61583c6060830185615797565b905060ff83166040830152949350505050565b60ff81168114614c88575f80fd5b80516155d88161584f565b5f60208284031215615878575f80fd5b8151613ee28161584f565b5f60208284031215615893575f80fd5b8151613ee28161547a565b6001600160a01b039490941684526001600160601b039283166020850152908216604084015216606082015260800190565b5f805f606084860312156158e2575f80fd5b83516158ed81615007565b60208501519093506158fe81615007565b60408501519092506152a181615007565b6001600160401b0381168114614c88575f80fd5b5f60208284031215615933575f80fd5b8151613ee28161590f565b80516155d881615250565b5f60208284031215615959575f80fd5b81516001600160401b0381111561596e575f80fd5b820160a0818503121561597f575f80fd5b615987615156565b81516001600160401b0381111561599c575f80fd5b8201601f810186136159ac575f80fd5b6159bb86825160208401615630565b8252506159ca6020830161593e565b60208201526159db6040830161593e565b60408201526159ec6060830161593e565b606082015260808201516001600160401b03811115615a09575f80fd5b615a1586828501615666565b608083015250949350505050565b5f60208284031215615a33575f80fd5b5051919050565b6001600160601b0383168152604060208201525f6150f06040830184615797565b80516001600160c01b0319811681146155d8575f80fd5b805161ffff811681146155d8575f80fd5b5f60208284031215615a93575f80fd5b81516001600160401b03811115615aa8575f80fd5b82016102008185031215615aba575f80fd5b615ac2615178565b615acb826155cd565b8152615ad9602083016155cd565b6020820152615aea60408301615a5b565b6040820152615afb60608301615a5b565b6060820152615b0c608083016155cd565b6080820152615b1d60a083016155cd565b60a0820152615b2e60c08301615684565b60c082015260e08201516001600160401b03811115615b4b575f80fd5b615b5786828501615666565b60e0830152506101008201516001600160401b03811115615b76575f80fd5b615b8286828501615666565b61010083015250615b966101208301615a72565b610120820152615ba96101408301615a72565b610140820152615bbc61016083016155cd565b610160820152615bcf61018083016155cd565b610180820152615be26101a08301615684565b6101a0820152615bf56101c08301615684565b6101c0820152615c086101e08301615684565b6101e0820152949350505050565b5f8060408385031215615c27575f80fd5b8251615c3281615250565b602084015190925061542681615250565b5f8085851115615c51575f80fd5b83861115615c5d575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615c9b576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615cf1575f80fd5b81516001600160401b03811115615d06575f80fd5b820160e08185031215615d17575f80fd5b615d1f61519b565b615d28826155cd565b8152615d36602083016155cd565b6020820152615d476040830161585d565b6040820152615d586060830161576f565b6060820152615d696080830161593e565b6080820152615d7a60a0830161593e565b60a082015260c08201516001600160401b03811115615d97575f80fd5b615da386828501615666565b60c083015250949350505050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615dd8575f80fd5b615de18361576f565b9150602083015163ffffffff81168114615426575f80fd5b601f8211156149ec57805f5260205f20601f840160051c81016020851015615e1e5750805b601f840160051c820191505b81811015612a77575f8155600101615e2a565b81516001600160401b03811115615e5657615e566150f8565b615e6a81615e6484546155f8565b84615df9565b6020601f821160018114615e9c575f8315615e855750848201515b5f19600385901b1c1916600184901b178455612a77565b5f84815260208120601f198516915b82811015615ecb5787850151825560209485019460019092019101615eab565b5084821015615ee857868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202a48ab2be9fb9c38a8fdc81791590b9f275e9610e06630b213a8937fb84296da64736f6c634300081a0033",
1072
1081
  "linkReferences": {
1073
1082
  "contracts/type/Amount.sol": {
1074
1083
  "AmountLib": [
1075
1084
  {
1076
1085
  "length": 20,
1077
- "start": 9754
1086
+ "start": 4184
1078
1087
  },
1079
1088
  {
1080
1089
  "length": 20,
1081
- "start": 10529
1090
+ "start": 4644
1082
1091
  },
1083
1092
  {
1084
1093
  "length": 20,
1085
- "start": 10638
1094
+ "start": 4672
1086
1095
  },
1087
1096
  {
1088
1097
  "length": 20,
1089
- "start": 11970
1098
+ "start": 4993
1090
1099
  },
1091
1100
  {
1092
1101
  "length": 20,
1093
- "start": 12113
1102
+ "start": 7109
1094
1103
  },
1095
1104
  {
1096
1105
  "length": 20,
1097
- "start": 12188
1106
+ "start": 7137
1098
1107
  },
1099
1108
  {
1100
1109
  "length": 20,
1101
- "start": 12312
1102
- }
1103
- ]
1104
- },
1105
- "contracts/type/Fee.sol": {
1106
- "FeeLib": [
1110
+ "start": 7505
1111
+ },
1112
+ {
1113
+ "length": 20,
1114
+ "start": 8026
1115
+ },
1116
+ {
1117
+ "length": 20,
1118
+ "start": 8248
1119
+ },
1120
+ {
1121
+ "length": 20,
1122
+ "start": 12660
1123
+ },
1124
+ {
1125
+ "length": 20,
1126
+ "start": 12799
1127
+ },
1128
+ {
1129
+ "length": 20,
1130
+ "start": 16359
1131
+ },
1132
+ {
1133
+ "length": 20,
1134
+ "start": 16492
1135
+ },
1136
+ {
1137
+ "length": 20,
1138
+ "start": 16566
1139
+ },
1107
1140
  {
1108
1141
  "length": 20,
1109
- "start": 12465
1142
+ "start": 17261
1143
+ },
1144
+ {
1145
+ "length": 20,
1146
+ "start": 18057
1110
1147
  }
1111
1148
  ]
1112
1149
  },
@@ -1114,19 +1151,47 @@
1114
1151
  "NftIdLib": [
1115
1152
  {
1116
1153
  "length": 20,
1117
- "start": 2524
1154
+ "start": 2212
1155
+ },
1156
+ {
1157
+ "length": 20,
1158
+ "start": 2840
1118
1159
  },
1119
1160
  {
1120
1161
  "length": 20,
1121
- "start": 3267
1162
+ "start": 9493
1122
1163
  },
1123
1164
  {
1124
1165
  "length": 20,
1125
- "start": 4583
1166
+ "start": 11670
1126
1167
  },
1127
1168
  {
1128
1169
  "length": 20,
1129
- "start": 6910
1170
+ "start": 14734
1171
+ },
1172
+ {
1173
+ "length": 20,
1174
+ "start": 15726
1175
+ },
1176
+ {
1177
+ "length": 20,
1178
+ "start": 16219
1179
+ }
1180
+ ]
1181
+ },
1182
+ "contracts/type/RoleId.sol": {
1183
+ "RoleIdLib": [
1184
+ {
1185
+ "length": 20,
1186
+ "start": 8797
1187
+ }
1188
+ ]
1189
+ },
1190
+ "contracts/type/Seconds.sol": {
1191
+ "SecondsLib": [
1192
+ {
1193
+ "length": 20,
1194
+ "start": 13909
1130
1195
  }
1131
1196
  ]
1132
1197
  },
@@ -1134,23 +1199,55 @@
1134
1199
  "TimestampLib": [
1135
1200
  {
1136
1201
  "length": 20,
1137
- "start": 4979
1202
+ "start": 3746
1203
+ },
1204
+ {
1205
+ "length": 20,
1206
+ "start": 3906
1207
+ },
1208
+ {
1209
+ "length": 20,
1210
+ "start": 6250
1211
+ },
1212
+ {
1213
+ "length": 20,
1214
+ "start": 12197
1138
1215
  },
1139
1216
  {
1140
1217
  "length": 20,
1141
- "start": 10774
1218
+ "start": 12303
1142
1219
  },
1143
1220
  {
1144
1221
  "length": 20,
1145
- "start": 10918
1222
+ "start": 12445
1146
1223
  },
1147
1224
  {
1148
1225
  "length": 20,
1149
- "start": 12973
1226
+ "start": 13743
1150
1227
  },
1151
1228
  {
1152
1229
  "length": 20,
1153
- "start": 13085
1230
+ "start": 14073
1231
+ },
1232
+ {
1233
+ "length": 20,
1234
+ "start": 14875
1235
+ },
1236
+ {
1237
+ "length": 20,
1238
+ "start": 15016
1239
+ },
1240
+ {
1241
+ "length": 20,
1242
+ "start": 15185
1243
+ },
1244
+ {
1245
+ "length": 20,
1246
+ "start": 17548
1247
+ },
1248
+ {
1249
+ "length": 20,
1250
+ "start": 17658
1154
1251
  }
1155
1252
  ]
1156
1253
  },
@@ -1158,21 +1255,17 @@
1158
1255
  "VersionLib": [
1159
1256
  {
1160
1257
  "length": 20,
1161
- "start": 2083
1258
+ "start": 2058
1162
1259
  },
1163
1260
  {
1164
1261
  "length": 20,
1165
- "start": 3902
1166
- },
1167
- {
1168
- "length": 20,
1169
- "start": 13878
1262
+ "start": 5188
1170
1263
  }
1171
1264
  ],
1172
1265
  "VersionPartLib": [
1173
1266
  {
1174
1267
  "length": 20,
1175
- "start": 7390
1268
+ "start": 9215
1176
1269
  }
1177
1270
  ]
1178
1271
  }
@@ -1182,39 +1275,67 @@
1182
1275
  "AmountLib": [
1183
1276
  {
1184
1277
  "length": 20,
1185
- "start": 9524
1278
+ "start": 3970
1186
1279
  },
1187
1280
  {
1188
1281
  "length": 20,
1189
- "start": 10299
1282
+ "start": 4430
1190
1283
  },
1191
1284
  {
1192
1285
  "length": 20,
1193
- "start": 10408
1286
+ "start": 4458
1194
1287
  },
1195
1288
  {
1196
1289
  "length": 20,
1197
- "start": 11740
1290
+ "start": 4779
1198
1291
  },
1199
1292
  {
1200
1293
  "length": 20,
1201
- "start": 11883
1294
+ "start": 6895
1202
1295
  },
1203
1296
  {
1204
1297
  "length": 20,
1205
- "start": 11958
1298
+ "start": 6923
1206
1299
  },
1207
1300
  {
1208
1301
  "length": 20,
1209
- "start": 12082
1210
- }
1211
- ]
1212
- },
1213
- "contracts/type/Fee.sol": {
1214
- "FeeLib": [
1302
+ "start": 7291
1303
+ },
1304
+ {
1305
+ "length": 20,
1306
+ "start": 7812
1307
+ },
1308
+ {
1309
+ "length": 20,
1310
+ "start": 8034
1311
+ },
1312
+ {
1313
+ "length": 20,
1314
+ "start": 12446
1315
+ },
1215
1316
  {
1216
1317
  "length": 20,
1217
- "start": 12235
1318
+ "start": 12585
1319
+ },
1320
+ {
1321
+ "length": 20,
1322
+ "start": 16145
1323
+ },
1324
+ {
1325
+ "length": 20,
1326
+ "start": 16278
1327
+ },
1328
+ {
1329
+ "length": 20,
1330
+ "start": 16352
1331
+ },
1332
+ {
1333
+ "length": 20,
1334
+ "start": 17047
1335
+ },
1336
+ {
1337
+ "length": 20,
1338
+ "start": 17843
1218
1339
  }
1219
1340
  ]
1220
1341
  },
@@ -1222,19 +1343,47 @@
1222
1343
  "NftIdLib": [
1223
1344
  {
1224
1345
  "length": 20,
1225
- "start": 2294
1346
+ "start": 1998
1347
+ },
1348
+ {
1349
+ "length": 20,
1350
+ "start": 2626
1351
+ },
1352
+ {
1353
+ "length": 20,
1354
+ "start": 9279
1355
+ },
1356
+ {
1357
+ "length": 20,
1358
+ "start": 11456
1226
1359
  },
1227
1360
  {
1228
1361
  "length": 20,
1229
- "start": 3037
1362
+ "start": 14520
1230
1363
  },
1231
1364
  {
1232
1365
  "length": 20,
1233
- "start": 4353
1366
+ "start": 15512
1234
1367
  },
1235
1368
  {
1236
1369
  "length": 20,
1237
- "start": 6680
1370
+ "start": 16005
1371
+ }
1372
+ ]
1373
+ },
1374
+ "contracts/type/RoleId.sol": {
1375
+ "RoleIdLib": [
1376
+ {
1377
+ "length": 20,
1378
+ "start": 8583
1379
+ }
1380
+ ]
1381
+ },
1382
+ "contracts/type/Seconds.sol": {
1383
+ "SecondsLib": [
1384
+ {
1385
+ "length": 20,
1386
+ "start": 13695
1238
1387
  }
1239
1388
  ]
1240
1389
  },
@@ -1242,23 +1391,55 @@
1242
1391
  "TimestampLib": [
1243
1392
  {
1244
1393
  "length": 20,
1245
- "start": 4749
1394
+ "start": 3532
1395
+ },
1396
+ {
1397
+ "length": 20,
1398
+ "start": 3692
1246
1399
  },
1247
1400
  {
1248
1401
  "length": 20,
1249
- "start": 10544
1402
+ "start": 6036
1250
1403
  },
1251
1404
  {
1252
1405
  "length": 20,
1253
- "start": 10688
1406
+ "start": 11983
1254
1407
  },
1255
1408
  {
1256
1409
  "length": 20,
1257
- "start": 12743
1410
+ "start": 12089
1258
1411
  },
1259
1412
  {
1260
1413
  "length": 20,
1261
- "start": 12855
1414
+ "start": 12231
1415
+ },
1416
+ {
1417
+ "length": 20,
1418
+ "start": 13529
1419
+ },
1420
+ {
1421
+ "length": 20,
1422
+ "start": 13859
1423
+ },
1424
+ {
1425
+ "length": 20,
1426
+ "start": 14661
1427
+ },
1428
+ {
1429
+ "length": 20,
1430
+ "start": 14802
1431
+ },
1432
+ {
1433
+ "length": 20,
1434
+ "start": 14971
1435
+ },
1436
+ {
1437
+ "length": 20,
1438
+ "start": 17334
1439
+ },
1440
+ {
1441
+ "length": 20,
1442
+ "start": 17444
1262
1443
  }
1263
1444
  ]
1264
1445
  },
@@ -1266,21 +1447,17 @@
1266
1447
  "VersionLib": [
1267
1448
  {
1268
1449
  "length": 20,
1269
- "start": 1853
1270
- },
1271
- {
1272
- "length": 20,
1273
- "start": 3672
1450
+ "start": 1844
1274
1451
  },
1275
1452
  {
1276
1453
  "length": 20,
1277
- "start": 13648
1454
+ "start": 4974
1278
1455
  }
1279
1456
  ],
1280
1457
  "VersionPartLib": [
1281
1458
  {
1282
1459
  "length": 20,
1283
- "start": 7160
1460
+ "start": 9001
1284
1461
  }
1285
1462
  ]
1286
1463
  }