@etherisc/gif-next 0.0.2-b3e9a44-364 → 0.0.2-b43fece-589

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +138 -94
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +78 -58
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +64 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -58
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +119 -135
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +114 -22
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +218 -159
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +81 -25
  40. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  42. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -96
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +121 -77
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +197 -145
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +508 -177
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  50. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +37 -31
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -84
  55. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/Instance.sol/Instance.json +46 -40
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +94 -79
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -130
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -40
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
  69. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  74. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  76. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -75
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +60 -53
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -9
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +73 -53
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +70 -47
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +32 -36
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -81
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +125 -119
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +57 -69
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -15
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +60 -92
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +90 -88
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -92
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +149 -158
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -52
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -32
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -33
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +118 -54
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -88
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -60
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +70 -57
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +105 -54
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -0
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +80 -62
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -49
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -115
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -46
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +118 -54
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +44 -26
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +26 -30
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -15
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +98 -35
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +38 -53
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +129 -61
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -29
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Component.sol/Component.json +52 -28
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +334 -155
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +67 -63
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +26 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +39 -28
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +305 -19
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +60 -53
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -0
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  207. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +73 -53
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +50 -8
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +26 -0
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +39 -28
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  233. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/Staking.sol/Staking.json +122 -78
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +52 -42
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +50 -32
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +29 -33
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  271. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  277. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  278. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  279. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +12 -12
  280. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  281. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  282. package/contracts/authorization/AccessAdmin.sol +65 -61
  283. package/contracts/authorization/Authorization.sol +106 -38
  284. package/contracts/authorization/IAccess.sol +1 -0
  285. package/contracts/authorization/IAccessAdmin.sol +4 -2
  286. package/contracts/authorization/IAuthorization.sol +13 -7
  287. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  288. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  289. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  290. package/contracts/distribution/BasicDistribution.sol +0 -1
  291. package/contracts/distribution/Distribution.sol +4 -15
  292. package/contracts/distribution/DistributionService.sol +14 -7
  293. package/contracts/distribution/IDistributionComponent.sol +1 -1
  294. package/contracts/examples/fire/FirePool.sol +19 -8
  295. package/contracts/examples/fire/FireProduct.sol +32 -12
  296. package/contracts/examples/fire/FireProductAuthorization.sol +1 -2
  297. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
  298. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  299. package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
  300. package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
  301. package/contracts/instance/IInstance.sol +4 -1
  302. package/contracts/instance/IInstanceService.sol +0 -20
  303. package/contracts/instance/Instance.sol +20 -17
  304. package/contracts/instance/InstanceAdmin.sol +16 -27
  305. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  306. package/contracts/instance/InstanceService.sol +14 -68
  307. package/contracts/instance/module/IComponents.sol +7 -4
  308. package/contracts/oracle/BasicOracle.sol +0 -1
  309. package/contracts/oracle/IOracleService.sol +2 -1
  310. package/contracts/oracle/Oracle.sol +4 -15
  311. package/contracts/oracle/OracleService.sol +20 -14
  312. package/contracts/pool/BasicPool.sol +22 -12
  313. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  314. package/contracts/pool/BundleService.sol +63 -39
  315. package/contracts/pool/IBundleService.sol +2 -5
  316. package/contracts/pool/IPoolComponent.sol +1 -7
  317. package/contracts/pool/IPoolService.sol +23 -22
  318. package/contracts/pool/Pool.sol +111 -123
  319. package/contracts/pool/PoolService.sol +186 -128
  320. package/contracts/product/ApplicationService.sol +9 -1
  321. package/contracts/product/BasicProduct.sol +8 -12
  322. package/contracts/product/BasicProductAuthorization.sol +0 -1
  323. package/contracts/product/ClaimService.sol +82 -51
  324. package/contracts/product/IPricingService.sol +9 -9
  325. package/contracts/product/IProductComponent.sol +6 -0
  326. package/contracts/product/PolicyService.sol +15 -10
  327. package/contracts/product/PricingService.sol +7 -7
  328. package/contracts/product/Product.sol +51 -54
  329. package/contracts/registry/ChainNft.sol +6 -9
  330. package/contracts/registry/IRegistry.sol +0 -3
  331. package/contracts/registry/IRegistryService.sol +6 -4
  332. package/contracts/registry/ITransferInterceptor.sol +1 -2
  333. package/contracts/registry/Registry.sol +6 -4
  334. package/contracts/registry/RegistryAdmin.sol +7 -23
  335. package/contracts/registry/RegistryService.sol +37 -55
  336. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  337. package/contracts/registry/ReleaseRegistry.sol +201 -191
  338. package/contracts/registry/ServiceAuthorizationV3.sol +20 -15
  339. package/contracts/shared/Component.sol +25 -21
  340. package/contracts/shared/ComponentService.sol +235 -131
  341. package/contracts/shared/ComponentVerifyingService.sol +22 -14
  342. package/contracts/shared/IComponent.sol +6 -2
  343. package/contracts/shared/IComponentService.sol +25 -13
  344. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  345. package/contracts/shared/ILifecycle.sol +3 -1
  346. package/contracts/shared/IRegisterable.sol +11 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +67 -25
  348. package/contracts/shared/KeyValueStore.sol +1 -1
  349. package/contracts/shared/Lifecycle.sol +15 -4
  350. package/contracts/shared/NftOwnable.sol +8 -4
  351. package/contracts/shared/Registerable.sol +15 -7
  352. package/contracts/shared/Service.sol +4 -7
  353. package/contracts/staking/Staking.sol +2 -3
  354. package/contracts/staking/StakingService.sol +14 -0
  355. package/contracts/type/RiskId.sol +1 -1
  356. package/contracts/type/RoleId.sol +0 -12
  357. package/contracts/type/StateId.sol +14 -1
  358. package/contracts/upgradeability/ProxyManager.sol +2 -1
  359. package/package.json +1 -1
  360. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  361. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  362. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  363. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  364. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  365. package/contracts/authorization/ModuleAuthorization.sol +0 -78
@@ -203,39 +203,44 @@
203
203
  },
204
204
  {
205
205
  "inputs": [
206
+ {
207
+ "internalType": "RequestId",
208
+ "name": "requestId",
209
+ "type": "uint64"
210
+ },
206
211
  {
207
212
  "internalType": "NftId",
208
- "name": "expectedInstanceNftId",
213
+ "name": "expectedOracleNftId",
209
214
  "type": "uint96"
210
215
  },
211
216
  {
212
217
  "internalType": "NftId",
213
- "name": "oracleInstanceNftId",
218
+ "name": "oracleNftId",
214
219
  "type": "uint96"
215
220
  }
216
221
  ],
217
- "name": "ErrorOracleServiceInstanceMismatch",
222
+ "name": "ErrorOracleServiceNotResponsibleOracle",
218
223
  "type": "error"
219
224
  },
220
225
  {
221
226
  "inputs": [
222
227
  {
223
- "internalType": "RequestId",
224
- "name": "requestId",
225
- "type": "uint64"
228
+ "internalType": "ObjectType",
229
+ "name": "callerObjectType",
230
+ "type": "uint8"
226
231
  },
227
232
  {
228
233
  "internalType": "NftId",
229
- "name": "expectedOracleNftId",
234
+ "name": "productNft",
230
235
  "type": "uint96"
231
236
  },
232
237
  {
233
238
  "internalType": "NftId",
234
- "name": "oracleNftId",
239
+ "name": "oracleParentNftId",
235
240
  "type": "uint96"
236
241
  }
237
242
  ],
238
- "name": "ErrorOracleServiceNotResponsibleOracle",
243
+ "name": "ErrorOracleServiceProductMismatch",
239
244
  "type": "error"
240
245
  },
241
246
  {
@@ -429,6 +434,19 @@
429
434
  "name": "LogOracleServiceResponseResent",
430
435
  "type": "event"
431
436
  },
437
+ {
438
+ "inputs": [],
439
+ "name": "GIF_RELEASE",
440
+ "outputs": [
441
+ {
442
+ "internalType": "uint256",
443
+ "name": "",
444
+ "type": "uint256"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
432
450
  {
433
451
  "inputs": [],
434
452
  "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
@@ -583,6 +601,19 @@
583
601
  "stateMutability": "view",
584
602
  "type": "function"
585
603
  },
604
+ {
605
+ "inputs": [],
606
+ "name": "getRelease",
607
+ "outputs": [
608
+ {
609
+ "internalType": "VersionPart",
610
+ "name": "release",
611
+ "type": "uint8"
612
+ }
613
+ ],
614
+ "stateMutability": "pure",
615
+ "type": "function"
616
+ },
586
617
  {
587
618
  "inputs": [],
588
619
  "name": "getRoleId",
@@ -770,26 +801,26 @@
770
801
  "type": "function"
771
802
  }
772
803
  ],
773
- "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6136da806100d65f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063644c45e0116100a9578063ada9652e1161006e578063ada9652e146102de578063b68d1809146102f2578063bf7e214f14610301578063cf4ee77a1461031e578063f684566314610331575f80fd5b8063644c45e0146102655780636c741e78146102825780637a9e5e4b146102a2578063893d20e8146102b55780638fb36037146102bd575f80fd5b80632ccc7da4116100ef5780632ccc7da4146101f2578063329d6e741461020757806349bb9e4b1461021a5780634c125e791461022d5780635ab1bd5314610240575f80fd5b806301ffc9a71461012b5780630d8e6e2c1461016c5780630fec111c14610188578063138461e01461019d5780631eff4b22146101bd575b5f80fd5b610157610139366004612b16565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610174610344565b60405162ffffff9091168152602001610163565b6101906103cb565b6040516101639190612b6b565b6101a5610557565b6040516001600160601b039091168152602001610163565b6101e47f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610163565b610205610200366004612c13565b610561565b005b610205610215366004612d35565b6107d6565b610205610228366004612d7a565b610920565b61020561023b366004612c13565b610a1c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610163565b5f80516020613645833981519152546001600160601b03166101a5565b61028a610c3e565b6040516001600160401b039091168152602001610163565b6102056102b0366004612dc6565b610d34565b61024d610dd5565b6102c5610f06565b6040516001600160e01b03199091168152602001610163565b6101e45f8051602061364583398151915281565b604051600d8152602001610163565b5f80516020613665833981519152546001600160a01b031661024d565b61015761032c366004612e25565b610f3b565b61028a61033f366004612e9b565b611485565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612f2d565b905090565b6103d3612ad9565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046d9190612f5f565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104b5610dd5565b6001600160a01b031681526020018260010180546104d290612f7a565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90612f7a565b80156105495780601f1061052057610100808354040283529160200191610549565b820191905f5260205f20905b81548152906001019060200180831161052c57829003601f168201915b505050505081525091505090565b5f6103c6306119f3565b5f808061056e600b611bec565b9250925092505f8061058283878785611c88565b90505f816020015160405160200161059a9190612fc9565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a86608001516040516024016105d3929190612ff2565b60408051601f1981840301815290829052916105ee91613013565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516106259190613013565b5f604051808303815f865af19150503d805f811461065e576040519150601f19603f3d011682016040523d82523d5f602084013e610663565b606091505b5091509150811561078b57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce919061301e565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107cb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107c293929190613039565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107f8610344565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190613074565b5f805160206136858339815191528054600160401b900460ff168061088c575080546001600160401b03808416911610155b156108aa5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556108d483612063565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206136858339815191528054600160401b810460ff1615906001600160401b03165f811580156109515750825b90505f826001600160401b0316600114801561096c5750303b155b90508115801561097a575080155b156109985760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c257845460ff60401b1916600160401b1785555b6109cc878761206b565b8315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a29600b611bec565b9250925092505f80610a3d83878785611c88565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaf919061301e565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610adf93929190613156565b5f604051808303815f87803b158015610af6575f80fd5b505af1158015610b08573d5f803e3d5ffd5b505050505f610b1f6001546001600160a01b031690565b604080840151905163bf8e179760e01b81526001600160601b0390911660048201526001600160a01b03919091169063bf8e179790602401602060405180830381865afa158015610b72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b96919061301e565b604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610be0575f80fd5b505af1158015610bf2573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a0a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131ae565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190613074565b33610d535f80516020613665833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610d935760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610dc8576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d8a565b610dd182612186565b5050565b5f805f8051602061364583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6591906131d8565b15610ef0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eea919061301e565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061366583398151915280545f9190600160a01b900460ff16610f2d575f610eea565b638fb3603760e01b91505090565b5f808080610f49600d611bec565b9194509250905060015f610f5f838a8785611c88565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d91906131fc565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa15801561105c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611080919061301e565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110b093929190613156565b5f604051808303815f87803b1580156110c7575f80fd5b505af11580156110d9573d5f803e3d5ffd5b505050505f6110f06001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa15801561113f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111669190810190613266565b90505f826020015160405160200161117e9190612fc9565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111b39392919061335e565b60408051601f1981840301815290829052916111ce91613013565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516112059190613013565b5f604051808303815f865af19150503d805f811461123e576040519150601f19603f3d011682016040523d82523d5f602084013e611243565b606091505b5090985050871561132057846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ae919061301e565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611305575f80fd5b505af1158015611317573d5f803e3d5ffd5b5050505061142d565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611380919061301e565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156113d7575f80fd5b505af11580156113e9573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161142493929190613039565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f86600d6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa1580156114eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150f91906131d8565b6115405760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610d8a565b5f808061154d600b611bec565b9250925092505f6115678d611560600d90565b60016121e6565b50905061157c83602001518260200151612488565b156115b75760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610d8a565b6116358a73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611602573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162691906131fc565b64ffffffffff90811691161090565b156116d05773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611681573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a591906131fc565b604051639ca7f30b60e01b815264ffffffffff9182166004820152908b166024820152604401610d8a565b5f8890036116f15760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b031681526020018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020018f6001600160601b031681526020018e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af41580156117fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182091906131fc565b64ffffffffff1681526020018c64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118a1919061301e565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b81526004016118cc9190613380565b6020604051808303815f875af11580156118e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190c9190613074565b97505080608001516001600160a01b0316630b29e28e88868f8f8f6040518663ffffffff1660e01b8152600401611947959493929190613392565b5f604051808303815f87803b15801561195e575f80fd5b505af1158015611970573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50887858f8d6040516119db94939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a15050505050509695505050505050565b5f805f8051602061364583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8391906131d8565b15611aaf5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610d8a565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2591906131d8565b611b4d5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610d8a565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc39190612f5f565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611bf5612ad9565b5f611c086001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c709190612f5f565b9250611c7e838560016121e6565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2b919061301e565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbb91906133dc565b6040518263ffffffff1660e01b8152600401611dd991815260200190565b602060405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1891906131ae565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611e65573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e8c91908101906133f3565b92508315611f3157611ea78160045b60ff9081169116141590565b15611ed8576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d8a565b611ee6858460400151612488565b15611f2c57604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d8a565b611fcf565b611f3c816004611e9b565b8015611f4e5750611f4e816007611e9b565b15611f7f576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d8a565b611f8c85845f0151612488565b15611fcf578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d8a565b61201e8360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611602573d5f803e3d5ffd5b156120595760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610d8a565b5050949350505050565b610127612513565b5f805160206136858339815191528054600160401b810460ff1615906001600160401b03165f8115801561209c5750825b90505f826001600160401b031660011480156120b75750303b155b9050811580156120c5575080155b156120e35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561210d57845460ff60401b1916600160401b1785555b5f80878060200190518101906121239190613507565b9150915061213282828b61254b565b61214263164524b160e21b612690565b50508315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a0a565b5f8051602061366583398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6121ee612ad9565b5f806122026001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561224f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122769190810190613266565b925061228385600b611e9b565b156122d957604083015160ff8681169116146122d457604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d8a565b612375565b6122f483604001516122e9600c90565b60ff90811691161490565b8061230a575061230a83604001516122e9600f90565b80612320575061232083604001516122e9600e90565b80612336575061233683604001516122e9600d90565b61237557604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d8a565b61238283602001516126bc565b9150831561247f57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ea919061301e565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245691906131d8565b1561247f57604051637d71120960e11b81526001600160601b0387166004820152602401610d8a565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156124e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250c91906131d8565b9392505050565b5f8051602061368583398151915254600160401b900460ff1661254957604051631afcd79f60e31b815260040160405180910390fd5b565b612553612513565b61255b612747565b6001600160a01b038216156125785761257382612757565b6125ef565b5f612583600261276b565b90506125ed816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e8919061301e565b612757565b505b61266b83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561262f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126539190612f5f565b60085f8560405180602001604052805f815250612832565b61267b634a531f3360e01b612690565b61268b63daf9067160e01b612690565b505050565b612698612513565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f6126cf6001546001600160a01b031690565b60405163bf8e179760e01b81526001600160601b03841660048201526001600160a01b03919091169063bf8e1797906024015b602060405180830381865afa15801561271d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612741919061301e565b92915050565b61274f612513565b6125496128d7565b61275f612513565b61276881612905565b50565b5f61277e6001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156127e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280591906131ae565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401612702565b61283a612513565b6128448287612916565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016128cd838261358a565b5050505050505050565b6128df612513565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b61290d612513565b61276881612186565b61291e612513565b6129278161298c565b61292f612a94565b6001600160a01b0382166129565760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061364583398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b612994612513565b806001600160a01b03163b5f036129c95760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d8a565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015612a43575060408051601f3d908101601f19168201909252612a40918101906131d8565b60015b612a6b5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d8a565b80610dd15760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610d8a565b612a9c612513565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612b26575f80fd5b81356001600160e01b03198116811461250c575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612bb3608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612bf7610100840182612b3d565b949350505050565b6001600160401b0381168114612768575f80fd5b5f60208284031215612c23575f80fd5b813561250c81612bff565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612c6457612c64612c2e565b60405290565b60405161010081016001600160401b0381118282101715612c6457612c64612c2e565b604051601f8201601f191681016001600160401b0381118282101715612cb557612cb5612c2e565b604052919050565b5f6001600160401b03821115612cd557612cd5612c2e565b50601f01601f191660200190565b5f82601f830112612cf2575f80fd5b8135612d05612d0082612cbd565b612c8d565b818152846020838601011115612d19575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612d45575f80fd5b81356001600160401b03811115612d5a575f80fd5b612bf784828501612ce3565b6001600160a01b0381168114612768575f80fd5b5f8060408385031215612d8b575f80fd5b8235612d9681612d66565b915060208301356001600160401b03811115612db0575f80fd5b612dbc85828601612ce3565b9150509250929050565b5f60208284031215612dd6575f80fd5b813561250c81612d66565b5f8083601f840112612df1575f80fd5b5081356001600160401b03811115612e07575f80fd5b602083019150836020828501011115612e1e575f80fd5b9250929050565b5f805f60408486031215612e37575f80fd5b8335612e4281612bff565b925060208401356001600160401b03811115612e5c575f80fd5b612e6886828701612de1565b9497909650939450505050565b6001600160601b0381168114612768575f80fd5b64ffffffffff81168114612768575f80fd5b5f805f805f8060808789031215612eb0575f80fd5b8635612ebb81612e75565b955060208701356001600160401b03811115612ed5575f80fd5b612ee189828a01612de1565b9096509450506040870135612ef581612e89565b925060608701356001600160401b03811115612f0f575f80fd5b612f1b89828a01612de1565b979a9699509497509295939492505050565b5f60208284031215612f3d575f80fd5b815162ffffff8116811461250c575f80fd5b8051612f5a81612e75565b919050565b5f60208284031215612f6f575f80fd5b815161250c81612e75565b600181811c90821680612f8e57607f821691505b602082108103612fac57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f612fd48284612fb2565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612bf76040830184612b3d565b5f61250c8284612fb2565b5f6020828403121561302e575f80fd5b815161250c81612d66565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061306b90830184612b3d565b95945050505050565b5f60208284031215613084575f80fd5b815161250c81612bff565b80516001600160601b031682525f602082015161010060208501526130b8610100850182612b3d565b905060408301516130d460408601826001600160601b03169052565b50606083015184820360608601526130ec8282612b3d565b915050608083015184820360808601526131068282612b3d565b91505060a083015161312160a086018264ffffffffff169052565b5060c083015161313a60c086018264ffffffffff169052565b5060e083015161314e60e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f613177606083018561308f565b905060ff83166040830152949350505050565b8051612f5a81612d66565b60ff81168114612768575f80fd5b8051612f5a81613195565b5f602082840312156131be575f80fd5b815161250c81613195565b80518015158114612f5a575f80fd5b5f602082840312156131e8575f80fd5b61250c826131c9565b8051612f5a81612e89565b5f6020828403121561320c575f80fd5b815161250c81612e89565b5f82601f830112613226575f80fd5b8151602083015f613239612d0084612cbd565b905082815285838301111561324c575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613276575f80fd5b81516001600160401b0381111561328b575f80fd5b820160e0818503121561329c575f80fd5b6132a4612c42565b6132ad82612f4f565b81526132bb60208301612f4f565b60208201526132cc604083016131a3565b60408201526132dd606083016131c9565b60608201526132ee6080830161318a565b60808201526132ff60a0830161318a565b60a082015260c08201516001600160401b0381111561331c575f80fd5b61332886828501613217565b60c083015250949350505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f61306b604083018486613336565b602081525f61250c602083018461308f565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6133c3608083018587613336565b905064ffffffffff831660608301529695505050505050565b5f602082840312156133ec575f80fd5b5051919050565b5f60208284031215613403575f80fd5b81516001600160401b03811115613418575f80fd5b8201610100818503121561342a575f80fd5b613432612c6a565b61343b82612f4f565b815260208201516001600160401b03811115613455575f80fd5b61346186828501613217565b60208301525061347360408301612f4f565b604082015260608201516001600160401b03811115613490575f80fd5b61349c86828501613217565b60608301525060808201516001600160401b038111156134ba575f80fd5b6134c686828501613217565b6080830152506134d860a083016131f1565b60a08201526134e960c083016131f1565b60c08201526134fa60e083016131c9565b60e0820152949350505050565b5f8060408385031215613518575f80fd5b825161352381612d66565b602084015190925061353481612d66565b809150509250929050565b601f82111561268b57805f5260205f20601f840160051c810160208510156135645750805b601f840160051c820191505b81811015613583575f8155600101613570565b5050505050565b81516001600160401b038111156135a3576135a3612c2e565b6135b7816135b18454612f7a565b8461353f565b6020601f8211600181146135e9575f83156135d25750848201515b5f19600385901b1c1916600184901b178455613583565b5f84815260208120601f198516915b8281101561361857878501518255602094850194600190920191016135f8565b508482101561363557868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207418693d4856cf05177f1afa16046f49168911166cd44b0adaca4b2f00f3957c64736f6c634300081a0033",
774
- "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063644c45e0116100a9578063ada9652e1161006e578063ada9652e146102de578063b68d1809146102f2578063bf7e214f14610301578063cf4ee77a1461031e578063f684566314610331575f80fd5b8063644c45e0146102655780636c741e78146102825780637a9e5e4b146102a2578063893d20e8146102b55780638fb36037146102bd575f80fd5b80632ccc7da4116100ef5780632ccc7da4146101f2578063329d6e741461020757806349bb9e4b1461021a5780634c125e791461022d5780635ab1bd5314610240575f80fd5b806301ffc9a71461012b5780630d8e6e2c1461016c5780630fec111c14610188578063138461e01461019d5780631eff4b22146101bd575b5f80fd5b610157610139366004612b16565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610174610344565b60405162ffffff9091168152602001610163565b6101906103cb565b6040516101639190612b6b565b6101a5610557565b6040516001600160601b039091168152602001610163565b6101e47f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610163565b610205610200366004612c13565b610561565b005b610205610215366004612d35565b6107d6565b610205610228366004612d7a565b610920565b61020561023b366004612c13565b610a1c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610163565b5f80516020613645833981519152546001600160601b03166101a5565b61028a610c3e565b6040516001600160401b039091168152602001610163565b6102056102b0366004612dc6565b610d34565b61024d610dd5565b6102c5610f06565b6040516001600160e01b03199091168152602001610163565b6101e45f8051602061364583398151915281565b604051600d8152602001610163565b5f80516020613665833981519152546001600160a01b031661024d565b61015761032c366004612e25565b610f3b565b61028a61033f366004612e9b565b611485565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190612f2d565b905090565b6103d3612ad9565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610449573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046d9190612f5f565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104b5610dd5565b6001600160a01b031681526020018260010180546104d290612f7a565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90612f7a565b80156105495780601f1061052057610100808354040283529160200191610549565b820191905f5260205f20905b81548152906001019060200180831161052c57829003601f168201915b505050505081525091505090565b5f6103c6306119f3565b5f808061056e600b611bec565b9250925092505f8061058283878785611c88565b90505f816020015160405160200161059a9190612fc9565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a86608001516040516024016105d3929190612ff2565b60408051601f1981840301815290829052916105ee91613013565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516106259190613013565b5f604051808303815f865af19150503d805f811461065e576040519150601f19603f3d011682016040523d82523d5f602084013e610663565b606091505b5091509150811561078b57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce919061301e565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610725575f80fd5b505af1158015610737573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107cb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107c293929190613039565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107f8610344565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610836573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085a9190613074565b5f805160206136858339815191528054600160401b900460ff168061088c575080546001600160401b03808416911610155b156108aa5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556108d483612063565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206136858339815191528054600160401b810460ff1615906001600160401b03165f811580156109515750825b90505f826001600160401b0316600114801561096c5750303b155b90508115801561097a575080155b156109985760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109c257845460ff60401b1916600160401b1785555b6109cc878761206b565b8315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a29600b611bec565b9250925092505f80610a3d83878785611c88565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610a8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aaf919061301e565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610adf93929190613156565b5f604051808303815f87803b158015610af6575f80fd5b505af1158015610b08573d5f803e3d5ffd5b505050505f610b1f6001546001600160a01b031690565b604080840151905163bf8e179760e01b81526001600160601b0390911660048201526001600160a01b03919091169063bf8e179790602401602060405180830381865afa158015610b72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b96919061301e565b604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610be0575f80fd5b505af1158015610bf2573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a0a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccd91906131ae565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610d10573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c69190613074565b33610d535f80516020613665833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610d935760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610dc8576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d8a565b610dd182612186565b5050565b5f805f8051602061364583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6591906131d8565b15610ef0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eea919061301e565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061366583398151915280545f9190600160a01b900460ff16610f2d575f610eea565b638fb3603760e01b91505090565b5f808080610f49600d611bec565b9194509250905060015f610f5f838a8785611c88565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015610fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100d91906131fc565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa15801561105c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611080919061301e565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110b093929190613156565b5f604051808303815f87803b1580156110c7575f80fd5b505af11580156110d9573d5f803e3d5ffd5b505050505f6110f06001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa15801561113f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111669190810190613266565b90505f826020015160405160200161117e9190612fc9565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111b39392919061335e565b60408051601f1981840301815290829052916111ce91613013565b60408051918290039091206020830180516001600160e01b03166001600160e01b0319909216919091179052516112059190613013565b5f604051808303815f865af19150503d805f811461123e576040519150601f19603f3d011682016040523d82523d5f602084013e611243565b606091505b5090985050871561132057846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ae919061301e565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611305575f80fd5b505af1158015611317573d5f803e3d5ffd5b5050505061142d565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611380919061301e565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b1580156113d7575f80fd5b505af11580156113e9573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161142493929190613039565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f86600d6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa1580156114eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150f91906131d8565b6115405760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610d8a565b5f808061154d600b611bec565b9250925092505f6115678d611560600d90565b60016121e6565b50905061157c83602001518260200151612488565b156115b75760208084015190820151604051631c1a30b160e01b81526001600160601b03928316600482015291166024820152604401610d8a565b6116358a73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611602573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162691906131fc565b64ffffffffff90811691161090565b156116d05773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611681573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a591906131fc565b604051639ca7f30b60e01b815264ffffffffff9182166004820152908b166024820152604401610d8a565b5f8890036116f15760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b031681526020018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020018f6001600160601b031681526020018e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af41580156117fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182091906131fc565b64ffffffffff1681526020018c64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118a1919061301e565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b81526004016118cc9190613380565b6020604051808303815f875af11580156118e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190c9190613074565b97505080608001516001600160a01b0316630b29e28e88868f8f8f6040518663ffffffff1660e01b8152600401611947959493929190613392565b5f604051808303815f87803b15801561195e575f80fd5b505af1158015611970573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50887858f8d6040516119db94939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a15050505050509695505050505050565b5f805f8051602061364583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8391906131d8565b15611aaf5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610d8a565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2591906131d8565b611b4d5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610d8a565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc39190612f5f565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611bf5612ad9565b5f611c086001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c709190612f5f565b9250611c7e838560016121e6565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2b919061301e565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbb91906133dc565b6040518263ffffffff1660e01b8152600401611dd991815260200190565b602060405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e1891906131ae565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611e65573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e8c91908101906133f3565b92508315611f3157611ea78160045b60ff9081169116141590565b15611ed8576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d8a565b611ee6858460400151612488565b15611f2c57604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d8a565b611fcf565b611f3c816004611e9b565b8015611f4e5750611f4e816007611e9b565b15611f7f576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610d8a565b611f8c85845f0151612488565b15611fcf578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610d8a565b61201e8360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611602573d5f803e3d5ffd5b156120595760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610d8a565b5050949350505050565b610127612513565b5f805160206136858339815191528054600160401b810460ff1615906001600160401b03165f8115801561209c5750825b90505f826001600160401b031660011480156120b75750303b155b9050811580156120c5575080155b156120e35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561210d57845460ff60401b1916600160401b1785555b5f80878060200190518101906121239190613507565b9150915061213282828b61254b565b61214263164524b160e21b612690565b50508315610a1357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a0a565b5f8051602061366583398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6121ee612ad9565b5f806122026001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa15801561224f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122769190810190613266565b925061228385600b611e9b565b156122d957604083015160ff8681169116146122d457604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d8a565b612375565b6122f483604001516122e9600c90565b60ff90811691161490565b8061230a575061230a83604001516122e9600f90565b80612320575061232083604001516122e9600e90565b80612336575061233683604001516122e9600d90565b61237557604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610d8a565b61238283602001516126bc565b9150831561247f57816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ea919061301e565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245691906131d8565b1561247f57604051637d71120960e11b81526001600160601b0387166004820152602401610d8a565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156124e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250c91906131d8565b9392505050565b5f8051602061368583398151915254600160401b900460ff1661254957604051631afcd79f60e31b815260040160405180910390fd5b565b612553612513565b61255b612747565b6001600160a01b038216156125785761257382612757565b6125ef565b5f612583600261276b565b90506125ed816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e8919061301e565b612757565b505b61266b83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561262f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126539190612f5f565b60085f8560405180602001604052805f815250612832565b61267b634a531f3360e01b612690565b61268b63daf9067160e01b612690565b505050565b612698612513565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b5f6126cf6001546001600160a01b031690565b60405163bf8e179760e01b81526001600160601b03841660048201526001600160a01b03919091169063bf8e1797906024015b602060405180830381865afa15801561271d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612741919061301e565b92915050565b61274f612513565b6125496128d7565b61275f612513565b61276881612905565b50565b5f61277e6001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156127e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061280591906131ae565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401612702565b61283a612513565b6128448287612916565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016128cd838261358a565b5050505050505050565b6128df612513565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b61290d612513565b61276881612186565b61291e612513565b6129278161298c565b61292f612a94565b6001600160a01b0382166129565760405163f17ef42d60e01b815260040160405180910390fd5b505f8051602061364583398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b612994612513565b806001600160a01b03163b5f036129c95760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d8a565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015612a43575060408051601f3d908101601f19168201909252612a40918101906131d8565b60015b612a6b5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610d8a565b80610dd15760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610d8a565b612a9c612513565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612b26575f80fd5b81356001600160e01b03198116811461250c575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612bb3608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612bf7610100840182612b3d565b949350505050565b6001600160401b0381168114612768575f80fd5b5f60208284031215612c23575f80fd5b813561250c81612bff565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612c6457612c64612c2e565b60405290565b60405161010081016001600160401b0381118282101715612c6457612c64612c2e565b604051601f8201601f191681016001600160401b0381118282101715612cb557612cb5612c2e565b604052919050565b5f6001600160401b03821115612cd557612cd5612c2e565b50601f01601f191660200190565b5f82601f830112612cf2575f80fd5b8135612d05612d0082612cbd565b612c8d565b818152846020838601011115612d19575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612d45575f80fd5b81356001600160401b03811115612d5a575f80fd5b612bf784828501612ce3565b6001600160a01b0381168114612768575f80fd5b5f8060408385031215612d8b575f80fd5b8235612d9681612d66565b915060208301356001600160401b03811115612db0575f80fd5b612dbc85828601612ce3565b9150509250929050565b5f60208284031215612dd6575f80fd5b813561250c81612d66565b5f8083601f840112612df1575f80fd5b5081356001600160401b03811115612e07575f80fd5b602083019150836020828501011115612e1e575f80fd5b9250929050565b5f805f60408486031215612e37575f80fd5b8335612e4281612bff565b925060208401356001600160401b03811115612e5c575f80fd5b612e6886828701612de1565b9497909650939450505050565b6001600160601b0381168114612768575f80fd5b64ffffffffff81168114612768575f80fd5b5f805f805f8060808789031215612eb0575f80fd5b8635612ebb81612e75565b955060208701356001600160401b03811115612ed5575f80fd5b612ee189828a01612de1565b9096509450506040870135612ef581612e89565b925060608701356001600160401b03811115612f0f575f80fd5b612f1b89828a01612de1565b979a9699509497509295939492505050565b5f60208284031215612f3d575f80fd5b815162ffffff8116811461250c575f80fd5b8051612f5a81612e75565b919050565b5f60208284031215612f6f575f80fd5b815161250c81612e75565b600181811c90821680612f8e57607f821691505b602082108103612fac57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f612fd48284612fb2565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612bf76040830184612b3d565b5f61250c8284612fb2565b5f6020828403121561302e575f80fd5b815161250c81612d66565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061306b90830184612b3d565b95945050505050565b5f60208284031215613084575f80fd5b815161250c81612bff565b80516001600160601b031682525f602082015161010060208501526130b8610100850182612b3d565b905060408301516130d460408601826001600160601b03169052565b50606083015184820360608601526130ec8282612b3d565b915050608083015184820360808601526131068282612b3d565b91505060a083015161312160a086018264ffffffffff169052565b5060c083015161313a60c086018264ffffffffff169052565b5060e083015161314e60e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f613177606083018561308f565b905060ff83166040830152949350505050565b8051612f5a81612d66565b60ff81168114612768575f80fd5b8051612f5a81613195565b5f602082840312156131be575f80fd5b815161250c81613195565b80518015158114612f5a575f80fd5b5f602082840312156131e8575f80fd5b61250c826131c9565b8051612f5a81612e89565b5f6020828403121561320c575f80fd5b815161250c81612e89565b5f82601f830112613226575f80fd5b8151602083015f613239612d0084612cbd565b905082815285838301111561324c575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f60208284031215613276575f80fd5b81516001600160401b0381111561328b575f80fd5b820160e0818503121561329c575f80fd5b6132a4612c42565b6132ad82612f4f565b81526132bb60208301612f4f565b60208201526132cc604083016131a3565b60408201526132dd606083016131c9565b60608201526132ee6080830161318a565b60808201526132ff60a0830161318a565b60a082015260c08201516001600160401b0381111561331c575f80fd5b61332886828501613217565b60c083015250949350505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f61306b604083018486613336565b602081525f61250c602083018461308f565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6133c3608083018587613336565b905064ffffffffff831660608301529695505050505050565b5f602082840312156133ec575f80fd5b5051919050565b5f60208284031215613403575f80fd5b81516001600160401b03811115613418575f80fd5b8201610100818503121561342a575f80fd5b613432612c6a565b61343b82612f4f565b815260208201516001600160401b03811115613455575f80fd5b61346186828501613217565b60208301525061347360408301612f4f565b604082015260608201516001600160401b03811115613490575f80fd5b61349c86828501613217565b60608301525060808201516001600160401b038111156134ba575f80fd5b6134c686828501613217565b6080830152506134d860a083016131f1565b60a08201526134e960c083016131f1565b60c08201526134fa60e083016131c9565b60e0820152949350505050565b5f8060408385031215613518575f80fd5b825161352381612d66565b602084015190925061353481612d66565b809150509250929050565b601f82111561268b57805f5260205f20601f840160051c810160208510156135645750805b601f840160051c820191505b81811015613583575f8155600101613570565b5050505050565b81516001600160401b038111156135a3576135a3612c2e565b6135b7816135b18454612f7a565b8461353f565b6020601f8211600181146135e9575f83156135d25750848201515b5f19600385901b1c1916600184901b178455613583565b5f84815260208120601f198516915b8281101561361857878501518255602094850194600190920191016135f8565b508482101561363557868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207418693d4856cf05177f1afa16046f49168911166cd44b0adaca4b2f00f3957c64736f6c634300081a0033",
804
+ "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613805806100d65f395ff3fe608060405234801561000f575f80fd5b506004361061013d575f3560e01c80636c741e78116100b45780638fb36037116100795780638fb36037146102f5578063ada9652e14610316578063b68d18091461032a578063bf7e214f14610331578063cf4ee77a1461034e578063f684566314610361575f80fd5b80636c741e781461029857806376b707b7146102b85780637a9e5e4b146102d25780638899278a146102e5578063893d20e8146102ed575f80fd5b80632ccc7da4116101055780632ccc7da414610208578063329d6e741461021d57806349bb9e4b146102305780634c125e79146102435780635ab1bd5314610256578063644c45e01461027b575f80fd5b806301ffc9a7146101415780630d8e6e2c146101825780630fec111c1461019e578063138461e0146101b35780631eff4b22146101d3575b5f80fd5b61016d61014f366004612c41565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61018a610374565b60405162ffffff9091168152602001610179565b6101a66103fb565b6040516101799190612c96565b6101bb610587565b6040516001600160601b039091168152602001610179565b6101fa7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610179565b61021b610216366004612d3e565b610591565b005b61021b61022b366004612e60565b610806565b61021b61023e366004612ea5565b610950565b61021b610251366004612d3e565b610a4c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610179565b5f80516020613770833981519152546001600160601b03166101bb565b6102a0610c6e565b6040516001600160401b039091168152602001610179565b6102c0610cfa565b60405160ff9091168152602001610179565b61021b6102e0366004612ef1565b610d6e565b6101fa600381565b610263610e0f565b6102fd610f40565b6040516001600160e01b03199091168152602001610179565b6101fa5f8051602061377083398151915281565b600d6102c0565b5f80516020613790833981519152546001600160a01b0316610263565b61016d61035c366004612f50565b610f75565b6102a061036f366004612fc6565b6114bf565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f69190613058565b905090565b610403612c04565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610479573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d919061308a565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104e5610e0f565b6001600160a01b03168152602001826001018054610502906130a5565b80601f016020809104026020016040519081016040528092919081815260200182805461052e906130a5565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b505050505081525091505090565b5f6103f630611a0e565b5f808061059e600b611c07565b9250925092505f806105b283878785611ca3565b90505f81602001516040516020016105ca91906130f4565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a866080015160405160240161060392919061311d565b60408051601f19818403018152908290529161061e9161313e565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610655919061313e565b5f604051808303815f865af19150503d805f811461068e576040519150601f19603f3d011682016040523d82523d5f602084013e610693565b606091505b509150915081156107bb57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fe9190613149565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610755575f80fd5b505af1158015610767573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107fb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107f293929190613164565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610828610374565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610866573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088a919061319f565b5f805160206137b08339815191528054600160401b900460ff16806108bc575080546001600160401b03808416911610155b156108da5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556109048361207e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206137b08339815191528054600160401b810460ff1615906001600160401b03165f811580156109815750825b90505f826001600160401b0316600114801561099c5750303b155b9050811580156109aa575080155b156109c85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109f257845460ff60401b1916600160401b1785555b6109fc8787612086565b8315610a4357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a59600b611c07565b9250925092505f80610a6d83878785611ca3565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610abb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190613149565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610b0f93929190613281565b5f604051808303815f87803b158015610b26575f80fd5b505af1158015610b38573d5f803e3d5ffd5b505050505f610b4f6001546001600160a01b031690565b604080840151905163bf8e179760e01b81526001600160601b0390911660048201526001600160a01b03919091169063bf8e179790602401602060405180830381865afa158015610ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc69190613149565b604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610c10575f80fd5b505af1158015610c22573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a3a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d610c93610cfa565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f6919061319f565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610d4a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f691906132d9565b33610d8d5f80516020613790833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610dcd5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610e02576040516361798f2f60e11b81526001600160a01b0383166004820152602401610dc4565b610e0b826121a1565b5050565b5f805f8051602061377083398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190613303565b15610f2a576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f249190613149565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061379083398151915280545f9190600160a01b900460ff16610f67575f610f24565b638fb3603760e01b91505090565b5f808080610f83600d611c07565b9194509250905060015f610f99838a8785611ca3565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015611023573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110479190613327565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611096573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ba9190613149565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110ea93929190613281565b5f604051808303815f87803b158015611101575f80fd5b505af1158015611113573d5f803e3d5ffd5b505050505f61112a6001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611179573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111a09190810190613391565b90505f82602001516040516020016111b891906130f4565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111ed93929190613489565b60408051601f1981840301815290829052916112089161313e565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161123f919061313e565b5f604051808303815f865af19150503d805f8114611278576040519150601f19603f3d011682016040523d82523d5f602084013e61127d565b606091505b5090985050871561135a57846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e89190613149565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561133f575f80fd5b505af1158015611351573d5f803e3d5ffd5b50505050611467565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba9190613149565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611411575f80fd5b505af1158015611423573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161145e93929190613164565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f86600d6114cd8282612201565b5f80806114da600b611c07565b9250925092505f6114f48d6114ed600d90565b60016122b8565b5090506115128360400151611507600c90565b60ff90811691161490565b15611575576115288160200151845f015161257b565b156115705760408381015184516020840151925163296ab33160e01b815260ff90921660048301526001600160601b0390811660248301529091166044820152606401610dc4565b6115d2565b6115878160200151846020015161257b565b156115d25760408084015160208086015190840151925163296ab33160e01b815260ff90921660048301526001600160601b0390811660248301529091166044820152606401610dc4565b6116508a73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561161d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116419190613327565b64ffffffffff90811691161090565b156116eb5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561169c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c09190613327565b604051639ca7f30b60e01b815264ffffffffff9182166004820152908b166024820152604401610dc4565b5f88900361170c5760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b031681526020018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020018f6001600160601b031681526020018e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611817573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183b9190613327565b64ffffffffff1681526020018c64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611898573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118bc9190613149565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b81526004016118e791906134ab565b6020604051808303815f875af1158015611903573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611927919061319f565b97505080608001516001600160a01b0316630b29e28e88868f8f8f6040518663ffffffff1660e01b81526004016119629594939291906134bd565b5f604051808303815f87803b158015611979575f80fd5b505af115801561198b573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50887858f8d6040516119f694939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a15050505050509695505050505050565b5f805f8051602061377083398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9e9190613303565b15611aca5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610dc4565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b409190613303565b611b685760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610dc4565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611bba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bde919061308a565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611c10612c04565b5f611c236001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611c67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8b919061308a565b9250611c99838560016122b8565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d469190613149565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611db2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd69190613507565b6040518263ffffffff1660e01b8152600401611df491815260200190565b602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3391906132d9565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611e80573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ea7919081019061351e565b92508315611f4c57611ec28160055b60ff9081169116141590565b15611ef3576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610dc4565b611f0185846040015161257b565b15611f4757604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610dc4565b611fea565b611f57816005611eb6565b8015611f695750611f69816007611eb6565b15611f9a576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610dc4565b611fa785845f015161257b565b15611fea578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610dc4565b6120398360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561161d573d5f803e3d5ffd5b156120745760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610dc4565b5050949350505050565b61013d612606565b5f805160206137b08339815191528054600160401b810460ff1615906001600160401b03165f811580156120b75750825b90505f826001600160401b031660011480156120d25750303b155b9050811580156120e0575080155b156120fe5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561212857845460ff60401b1916600160401b1785555b5f808780602001905181019061213e9190613632565b9150915061214d82828b61263e565b61215d63164524b160e21b612783565b50508315610a4357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a3a565b5f8051602061379083398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015612263573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122879190613303565b610e0b5760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610dc4565b6122c0612c04565b5f806122d46001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612321573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526123489190810190613391565b925061235585600b611eb6565b156123ab57604083015160ff8681169116146123a657604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610dc4565b61243c565b6123bb8360400151611507600c90565b806123d157506123d18360400151611507600f90565b806123e757506123e78360400151611507600e90565b806123fd57506123fd8360400151611507600d90565b61243c57604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610dc4565b61244c8360400151611507600c90565b156124665761245f8184602001516127af565b9150612477565b612474818460200151612820565b91505b831561257257816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190613149565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612525573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125499190613303565b1561257257604051637d71120960e11b81526001600160601b0387166004820152602401610dc4565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156125db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ff9190613303565b9392505050565b5f805160206137b083398151915254600160401b900460ff1661263c57604051631afcd79f60e31b815260040160405180910390fd5b565b612646612606565b61264e6128a2565b6001600160a01b0382161561266b57612666826128b2565b6126e2565b5f61267660026128c6565b90506126e0816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126db9190613149565b6128b2565b505b61275e83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612722573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612746919061308a565b60085f8560405180602001604052805f81525061295d565b61276e634a531f3360e01b612783565b61277e63daf9067160e01b612783565b505050565b61278b612606565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b60405163bf8e179760e01b81526001600160601b03821660048201525f906001600160a01b0384169063bf8e179790602401602060405180830381865afa1580156127fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ff9190613149565b6040516305247a1760e51b81526001600160601b03821660048201525f906125ff9084906001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612872573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526128999190810190613391565b602001516127af565b6128aa612606565b61263c612a02565b6128ba612606565b6128c381612a30565b50565b5f6128d96001546001600160a01b031690565b6001600160a01b031663d39e6043836128f0610cfa565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129579190613149565b92915050565b612965612606565b61296f8683612a41565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016129f883826136b5565b5050505050505050565b612a0a612606565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b612a38612606565b6128c3816121a1565b612a49612606565b612a5282612ab7565b612a5a612bbf565b6001600160a01b038116612a815760405163f17ef42d60e01b815260040160405180910390fd5b5f8051602061377083398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b612abf612606565b806001600160a01b03163b5f03612af45760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610dc4565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015612b6e575060408051601f3d908101601f19168201909252612b6b91810190613303565b60015b612b965760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610dc4565b80610e0b5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610dc4565b612bc7612606565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612c51575f80fd5b81356001600160e01b0319811681146125ff575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612cde608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612d22610100840182612c68565b949350505050565b6001600160401b03811681146128c3575f80fd5b5f60208284031215612d4e575f80fd5b81356125ff81612d2a565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612d8f57612d8f612d59565b60405290565b60405161010081016001600160401b0381118282101715612d8f57612d8f612d59565b604051601f8201601f191681016001600160401b0381118282101715612de057612de0612d59565b604052919050565b5f6001600160401b03821115612e0057612e00612d59565b50601f01601f191660200190565b5f82601f830112612e1d575f80fd5b8135612e30612e2b82612de8565b612db8565b818152846020838601011115612e44575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612e70575f80fd5b81356001600160401b03811115612e85575f80fd5b612d2284828501612e0e565b6001600160a01b03811681146128c3575f80fd5b5f8060408385031215612eb6575f80fd5b8235612ec181612e91565b915060208301356001600160401b03811115612edb575f80fd5b612ee785828601612e0e565b9150509250929050565b5f60208284031215612f01575f80fd5b81356125ff81612e91565b5f8083601f840112612f1c575f80fd5b5081356001600160401b03811115612f32575f80fd5b602083019150836020828501011115612f49575f80fd5b9250929050565b5f805f60408486031215612f62575f80fd5b8335612f6d81612d2a565b925060208401356001600160401b03811115612f87575f80fd5b612f9386828701612f0c565b9497909650939450505050565b6001600160601b03811681146128c3575f80fd5b64ffffffffff811681146128c3575f80fd5b5f805f805f8060808789031215612fdb575f80fd5b8635612fe681612fa0565b955060208701356001600160401b03811115613000575f80fd5b61300c89828a01612f0c565b909650945050604087013561302081612fb4565b925060608701356001600160401b0381111561303a575f80fd5b61304689828a01612f0c565b979a9699509497509295939492505050565b5f60208284031215613068575f80fd5b815162ffffff811681146125ff575f80fd5b805161308581612fa0565b919050565b5f6020828403121561309a575f80fd5b81516125ff81612fa0565b600181811c908216806130b957607f821691505b6020821081036130d757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f6130ff82846130dd565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612d226040830184612c68565b5f6125ff82846130dd565b5f60208284031215613159575f80fd5b81516125ff81612e91565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061319690830184612c68565b95945050505050565b5f602082840312156131af575f80fd5b81516125ff81612d2a565b80516001600160601b031682525f602082015161010060208501526131e3610100850182612c68565b905060408301516131ff60408601826001600160601b03169052565b50606083015184820360608601526132178282612c68565b915050608083015184820360808601526132318282612c68565b91505060a083015161324c60a086018264ffffffffff169052565b5060c083015161326560c086018264ffffffffff169052565b5060e083015161327960e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6132a260608301856131ba565b905060ff83166040830152949350505050565b805161308581612e91565b60ff811681146128c3575f80fd5b8051613085816132c0565b5f602082840312156132e9575f80fd5b81516125ff816132c0565b80518015158114613085575f80fd5b5f60208284031215613313575f80fd5b6125ff826132f4565b805161308581612fb4565b5f60208284031215613337575f80fd5b81516125ff81612fb4565b5f82601f830112613351575f80fd5b8151602083015f613364612e2b84612de8565b9050828152858383011115613377575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f602082840312156133a1575f80fd5b81516001600160401b038111156133b6575f80fd5b820160e081850312156133c7575f80fd5b6133cf612d6d565b6133d88261307a565b81526133e66020830161307a565b60208201526133f7604083016132ce565b6040820152613408606083016132f4565b6060820152613419608083016132b5565b608082015261342a60a083016132b5565b60a082015260c08201516001600160401b03811115613447575f80fd5b61345386828501613342565b60c083015250949350505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f613196604083018486613461565b602081525f6125ff60208301846131ba565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6134ee608083018587613461565b905064ffffffffff831660608301529695505050505050565b5f60208284031215613517575f80fd5b5051919050565b5f6020828403121561352e575f80fd5b81516001600160401b03811115613543575f80fd5b82016101008185031215613555575f80fd5b61355d612d95565b6135668261307a565b815260208201516001600160401b03811115613580575f80fd5b61358c86828501613342565b60208301525061359e6040830161307a565b604082015260608201516001600160401b038111156135bb575f80fd5b6135c786828501613342565b60608301525060808201516001600160401b038111156135e5575f80fd5b6135f186828501613342565b60808301525061360360a0830161331c565b60a082015261361460c0830161331c565b60c082015261362560e083016132f4565b60e0820152949350505050565b5f8060408385031215613643575f80fd5b825161364e81612e91565b602084015190925061365f81612e91565b809150509250929050565b601f82111561277e57805f5260205f20601f840160051c8101602085101561368f5750805b601f840160051c820191505b818110156136ae575f815560010161369b565b5050505050565b81516001600160401b038111156136ce576136ce612d59565b6136e2816136dc84546130a5565b8461366a565b6020601f821160018114613714575f83156136fd5750848201515b5f19600385901b1c1916600184901b1784556136ae565b5f84815260208120601f198516915b828110156137435787850151825560209485019460019092019101613723565b508482101561376057868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220894f26d1121c2b4bfa477159b9686a58f75e96c9a07348ab4e2998a01fe1229764736f6c634300081a0033",
805
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061013d575f3560e01c80636c741e78116100b45780638fb36037116100795780638fb36037146102f5578063ada9652e14610316578063b68d18091461032a578063bf7e214f14610331578063cf4ee77a1461034e578063f684566314610361575f80fd5b80636c741e781461029857806376b707b7146102b85780637a9e5e4b146102d25780638899278a146102e5578063893d20e8146102ed575f80fd5b80632ccc7da4116101055780632ccc7da414610208578063329d6e741461021d57806349bb9e4b146102305780634c125e79146102435780635ab1bd5314610256578063644c45e01461027b575f80fd5b806301ffc9a7146101415780630d8e6e2c146101825780630fec111c1461019e578063138461e0146101b35780631eff4b22146101d3575b5f80fd5b61016d61014f366004612c41565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61018a610374565b60405162ffffff9091168152602001610179565b6101a66103fb565b6040516101799190612c96565b6101bb610587565b6040516001600160601b039091168152602001610179565b6101fa7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610179565b61021b610216366004612d3e565b610591565b005b61021b61022b366004612e60565b610806565b61021b61023e366004612ea5565b610950565b61021b610251366004612d3e565b610a4c565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610179565b5f80516020613770833981519152546001600160601b03166101bb565b6102a0610c6e565b6040516001600160401b039091168152602001610179565b6102c0610cfa565b60405160ff9091168152602001610179565b61021b6102e0366004612ef1565b610d6e565b6101fa600381565b610263610e0f565b6102fd610f40565b6040516001600160e01b03199091168152602001610179565b6101fa5f8051602061377083398151915281565b600d6102c0565b5f80516020613790833981519152546001600160a01b0316610263565b61016d61035c366004612f50565b610f75565b6102a061036f366004612fc6565b6114bf565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156103d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f69190613058565b905090565b610403612c04565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610479573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d919061308a565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016104e5610e0f565b6001600160a01b03168152602001826001018054610502906130a5565b80601f016020809104026020016040519081016040528092919081815260200182805461052e906130a5565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b505050505081525091505090565b5f6103f630611a0e565b5f808061059e600b611c07565b9250925092505f806105b283878785611ca3565b90505f81602001516040516020016105ca91906130f4565b60405160208183030381529060405290505f8086608001516001600160a01b0316838a866080015160405160240161060392919061311d565b60408051601f19818403018152908290529161061e9161313e565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610655919061313e565b5f604051808303815f865af19150503d805f811461068e576040519150601f19603f3d011682016040523d82523d5f602084013e610693565b606091505b509150915081156107bb57856001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fe9190613149565b6001600160a01b031663b4d7efe28a60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015610755575f80fd5b505af1158015610767573d5f803e3d5ffd5b5050604080516001600160401b038d1681526001600160601b038c1660208201527f2c23904167d9f4f57cfdca8bf6477be9524cf29f29b99a80602b03de6f659394935001905060405180910390a16107fb565b7f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b201898860800151856040516107f293929190613164565b60405180910390a15b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610828610374565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610866573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088a919061319f565b5f805160206137b08339815191528054600160401b900460ff16806108bc575080546001600160401b03808416911610155b156108da5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556109048361207e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b5f805160206137b08339815191528054600160401b810460ff1615906001600160401b03165f811580156109815750825b90505f826001600160401b0316600114801561099c5750303b155b9050811580156109aa575080155b156109c85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109f257845460ff60401b1916600160401b1785555b6109fc8787612086565b8315610a4357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b5f8080610a59600b611c07565b9250925092505f80610a6d83878785611ca3565b600160e082015260408051631a99b41b60e31b815290519192506001600160a01b0385169163d4cda0d8916004808201926020929091908290030181865afa158015610abb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190613149565b6001600160a01b031663275c0595878360486040518463ffffffff1660e01b8152600401610b0f93929190613281565b5f604051808303815f87803b158015610b26575f80fd5b505af1158015610b38573d5f803e3d5ffd5b505050505f610b4f6001546001600160a01b031690565b604080840151905163bf8e179760e01b81526001600160601b0390911660048201526001600160a01b03919091169063bf8e179790602401602060405180830381865afa158015610ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc69190613149565b604051634c125e7960e01b81526001600160401b03891660048201529091506001600160a01b03821690634c125e79906024015f604051808303815f87803b158015610c10575f80fd5b505af1158015610c22573d5f803e3d5ffd5b5050604080516001600160401b038b1681526001600160601b038a1660208201527f6cf5ab27927644e6e54b097674488bb6f8fc275103e26dec517bd24333cfabfd9350019050610a3a565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d3600d610c93610cfa565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015610cd6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f6919061319f565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610d4a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f691906132d9565b33610d8d5f80516020613790833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610dcd5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610e02576040516361798f2f60e11b81526001600160a01b0383166004820152602401610dc4565b610e0b826121a1565b5050565b5f805f8051602061377083398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610e7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190613303565b15610f2a576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f249190613149565b91505090565b54600160601b90046001600160a01b0316919050565b5f8051602061379083398151915280545f9190600160a01b900460ff16610f67575f610f24565b638fb3603760e01b91505090565b5f808080610f83600d611c07565b9194509250905060015f610f99838a8785611ca3565b905087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506080820152604080516356db0c1960e11b8152905173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9163adb618329160048083019260209291908290030181865af4158015611023573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110479190613327565b64ffffffffff1660a082015260408051631a99b41b60e31b815290516001600160a01b0385169163d4cda0d89160048083019260209291908290030181865afa158015611096573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ba9190613149565b6001600160a01b031663275c05958a8360ff6040518463ffffffff1660e01b81526004016110ea93929190613281565b5f604051808303815f87803b158015611101575f80fd5b505af1158015611113573d5f803e3d5ffd5b505050505f61112a6001546001600160a01b031690565b82516040516305247a1760e51b81526001600160601b0390911660048201526001600160a01b03919091169063a48f42e0906024015f60405180830381865afa158015611179573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111a09190810190613391565b90505f82602001516040516020016111b891906130f4565b604051602081830303815290604052905081608001516001600160a01b0316818c8c8c6040516024016111ed93929190613489565b60408051601f1981840301815290829052916112089161313e565b60408051918290039091206020830180516001600160e01b03166001600160e01b03199092169190911790525161123f919061313e565b5f604051808303815f865af19150503d805f8114611278576040519150601f19603f3d011682016040523d82523d5f602084013e61127d565b606091505b5090985050871561135a57846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e89190613149565b6001600160a01b031663b4d7efe28c60466040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b15801561133f575f80fd5b505af1158015611351573d5f803e3d5ffd5b50505050611467565b846001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba9190613149565b6001600160a01b031663b4d7efe28c60076040516001600160e01b031960e085901b1681526001600160401b03909216600483015260ff1660248201526044015f604051808303815f87803b158015611411575f80fd5b505af1158015611423573d5f803e3d5ffd5b505050507f0e99bf2fced4687994860bd26166ddec8dd469353290573454b3f8982641b2018b83608001518360405161145e93929190613164565b60405180910390a15b604080516001600160401b038d1681526001600160601b03891660208201527f3eb305364732735f57295079d0cd01ae1441759a3dd5c83c9747050860058382910160405180910390a1505050505050509392505050565b5f86600d6114cd8282612201565b5f80806114da600b611c07565b9250925092505f6114f48d6114ed600d90565b60016122b8565b5090506115128360400151611507600c90565b60ff90811691161490565b15611575576115288160200151845f015161257b565b156115705760408381015184516020840151925163296ab33160e01b815260ff90921660048301526001600160601b0390811660248301529091166044820152606401610dc4565b6115d2565b6115878160200151846020015161257b565b156115d25760408084015160208086015190840151925163296ab33160e01b815260ff90921660048301526001600160601b0390811660248301529091166044820152606401610dc4565b6116508a73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561161d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116419190613327565b64ffffffffff90811691161090565b156116eb5773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561169c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c09190613327565b604051639ca7f30b60e01b815264ffffffffff9182166004820152908b166024820152604401610dc4565b5f88900361170c5760405163f3b7771f60e01b815260040160405180910390fd5b5f604051806101000160405280866001600160601b031681526020018b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020018f6001600160601b031681526020018e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050604080516020818101835293815283850152805163bc1b392d60e01b81528151919094019373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9363bc1b392d935060048083019391928290030181865af4158015611817573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183b9190613327565b64ffffffffff1681526020018c64ffffffffff1681526020015f15158152509050826001600160a01b031663d4cda0d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611898573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118bc9190613149565b6001600160a01b0316630632b17d826040518263ffffffff1660e01b81526004016118e791906134ab565b6020604051808303815f875af1158015611903573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611927919061319f565b97505080608001516001600160a01b0316630b29e28e88868f8f8f6040518663ffffffff1660e01b81526004016119629594939291906134bd565b5f604051808303815f87803b158015611979575f80fd5b505af115801561198b573d5f803e3d5ffd5b505050507fadcf1680abc7d8506282ff140917b70eb64eaddd2d293b71b674fd91cc7fc50887858f8d6040516119f694939291906001600160401b039490941684526001600160601b0392831660208501529116604083015264ffffffffff16606082015260800190565b60405180910390a15050505050509695505050505050565b5f805f8051602061377083398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9e9190613303565b15611aca5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610dc4565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b409190613303565b611b685760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610dc4565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015611bba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bde919061308a565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b5f611c10612c04565b5f611c236001546001600160a01b031690565b604051632f2a35f760e11b81523360048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015611c67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c8b919061308a565b9250611c99838560016122b8565b9395909450915050565b60408051610100810182525f808252606060208301819052928201819052828201839052608082019290925260a0810182905260c0810182905260e08101919091525f856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d469190613149565b604051630f37f38f60e41b81526001600160401b03871660048201529091505f906001600160a01b038316906309648a9d9073__$b4c16f233b92c2c4124fb22a521f86c95b$__9063f37f38f090602401602060405180830381865af4158015611db2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd69190613507565b6040518263ffffffff1660e01b8152600401611df491815260200190565b602060405180830381865afa158015611e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3391906132d9565b60405163febe92af60e01b81526001600160401b03881660048201529091506001600160a01b0383169063febe92af906024015f60405180830381865afa158015611e80573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ea7919081019061351e565b92508315611f4c57611ec28160055b60ff9081169116141590565b15611ef3576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610dc4565b611f0185846040015161257b565b15611f4757604080840151905163469a3cb160e11b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610dc4565b611fea565b611f57816005611eb6565b8015611f695750611f69816007611eb6565b15611f9a576040516242d7c160e51b81526001600160401b038716600482015260ff82166024820152604401610dc4565b611fa785845f015161257b565b15611fea578251604051630346e74560e01b81526001600160401b03881660048201526001600160601b0391821660248201529086166044820152606401610dc4565b6120398360c0015173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561161d573d5f803e3d5ffd5b156120745760c0830151604051628d011f60e71b81526001600160401b038816600482015264ffffffffff9091166024820152604401610dc4565b5050949350505050565b61013d612606565b5f805160206137b08339815191528054600160401b810460ff1615906001600160401b03165f811580156120b75750825b90505f826001600160401b031660011480156120d25750303b155b9050811580156120e0575080155b156120fe5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561212857845460ff60401b1916600160401b1785555b5f808780602001905181019061213e9190613632565b9150915061214d82828b61263e565b61215d63164524b160e21b612783565b50508315610a4357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a3a565b5f8051602061379083398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015612263573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122879190613303565b610e0b5760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610dc4565b6122c0612c04565b5f806122d46001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201529091506001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612321573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526123489190810190613391565b925061235585600b611eb6565b156123ab57604083015160ff8681169116146123a657604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610dc4565b61243c565b6123bb8360400151611507600c90565b806123d157506123d18360400151611507600f90565b806123e757506123e78360400151611507600e90565b806123fd57506123fd8360400151611507600d90565b61243c57604080840151905163b83d92cb60e01b81526001600160601b038816600482015260ff80881660248301529091166044820152606401610dc4565b61244c8360400151611507600c90565b156124665761245f8184602001516127af565b9150612477565b612474818460200151612820565b91505b831561257257816001600160a01b031663311adb686040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190613149565b6080840151604051629b7b3560e61b81526001600160a01b0391821660048201529116906326decd4090602401602060405180830381865afa158015612525573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125499190613303565b1561257257604051637d71120960e11b81526001600160601b0387166004820152602401610dc4565b50935093915050565b6040516399009c5160e01b81526001600160601b038084166004830152821660248201525f9073__$94a2c899be079b00d952d0d84fffaa5c34$__906399009c5190604401602060405180830381865af41580156125db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ff9190613303565b9392505050565b5f805160206137b083398151915254600160401b900460ff1661263c57604051631afcd79f60e31b815260040160405180910390fd5b565b612646612606565b61264e6128a2565b6001600160a01b0382161561266b57612666826128b2565b6126e2565b5f61267660026128c6565b90506126e0816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126db9190613149565b6128b2565b505b61275e83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612722573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612746919061308a565b60085f8560405180602001604052805f81525061295d565b61276e634a531f3360e01b612783565b61277e63daf9067160e01b612783565b505050565b61278b612606565b6001600160e01b0319165f908152602081905260409020805460ff19166001179055565b60405163bf8e179760e01b81526001600160601b03821660048201525f906001600160a01b0384169063bf8e179790602401602060405180830381865afa1580156127fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ff9190613149565b6040516305247a1760e51b81526001600160601b03821660048201525f906125ff9084906001600160a01b0382169063a48f42e0906024015f60405180830381865afa158015612872573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526128999190810190613391565b602001516127af565b6128aa612606565b61263c612a02565b6128ba612606565b6128c381612a30565b50565b5f6128d96001546001600160a01b031690565b6001600160a01b031663d39e6043836128f0610cfa565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612933573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129579190613149565b92915050565b612965612606565b61296f8683612a41565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3016129f883826136b5565b5050505050505050565b612a0a612606565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b612a38612606565b6128c3816121a1565b612a49612606565b612a5282612ab7565b612a5a612bbf565b6001600160a01b038116612a815760405163f17ef42d60e01b815260040160405180910390fd5b5f8051602061377083398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b612abf612606565b806001600160a01b03163b5f03612af45760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610dc4565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526325713e4b60e21b60048201526301ffc9a790602401602060405180830381865afa925050508015612b6e575060408051601f3d908101601f19168201909252612b6b91810190613303565b60015b612b965760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610dc4565b80610e0b5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610dc4565b612bc7612606565b6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b5f60208284031215612c51575f80fd5b81356001600160e01b0319811681146125ff575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151612cde608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612d22610100840182612c68565b949350505050565b6001600160401b03811681146128c3575f80fd5b5f60208284031215612d4e575f80fd5b81356125ff81612d2a565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612d8f57612d8f612d59565b60405290565b60405161010081016001600160401b0381118282101715612d8f57612d8f612d59565b604051601f8201601f191681016001600160401b0381118282101715612de057612de0612d59565b604052919050565b5f6001600160401b03821115612e0057612e00612d59565b50601f01601f191660200190565b5f82601f830112612e1d575f80fd5b8135612e30612e2b82612de8565b612db8565b818152846020838601011115612e44575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215612e70575f80fd5b81356001600160401b03811115612e85575f80fd5b612d2284828501612e0e565b6001600160a01b03811681146128c3575f80fd5b5f8060408385031215612eb6575f80fd5b8235612ec181612e91565b915060208301356001600160401b03811115612edb575f80fd5b612ee785828601612e0e565b9150509250929050565b5f60208284031215612f01575f80fd5b81356125ff81612e91565b5f8083601f840112612f1c575f80fd5b5081356001600160401b03811115612f32575f80fd5b602083019150836020828501011115612f49575f80fd5b9250929050565b5f805f60408486031215612f62575f80fd5b8335612f6d81612d2a565b925060208401356001600160401b03811115612f87575f80fd5b612f9386828701612f0c565b9497909650939450505050565b6001600160601b03811681146128c3575f80fd5b64ffffffffff811681146128c3575f80fd5b5f805f805f8060808789031215612fdb575f80fd5b8635612fe681612fa0565b955060208701356001600160401b03811115613000575f80fd5b61300c89828a01612f0c565b909650945050604087013561302081612fb4565b925060608701356001600160401b0381111561303a575f80fd5b61304689828a01612f0c565b979a9699509497509295939492505050565b5f60208284031215613068575f80fd5b815162ffffff811681146125ff575f80fd5b805161308581612fa0565b919050565b5f6020828403121561309a575f80fd5b81516125ff81612fa0565b600181811c908216806130b957607f821691505b6020821081036130d757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f81518060208401855e5f93019283525090919050565b5f6130ff82846130dd565b6d2875696e7436342c62797465732960901b8152600e019392505050565b6001600160401b0383168152604060208201525f612d226040830184612c68565b5f6125ff82846130dd565b5f60208284031215613159575f80fd5b81516125ff81612e91565b6001600160401b03841681526001600160a01b03831660208201526060604082018190525f9061319690830184612c68565b95945050505050565b5f602082840312156131af575f80fd5b81516125ff81612d2a565b80516001600160601b031682525f602082015161010060208501526131e3610100850182612c68565b905060408301516131ff60408601826001600160601b03169052565b50606083015184820360608601526132178282612c68565b915050608083015184820360808601526132318282612c68565b91505060a083015161324c60a086018264ffffffffff169052565b5060c083015161326560c086018264ffffffffff169052565b5060e083015161327960e086018215159052565b509392505050565b6001600160401b0384168152606060208201525f6132a260608301856131ba565b905060ff83166040830152949350505050565b805161308581612e91565b60ff811681146128c3575f80fd5b8051613085816132c0565b5f602082840312156132e9575f80fd5b81516125ff816132c0565b80518015158114613085575f80fd5b5f60208284031215613313575f80fd5b6125ff826132f4565b805161308581612fb4565b5f60208284031215613337575f80fd5b81516125ff81612fb4565b5f82601f830112613351575f80fd5b8151602083015f613364612e2b84612de8565b9050828152858383011115613377575f80fd5b8282602083015e5f92810160200192909252509392505050565b5f602082840312156133a1575f80fd5b81516001600160401b038111156133b6575f80fd5b820160e081850312156133c7575f80fd5b6133cf612d6d565b6133d88261307a565b81526133e66020830161307a565b60208201526133f7604083016132ce565b6040820152613408606083016132f4565b6060820152613419608083016132b5565b608082015261342a60a083016132b5565b60a082015260c08201516001600160401b03811115613447575f80fd5b61345386828501613342565b60c083015250949350505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0384168152604060208201525f613196604083018486613461565b602081525f6125ff60208301846131ba565b6001600160401b03861681526001600160601b0385166020820152608060408201525f6134ee608083018587613461565b905064ffffffffff831660608301529695505050505050565b5f60208284031215613517575f80fd5b5051919050565b5f6020828403121561352e575f80fd5b81516001600160401b03811115613543575f80fd5b82016101008185031215613555575f80fd5b61355d612d95565b6135668261307a565b815260208201516001600160401b03811115613580575f80fd5b61358c86828501613342565b60208301525061359e6040830161307a565b604082015260608201516001600160401b038111156135bb575f80fd5b6135c786828501613342565b60608301525060808201516001600160401b038111156135e5575f80fd5b6135f186828501613342565b60808301525061360360a0830161331c565b60a082015261361460c0830161331c565b60c082015261362560e083016132f4565b60e0820152949350505050565b5f8060408385031215613643575f80fd5b825161364e81612e91565b602084015190925061365f81612e91565b809150509250929050565b601f82111561277e57805f5260205f20601f840160051c8101602085101561368f5750805b601f840160051c820191505b818110156136ae575f815560010161369b565b5050505050565b81516001600160401b038111156136ce576136ce612d59565b6136e2816136dc84546130a5565b8461366a565b6020601f821160018114613714575f83156136fd5750848201515b5f19600385901b1c1916600184901b1784556136ae565b5f84815260208120601f198516915b828110156137435787850151825560209485019460019092019101613723565b508482101561376057868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220894f26d1121c2b4bfa477159b9686a58f75e96c9a07348ab4e2998a01fe1229764736f6c634300081a0033",
775
806
  "linkReferences": {
776
807
  "contracts/type/NftId.sol": {
777
808
  "NftIdLib": [
778
809
  {
779
810
  "length": 20,
780
- "start": 1242
811
+ "start": 1290
781
812
  },
782
813
  {
783
814
  "length": 20,
784
- "start": 3807
815
+ "start": 3865
785
816
  },
786
817
  {
787
818
  "length": 20,
788
- "start": 6909
819
+ "start": 6936
789
820
  },
790
821
  {
791
822
  "length": 20,
792
- "start": 9606
823
+ "start": 9849
793
824
  }
794
825
  ]
795
826
  },
@@ -797,7 +828,7 @@
797
828
  "RequestIdLib": [
798
829
  {
799
830
  "length": 20,
800
- "start": 7733
831
+ "start": 7760
801
832
  }
802
833
  ]
803
834
  },
@@ -805,7 +836,7 @@
805
836
  "RoleIdLib": [
806
837
  {
807
838
  "length": 20,
808
- "start": 3351
839
+ "start": 3399
809
840
  }
810
841
  ]
811
842
  },
@@ -813,23 +844,23 @@
813
844
  "TimestampLib": [
814
845
  {
815
846
  "length": 20,
816
- "start": 4227
847
+ "start": 4285
817
848
  },
818
849
  {
819
850
  "length": 20,
820
- "start": 5779
851
+ "start": 5806
821
852
  },
822
853
  {
823
854
  "length": 20,
824
- "start": 5906
855
+ "start": 5933
825
856
  },
826
857
  {
827
858
  "length": 20,
828
- "start": 6296
859
+ "start": 6323
829
860
  },
830
861
  {
831
862
  "length": 20,
832
- "start": 8367
863
+ "start": 8394
833
864
  }
834
865
  ]
835
866
  },
@@ -837,21 +868,17 @@
837
868
  "VersionLib": [
838
869
  {
839
870
  "length": 20,
840
- "start": 1088
871
+ "start": 1136
841
872
  },
842
873
  {
843
874
  "length": 20,
844
- "start": 2222
875
+ "start": 2270
845
876
  }
846
877
  ],
847
878
  "VersionPartLib": [
848
879
  {
849
880
  "length": 20,
850
- "start": 3399
851
- },
852
- {
853
- "length": 20,
854
- "start": 10367
881
+ "start": 3560
855
882
  }
856
883
  ]
857
884
  }
@@ -861,19 +888,19 @@
861
888
  "NftIdLib": [
862
889
  {
863
890
  "length": 20,
864
- "start": 1028
891
+ "start": 1076
865
892
  },
866
893
  {
867
894
  "length": 20,
868
- "start": 3593
895
+ "start": 3651
869
896
  },
870
897
  {
871
898
  "length": 20,
872
- "start": 6695
899
+ "start": 6722
873
900
  },
874
901
  {
875
902
  "length": 20,
876
- "start": 9392
903
+ "start": 9635
877
904
  }
878
905
  ]
879
906
  },
@@ -881,7 +908,7 @@
881
908
  "RequestIdLib": [
882
909
  {
883
910
  "length": 20,
884
- "start": 7519
911
+ "start": 7546
885
912
  }
886
913
  ]
887
914
  },
@@ -889,7 +916,7 @@
889
916
  "RoleIdLib": [
890
917
  {
891
918
  "length": 20,
892
- "start": 3137
919
+ "start": 3185
893
920
  }
894
921
  ]
895
922
  },
@@ -897,23 +924,23 @@
897
924
  "TimestampLib": [
898
925
  {
899
926
  "length": 20,
900
- "start": 4013
927
+ "start": 4071
901
928
  },
902
929
  {
903
930
  "length": 20,
904
- "start": 5565
931
+ "start": 5592
905
932
  },
906
933
  {
907
934
  "length": 20,
908
- "start": 5692
935
+ "start": 5719
909
936
  },
910
937
  {
911
938
  "length": 20,
912
- "start": 6082
939
+ "start": 6109
913
940
  },
914
941
  {
915
942
  "length": 20,
916
- "start": 8153
943
+ "start": 8180
917
944
  }
918
945
  ]
919
946
  },
@@ -921,21 +948,17 @@
921
948
  "VersionLib": [
922
949
  {
923
950
  "length": 20,
924
- "start": 874
951
+ "start": 922
925
952
  },
926
953
  {
927
954
  "length": 20,
928
- "start": 2008
955
+ "start": 2056
929
956
  }
930
957
  ],
931
958
  "VersionPartLib": [
932
959
  {
933
960
  "length": 20,
934
- "start": 3185
935
- },
936
- {
937
- "length": 20,
938
- "start": 10153
961
+ "start": 3346
939
962
  }
940
963
  ]
941
964
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f90bcbaa9ca55b0412d03941e3ade3a7.json"
3
+ "buildInfo": "../../../build-info/97b001a2aaea2b7f0a3eb9620c5ae1c1.json"
4
4
  }