@etherisc/gif-next 0.0.2-f12cf4d-104 → 0.0.2-f13d67f-541

Sign up to get free protection for your applications and to get access to all the features.
Files changed (555) hide show
  1. package/README.md +86 -312
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +560 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +128 -218
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -137
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +555 -217
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -116
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +183 -138
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +401 -59
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -260
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +214 -215
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -110
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -165
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +600 -306
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  81. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  82. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  85. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +415 -15
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +606 -112
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1136 -561
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -82
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -54
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1283 -1912
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  118. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  120. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  125. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -91
  128. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
  130. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +41 -55
  133. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  135. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -75
  137. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +141 -81
  139. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -50
  141. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -124
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +401 -59
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +298 -329
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +133 -97
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -131
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -73
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  155. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  156. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -86
  157. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  159. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +565 -367
  161. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +169 -69
  163. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +313 -64
  165. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -47
  167. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -192
  169. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
  171. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
  173. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -94
  175. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
  177. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  179. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -55
  181. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  183. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -167
  185. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  187. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +283 -195
  189. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  191. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -81
  193. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  195. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +118 -70
  197. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  198. package/artifacts/contracts/product/Product.sol/Product.json +187 -186
  199. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  201. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -47
  203. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
  207. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  209. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +845 -489
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -43
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +398 -64
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +60 -60
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +269 -561
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +134 -86
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +525 -4
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  246. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +41 -41
  248. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -55
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -74
  265. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  271. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  275. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  276. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  285. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1457 -145
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  288. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  289. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  290. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  291. package/artifacts/contracts/staking/Staking.sol/Staking.json +1634 -275
  292. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -62
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -50
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  304. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  306. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  307. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  308. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  324. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  328. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  338. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  345. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  347. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  349. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  352. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  354. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  356. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  358. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  360. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  361. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  362. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  363. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
  364. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  365. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  366. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  368. package/contracts/accounting/AccountingService.sol +274 -0
  369. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  370. package/contracts/accounting/IAccountingService.sol +47 -0
  371. package/contracts/authorization/AccessAdmin.sol +389 -306
  372. package/contracts/authorization/AccessAdminLib.sol +678 -0
  373. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  374. package/contracts/authorization/Authorization.sol +161 -260
  375. package/contracts/authorization/IAccess.sol +29 -12
  376. package/contracts/authorization/IAccessAdmin.sol +89 -84
  377. package/contracts/authorization/IAuthorization.sol +9 -43
  378. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  379. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  380. package/contracts/distribution/BasicDistribution.sol +19 -18
  381. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  382. package/contracts/distribution/Distribution.sol +45 -85
  383. package/contracts/distribution/DistributionService.sol +192 -99
  384. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  385. package/contracts/distribution/IDistributionComponent.sol +3 -10
  386. package/contracts/distribution/IDistributionService.sol +38 -24
  387. package/contracts/examples/fire/FirePool.sol +6 -6
  388. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  389. package/contracts/examples/fire/FireProduct.sol +15 -13
  390. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  391. package/contracts/examples/flight/FlightLib.sol +279 -0
  392. package/contracts/examples/flight/FlightOracle.sol +168 -0
  393. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  394. package/contracts/examples/flight/FlightPool.sol +89 -0
  395. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  396. package/contracts/examples/flight/FlightProduct.sol +470 -0
  397. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  398. package/contracts/examples/flight/FlightUSD.sol +26 -0
  399. package/contracts/examples/flight/originalV1.sol +396 -0
  400. package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
  401. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  402. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  403. package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
  404. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  405. package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
  406. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  407. package/contracts/instance/BaseStore.sol +93 -0
  408. package/contracts/instance/BundleSet.sol +42 -38
  409. package/contracts/instance/IBaseStore.sol +37 -0
  410. package/contracts/instance/IInstance.sol +109 -19
  411. package/contracts/instance/IInstanceService.sol +59 -11
  412. package/contracts/instance/Instance.sol +184 -65
  413. package/contracts/instance/InstanceAdmin.sol +221 -191
  414. package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
  415. package/contracts/instance/InstanceReader.sol +447 -314
  416. package/contracts/instance/InstanceService.sol +305 -205
  417. package/contracts/instance/InstanceServiceManager.sol +1 -1
  418. package/contracts/instance/InstanceStore.sol +152 -116
  419. package/contracts/instance/ProductStore.sol +290 -0
  420. package/contracts/instance/RiskSet.sol +126 -0
  421. package/contracts/instance/TargetNames.sol +10 -0
  422. package/contracts/instance/base/BalanceStore.sol +4 -6
  423. package/contracts/instance/base/ObjectCounter.sol +1 -2
  424. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  425. package/contracts/instance/base/ObjectSet.sol +31 -33
  426. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  427. package/contracts/instance/module/IBundle.sol +6 -5
  428. package/contracts/instance/module/IComponents.sol +18 -8
  429. package/contracts/instance/module/IDistribution.sol +21 -8
  430. package/contracts/instance/module/IPolicy.sol +28 -8
  431. package/contracts/instance/module/IRisk.sol +5 -0
  432. package/contracts/oracle/BasicOracle.sol +3 -6
  433. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  434. package/contracts/oracle/IOracle.sol +9 -4
  435. package/contracts/oracle/IOracleService.sol +12 -12
  436. package/contracts/oracle/Oracle.sol +5 -9
  437. package/contracts/oracle/OracleService.sol +98 -80
  438. package/contracts/oracle/OracleServiceManager.sol +1 -1
  439. package/contracts/pool/BasicPool.sol +4 -18
  440. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  441. package/contracts/pool/BundleService.sol +66 -165
  442. package/contracts/pool/BundleServiceManager.sol +1 -1
  443. package/contracts/pool/IBundleService.sol +27 -51
  444. package/contracts/pool/IPoolService.sol +56 -58
  445. package/contracts/pool/Pool.sol +15 -29
  446. package/contracts/pool/PoolLib.sol +341 -0
  447. package/contracts/pool/PoolService.sol +221 -227
  448. package/contracts/pool/PoolServiceManager.sol +1 -1
  449. package/contracts/product/ApplicationService.sol +93 -25
  450. package/contracts/product/ApplicationServiceManager.sol +1 -1
  451. package/contracts/product/BasicProduct.sol +4 -5
  452. package/contracts/product/BasicProductAuthorization.sol +33 -11
  453. package/contracts/product/ClaimService.sol +221 -209
  454. package/contracts/product/ClaimServiceManager.sol +1 -1
  455. package/contracts/product/IApplicationService.sol +28 -3
  456. package/contracts/product/IClaimService.sol +18 -5
  457. package/contracts/product/IPolicyService.sol +31 -11
  458. package/contracts/product/IPricingService.sol +1 -0
  459. package/contracts/product/IProductComponent.sol +4 -1
  460. package/contracts/product/IRiskService.sol +25 -10
  461. package/contracts/product/PolicyService.sol +252 -302
  462. package/contracts/product/PolicyServiceLib.sol +139 -0
  463. package/contracts/product/PolicyServiceManager.sol +1 -1
  464. package/contracts/product/PricingService.sol +52 -46
  465. package/contracts/product/PricingServiceManager.sol +3 -3
  466. package/contracts/product/Product.sol +95 -36
  467. package/contracts/product/RiskService.sol +130 -37
  468. package/contracts/product/RiskServiceManager.sol +1 -1
  469. package/contracts/registry/ChainNft.sol +4 -2
  470. package/contracts/registry/IRegistry.sol +23 -24
  471. package/contracts/registry/IRelease.sol +29 -0
  472. package/contracts/registry/Registry.sol +22 -11
  473. package/contracts/registry/RegistryAdmin.sol +94 -383
  474. package/contracts/registry/RegistryAuthorization.sol +337 -0
  475. package/contracts/registry/RegistryService.sol +4 -4
  476. package/contracts/registry/RegistryServiceManager.sol +1 -1
  477. package/contracts/registry/ReleaseAdmin.sol +199 -0
  478. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  479. package/contracts/registry/ReleaseRegistry.sol +157 -117
  480. package/contracts/registry/ServiceAuthorizationV3.sol +193 -54
  481. package/contracts/registry/TokenRegistry.sol +61 -59
  482. package/contracts/shared/Component.sol +36 -55
  483. package/contracts/shared/ComponentService.sol +350 -438
  484. package/contracts/shared/ComponentServiceManager.sol +1 -1
  485. package/contracts/shared/ContractLib.sol +260 -2
  486. package/contracts/shared/IComponent.sol +1 -10
  487. package/contracts/shared/IComponentService.sol +22 -41
  488. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  489. package/contracts/shared/INftOwnable.sol +2 -0
  490. package/contracts/shared/IRegisterable.sol +15 -5
  491. package/contracts/shared/IService.sol +3 -5
  492. package/contracts/shared/InitializableERC165.sol +9 -1
  493. package/contracts/shared/InstanceLinkedComponent.sol +62 -35
  494. package/contracts/shared/NftOwnable.sol +8 -6
  495. package/contracts/shared/PolicyHolder.sol +4 -3
  496. package/contracts/shared/Registerable.sol +42 -19
  497. package/contracts/shared/RegistryLinked.sol +1 -1
  498. package/contracts/shared/Service.sol +13 -30
  499. package/contracts/shared/TokenHandler.sol +45 -100
  500. package/contracts/staking/IStaking.sol +265 -72
  501. package/contracts/staking/IStakingService.sol +45 -75
  502. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  503. package/contracts/staking/Staking.sol +502 -210
  504. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  505. package/contracts/staking/StakingManager.sol +4 -3
  506. package/contracts/staking/StakingReader.sol +58 -77
  507. package/contracts/staking/StakingService.sol +62 -194
  508. package/contracts/staking/StakingServiceManager.sol +6 -4
  509. package/contracts/staking/StakingStore.sol +1093 -330
  510. package/contracts/staking/TargetHandler.sol +132 -0
  511. package/contracts/staking/TargetManagerLib.sol +69 -46
  512. package/contracts/type/Amount.sol +4 -0
  513. package/contracts/type/Blocknumber.sol +17 -22
  514. package/contracts/type/ChainId.sol +101 -0
  515. package/contracts/type/Fee.sol +8 -8
  516. package/contracts/type/Key32.sol +2 -2
  517. package/contracts/type/Key32Set.sol +62 -0
  518. package/contracts/type/NftId.sol +6 -0
  519. package/contracts/type/ObjectType.sol +70 -68
  520. package/contracts/type/Referral.sol +6 -0
  521. package/contracts/type/RequestIdSet.sol +62 -0
  522. package/contracts/type/RiskId.sol +26 -8
  523. package/contracts/type/RoleId.sol +63 -45
  524. package/contracts/type/Seconds.sol +23 -0
  525. package/contracts/type/Selector.sol +5 -0
  526. package/contracts/type/String.sol +42 -0
  527. package/contracts/type/Timestamp.sol +14 -8
  528. package/contracts/type/UFixed.sol +35 -127
  529. package/contracts/type/Version.sol +54 -5
  530. package/contracts/upgradeability/IVersionable.sol +3 -0
  531. package/contracts/upgradeability/ProxyManager.sol +27 -13
  532. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  533. package/contracts/upgradeability/Versionable.sol +6 -3
  534. package/package.json +2 -2
  535. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  536. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  537. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  539. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  540. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  541. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  544. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  545. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  546. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  548. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  549. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  550. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  551. package/contracts/instance/module/IAccess.sol +0 -46
  552. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  553. package/contracts/shared/IKeyValueStore.sol +0 -54
  554. package/contracts/shared/KeyValueStore.sol +0 -131
  555. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,2185 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "FlightProduct",
4
+ "sourceName": "contracts/examples/flight/FlightProduct.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "instanceNftid",
16
+ "type": "uint96"
17
+ },
18
+ {
19
+ "internalType": "string",
20
+ "name": "componentName",
21
+ "type": "string"
22
+ },
23
+ {
24
+ "internalType": "contract IAuthorization",
25
+ "name": "authorization",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "authority",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "name": "AccessManagedInvalidAuthority",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "caller",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "delay",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "AccessManagedRequiredDelay",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "caller",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "AccessManagedUnauthorized",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "authority",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ErrorAuthorityInvalid",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "ErrorComponentNameLengthZero",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "caller",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ErrorComponentNotChainNft",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "ErrorComponentProductNftIdNonzero",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "ErrorComponentProductNftIdZero",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "ErrorComponentWalletAddressIsSameAsCurrent",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "ErrorComponentWalletAddressZero",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "ErrorComponentWalletNotComponent",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "NftId",
126
+ "name": "nftId",
127
+ "type": "uint96"
128
+ },
129
+ {
130
+ "internalType": "ObjectType",
131
+ "name": "objectType",
132
+ "type": "uint8"
133
+ }
134
+ ],
135
+ "name": "ErrorInstanceLinkedComponentNotProduct",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [
140
+ {
141
+ "internalType": "ObjectType",
142
+ "name": "requiredType",
143
+ "type": "uint8"
144
+ },
145
+ {
146
+ "internalType": "ObjectType",
147
+ "name": "objectType",
148
+ "type": "uint8"
149
+ }
150
+ ],
151
+ "name": "ErrorInstanceLinkedComponentTypeMismatch",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "NftId",
158
+ "name": "nftId",
159
+ "type": "uint96"
160
+ }
161
+ ],
162
+ "name": "ErrorNftOwnableAlreadyLinked",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "address",
169
+ "name": "contractAddress",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "ErrorNftOwnableContractNotRegistered",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "ErrorNftOwnableInitialOwnerZero",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [
183
+ {
184
+ "internalType": "NftId",
185
+ "name": "nftId",
186
+ "type": "uint96"
187
+ },
188
+ {
189
+ "internalType": "ObjectType",
190
+ "name": "expectedObjectType",
191
+ "type": "uint8"
192
+ }
193
+ ],
194
+ "name": "ErrorNftOwnableInvalidType",
195
+ "type": "error"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "address",
201
+ "name": "account",
202
+ "type": "address"
203
+ }
204
+ ],
205
+ "name": "ErrorNftOwnableNotOwner",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [
210
+ {
211
+ "internalType": "address",
212
+ "name": "registryAddress",
213
+ "type": "address"
214
+ }
215
+ ],
216
+ "name": "ErrorNotRegistry",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "ErrorRegisterableNotActive",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [],
226
+ "name": "InvalidInitialization",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [],
231
+ "name": "NotInitializing",
232
+ "type": "error"
233
+ },
234
+ {
235
+ "anonymous": false,
236
+ "inputs": [
237
+ {
238
+ "indexed": false,
239
+ "internalType": "address",
240
+ "name": "authority",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "AuthorityUpdated",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "anonymous": false,
249
+ "inputs": [
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint64",
253
+ "name": "version",
254
+ "type": "uint64"
255
+ }
256
+ ],
257
+ "name": "Initialized",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": false,
265
+ "internalType": "address",
266
+ "name": "tokenHandler",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "address",
272
+ "name": "token",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "indexed": false,
277
+ "internalType": "Amount",
278
+ "name": "limit",
279
+ "type": "uint96"
280
+ },
281
+ {
282
+ "indexed": false,
283
+ "internalType": "bool",
284
+ "name": "isMaxAmount",
285
+ "type": "bool"
286
+ }
287
+ ],
288
+ "name": "LogComponentTokenHandlerApproved",
289
+ "type": "event"
290
+ },
291
+ {
292
+ "anonymous": false,
293
+ "inputs": [
294
+ {
295
+ "indexed": false,
296
+ "internalType": "address",
297
+ "name": "oldWallet",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "address",
303
+ "name": "newWallet",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "name": "LogComponentWalletAddressChanged",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": false,
315
+ "internalType": "address",
316
+ "name": "from",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "address",
322
+ "name": "to",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "uint256",
328
+ "name": "amount",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "name": "LogComponentWalletTokensTransferred",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "string",
341
+ "name": "error",
342
+ "type": "string"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "internalType": "uint256",
347
+ "name": "index",
348
+ "type": "uint256"
349
+ },
350
+ {
351
+ "indexed": false,
352
+ "internalType": "uint256",
353
+ "name": "stored",
354
+ "type": "uint256"
355
+ },
356
+ {
357
+ "indexed": false,
358
+ "internalType": "uint256",
359
+ "name": "calculated",
360
+ "type": "uint256"
361
+ }
362
+ ],
363
+ "name": "LogError",
364
+ "type": "event"
365
+ },
366
+ {
367
+ "anonymous": false,
368
+ "inputs": [
369
+ {
370
+ "indexed": false,
371
+ "internalType": "RequestId",
372
+ "name": "requestId",
373
+ "type": "uint64"
374
+ },
375
+ {
376
+ "indexed": false,
377
+ "internalType": "RiskId",
378
+ "name": "riskId",
379
+ "type": "bytes8"
380
+ }
381
+ ],
382
+ "name": "LogErrorRiskInvalid",
383
+ "type": "event"
384
+ },
385
+ {
386
+ "anonymous": false,
387
+ "inputs": [
388
+ {
389
+ "indexed": false,
390
+ "internalType": "RequestId",
391
+ "name": "requestId",
392
+ "type": "uint64"
393
+ },
394
+ {
395
+ "indexed": false,
396
+ "internalType": "RiskId",
397
+ "name": "riskId",
398
+ "type": "bytes8"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "bytes1",
403
+ "name": "status",
404
+ "type": "bytes1"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "int256",
409
+ "name": "delayMinutes",
410
+ "type": "int256"
411
+ }
412
+ ],
413
+ "name": "LogErrorUnexpectedStatus",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": false,
421
+ "internalType": "RequestId",
422
+ "name": "requestId",
423
+ "type": "uint64"
424
+ },
425
+ {
426
+ "indexed": false,
427
+ "internalType": "RiskId",
428
+ "name": "riskId",
429
+ "type": "bytes8"
430
+ },
431
+ {
432
+ "indexed": false,
433
+ "internalType": "bytes1",
434
+ "name": "status",
435
+ "type": "bytes1"
436
+ }
437
+ ],
438
+ "name": "LogErrorUnprocessableStatus",
439
+ "type": "event"
440
+ },
441
+ {
442
+ "anonymous": false,
443
+ "inputs": [
444
+ {
445
+ "indexed": false,
446
+ "internalType": "RequestId",
447
+ "name": "requestId",
448
+ "type": "uint64"
449
+ },
450
+ {
451
+ "indexed": false,
452
+ "internalType": "RiskId",
453
+ "name": "riskId",
454
+ "type": "bytes8"
455
+ },
456
+ {
457
+ "indexed": false,
458
+ "internalType": "bytes1",
459
+ "name": "status",
460
+ "type": "bytes1"
461
+ },
462
+ {
463
+ "indexed": false,
464
+ "internalType": "int256",
465
+ "name": "delayMinutes",
466
+ "type": "int256"
467
+ },
468
+ {
469
+ "indexed": false,
470
+ "internalType": "uint8",
471
+ "name": "payoutOption",
472
+ "type": "uint8"
473
+ }
474
+ ],
475
+ "name": "LogFlightStatusProcessed",
476
+ "type": "event"
477
+ },
478
+ {
479
+ "anonymous": false,
480
+ "inputs": [
481
+ {
482
+ "indexed": false,
483
+ "internalType": "NftId",
484
+ "name": "nftId",
485
+ "type": "uint96"
486
+ },
487
+ {
488
+ "indexed": false,
489
+ "internalType": "address",
490
+ "name": "owner",
491
+ "type": "address"
492
+ }
493
+ ],
494
+ "name": "LogNftOwnableNftLinkedToAddress",
495
+ "type": "event"
496
+ },
497
+ {
498
+ "anonymous": false,
499
+ "inputs": [
500
+ {
501
+ "indexed": false,
502
+ "internalType": "bytes32",
503
+ "name": "bpKey",
504
+ "type": "bytes32"
505
+ },
506
+ {
507
+ "indexed": false,
508
+ "internalType": "uint256",
509
+ "name": "claimId",
510
+ "type": "uint256"
511
+ },
512
+ {
513
+ "indexed": false,
514
+ "internalType": "uint256",
515
+ "name": "payoutId",
516
+ "type": "uint256"
517
+ },
518
+ {
519
+ "indexed": false,
520
+ "internalType": "uint256",
521
+ "name": "amount",
522
+ "type": "uint256"
523
+ }
524
+ ],
525
+ "name": "LogPayoutTransferred",
526
+ "type": "event"
527
+ },
528
+ {
529
+ "anonymous": false,
530
+ "inputs": [
531
+ {
532
+ "indexed": false,
533
+ "internalType": "bytes32",
534
+ "name": "bpKey",
535
+ "type": "bytes32"
536
+ }
537
+ ],
538
+ "name": "LogPolicyExpired",
539
+ "type": "event"
540
+ },
541
+ {
542
+ "anonymous": false,
543
+ "inputs": [
544
+ {
545
+ "indexed": false,
546
+ "internalType": "uint256",
547
+ "name": "requestId",
548
+ "type": "uint256"
549
+ },
550
+ {
551
+ "indexed": false,
552
+ "internalType": "bytes32",
553
+ "name": "carrierFlightNumber",
554
+ "type": "bytes32"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint256",
559
+ "name": "departureTime",
560
+ "type": "uint256"
561
+ },
562
+ {
563
+ "indexed": false,
564
+ "internalType": "uint256",
565
+ "name": "arrivalTime",
566
+ "type": "uint256"
567
+ },
568
+ {
569
+ "indexed": false,
570
+ "internalType": "bytes32",
571
+ "name": "riskId",
572
+ "type": "bytes32"
573
+ }
574
+ ],
575
+ "name": "LogRequestFlightRatings",
576
+ "type": "event"
577
+ },
578
+ {
579
+ "anonymous": false,
580
+ "inputs": [
581
+ {
582
+ "indexed": false,
583
+ "internalType": "uint256",
584
+ "name": "requestId",
585
+ "type": "uint256"
586
+ },
587
+ {
588
+ "indexed": false,
589
+ "internalType": "uint256",
590
+ "name": "arrivalTime",
591
+ "type": "uint256"
592
+ },
593
+ {
594
+ "indexed": false,
595
+ "internalType": "bytes32",
596
+ "name": "carrierFlightNumber",
597
+ "type": "bytes32"
598
+ },
599
+ {
600
+ "indexed": false,
601
+ "internalType": "bytes32",
602
+ "name": "departureYearMonthDay",
603
+ "type": "bytes32"
604
+ }
605
+ ],
606
+ "name": "LogRequestFlightStatus",
607
+ "type": "event"
608
+ },
609
+ {
610
+ "inputs": [],
611
+ "name": "CHECK_OFFSET",
612
+ "outputs": [
613
+ {
614
+ "internalType": "Seconds",
615
+ "name": "",
616
+ "type": "uint40"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [],
624
+ "name": "COMPONENT_LOCATION_V1",
625
+ "outputs": [
626
+ {
627
+ "internalType": "bytes32",
628
+ "name": "",
629
+ "type": "bytes32"
630
+ }
631
+ ],
632
+ "stateMutability": "view",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [],
637
+ "name": "INSTANCE_LINKED_COMPONENT_LOCATION_V1",
638
+ "outputs": [
639
+ {
640
+ "internalType": "bytes32",
641
+ "name": "",
642
+ "type": "bytes32"
643
+ }
644
+ ],
645
+ "stateMutability": "view",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [],
650
+ "name": "LIFETIME",
651
+ "outputs": [
652
+ {
653
+ "internalType": "Seconds",
654
+ "name": "",
655
+ "type": "uint40"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [],
663
+ "name": "MARGIN_PERCENT",
664
+ "outputs": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "",
668
+ "type": "uint256"
669
+ }
670
+ ],
671
+ "stateMutability": "view",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [],
676
+ "name": "MAX_FLIGHT_DURATION",
677
+ "outputs": [
678
+ {
679
+ "internalType": "Seconds",
680
+ "name": "",
681
+ "type": "uint40"
682
+ }
683
+ ],
684
+ "stateMutability": "view",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "inputs": [],
689
+ "name": "MAX_PAYOUT",
690
+ "outputs": [
691
+ {
692
+ "internalType": "Amount",
693
+ "name": "",
694
+ "type": "uint96"
695
+ }
696
+ ],
697
+ "stateMutability": "view",
698
+ "type": "function"
699
+ },
700
+ {
701
+ "inputs": [],
702
+ "name": "MAX_POLICIES_TO_PROCESS",
703
+ "outputs": [
704
+ {
705
+ "internalType": "uint8",
706
+ "name": "",
707
+ "type": "uint8"
708
+ }
709
+ ],
710
+ "stateMutability": "view",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [],
715
+ "name": "MAX_PREMIUM",
716
+ "outputs": [
717
+ {
718
+ "internalType": "Amount",
719
+ "name": "",
720
+ "type": "uint96"
721
+ }
722
+ ],
723
+ "stateMutability": "view",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [],
728
+ "name": "MAX_TIME_BEFORE_DEPARTURE",
729
+ "outputs": [
730
+ {
731
+ "internalType": "Seconds",
732
+ "name": "",
733
+ "type": "uint40"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [],
741
+ "name": "MAX_TOTAL_PAYOUT",
742
+ "outputs": [
743
+ {
744
+ "internalType": "Amount",
745
+ "name": "",
746
+ "type": "uint96"
747
+ }
748
+ ],
749
+ "stateMutability": "view",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [],
754
+ "name": "MAX_WEIGHT",
755
+ "outputs": [
756
+ {
757
+ "internalType": "uint8",
758
+ "name": "",
759
+ "type": "uint8"
760
+ }
761
+ ],
762
+ "stateMutability": "view",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [],
767
+ "name": "MIN_OBSERVATIONS",
768
+ "outputs": [
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "stateMutability": "view",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [],
780
+ "name": "MIN_PREMIUM",
781
+ "outputs": [
782
+ {
783
+ "internalType": "Amount",
784
+ "name": "",
785
+ "type": "uint96"
786
+ }
787
+ ],
788
+ "stateMutability": "view",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [],
793
+ "name": "MIN_TIME_BEFORE_DEPARTURE",
794
+ "outputs": [
795
+ {
796
+ "internalType": "Seconds",
797
+ "name": "",
798
+ "type": "uint40"
799
+ }
800
+ ],
801
+ "stateMutability": "view",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [],
806
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
807
+ "outputs": [
808
+ {
809
+ "internalType": "bytes32",
810
+ "name": "",
811
+ "type": "bytes32"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [],
819
+ "name": "PRODUCT_STORAGE_LOCATION_V1",
820
+ "outputs": [
821
+ {
822
+ "internalType": "bytes32",
823
+ "name": "",
824
+ "type": "bytes32"
825
+ }
826
+ ],
827
+ "stateMutability": "view",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [],
832
+ "name": "REGISTERABLE_LOCATION_V1",
833
+ "outputs": [
834
+ {
835
+ "internalType": "bytes32",
836
+ "name": "",
837
+ "type": "bytes32"
838
+ }
839
+ ],
840
+ "stateMutability": "view",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "uint256",
847
+ "name": "",
848
+ "type": "uint256"
849
+ }
850
+ ],
851
+ "name": "WEIGHT_PATTERN",
852
+ "outputs": [
853
+ {
854
+ "internalType": "uint8",
855
+ "name": "",
856
+ "type": "uint8"
857
+ }
858
+ ],
859
+ "stateMutability": "view",
860
+ "type": "function"
861
+ },
862
+ {
863
+ "inputs": [
864
+ {
865
+ "internalType": "contract IERC20Metadata",
866
+ "name": "token",
867
+ "type": "address"
868
+ },
869
+ {
870
+ "internalType": "Amount",
871
+ "name": "amount",
872
+ "type": "uint96"
873
+ }
874
+ ],
875
+ "name": "approveTokenHandler",
876
+ "outputs": [],
877
+ "stateMutability": "nonpayable",
878
+ "type": "function"
879
+ },
880
+ {
881
+ "inputs": [],
882
+ "name": "authority",
883
+ "outputs": [
884
+ {
885
+ "internalType": "address",
886
+ "name": "",
887
+ "type": "address"
888
+ }
889
+ ],
890
+ "stateMutability": "view",
891
+ "type": "function"
892
+ },
893
+ {
894
+ "inputs": [
895
+ {
896
+ "internalType": "Amount",
897
+ "name": "",
898
+ "type": "uint96"
899
+ },
900
+ {
901
+ "internalType": "RiskId",
902
+ "name": "",
903
+ "type": "bytes8"
904
+ },
905
+ {
906
+ "internalType": "Seconds",
907
+ "name": "",
908
+ "type": "uint40"
909
+ },
910
+ {
911
+ "internalType": "bytes",
912
+ "name": "applicationData",
913
+ "type": "bytes"
914
+ }
915
+ ],
916
+ "name": "calculateNetPremium",
917
+ "outputs": [
918
+ {
919
+ "internalType": "Amount",
920
+ "name": "netPremiumAmount",
921
+ "type": "uint96"
922
+ }
923
+ ],
924
+ "stateMutability": "view",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [
929
+ {
930
+ "internalType": "Amount",
931
+ "name": "sumInsuredAmount",
932
+ "type": "uint96"
933
+ },
934
+ {
935
+ "internalType": "RiskId",
936
+ "name": "riskId",
937
+ "type": "bytes8"
938
+ },
939
+ {
940
+ "internalType": "Seconds",
941
+ "name": "lifetime",
942
+ "type": "uint40"
943
+ },
944
+ {
945
+ "internalType": "bytes",
946
+ "name": "applicationData",
947
+ "type": "bytes"
948
+ },
949
+ {
950
+ "internalType": "NftId",
951
+ "name": "bundleNftId",
952
+ "type": "uint96"
953
+ },
954
+ {
955
+ "internalType": "ReferralId",
956
+ "name": "referralId",
957
+ "type": "bytes8"
958
+ }
959
+ ],
960
+ "name": "calculatePremium",
961
+ "outputs": [
962
+ {
963
+ "internalType": "Amount",
964
+ "name": "premiumAmount",
965
+ "type": "uint96"
966
+ }
967
+ ],
968
+ "stateMutability": "view",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [],
973
+ "name": "completeSetup",
974
+ "outputs": [],
975
+ "stateMutability": "nonpayable",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "address",
982
+ "name": "policyHolder",
983
+ "type": "address"
984
+ },
985
+ {
986
+ "internalType": "Str",
987
+ "name": "carrierFlightNumber",
988
+ "type": "bytes32"
989
+ },
990
+ {
991
+ "internalType": "Str",
992
+ "name": "departureYearMonthDay",
993
+ "type": "bytes32"
994
+ },
995
+ {
996
+ "internalType": "Timestamp",
997
+ "name": "departureTime",
998
+ "type": "uint40"
999
+ },
1000
+ {
1001
+ "internalType": "Timestamp",
1002
+ "name": "arrivalTime",
1003
+ "type": "uint40"
1004
+ },
1005
+ {
1006
+ "internalType": "Amount",
1007
+ "name": "premiumAmount",
1008
+ "type": "uint96"
1009
+ },
1010
+ {
1011
+ "internalType": "uint256[6]",
1012
+ "name": "statistics",
1013
+ "type": "uint256[6]"
1014
+ }
1015
+ ],
1016
+ "name": "createPolicy",
1017
+ "outputs": [
1018
+ {
1019
+ "internalType": "NftId",
1020
+ "name": "policyNftId",
1021
+ "type": "uint96"
1022
+ },
1023
+ {
1024
+ "internalType": "Amount[5]",
1025
+ "name": "payoutAmounts",
1026
+ "type": "uint96[5]"
1027
+ }
1028
+ ],
1029
+ "stateMutability": "nonpayable",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [
1034
+ {
1035
+ "internalType": "RequestId",
1036
+ "name": "requestId",
1037
+ "type": "uint64"
1038
+ },
1039
+ {
1040
+ "internalType": "bytes",
1041
+ "name": "responseData",
1042
+ "type": "bytes"
1043
+ }
1044
+ ],
1045
+ "name": "flightStatusCallback",
1046
+ "outputs": [],
1047
+ "stateMutability": "nonpayable",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [],
1052
+ "name": "getAuthorization",
1053
+ "outputs": [
1054
+ {
1055
+ "internalType": "contract IAuthorization",
1056
+ "name": "authorization",
1057
+ "type": "address"
1058
+ }
1059
+ ],
1060
+ "stateMutability": "view",
1061
+ "type": "function"
1062
+ },
1063
+ {
1064
+ "inputs": [],
1065
+ "name": "getComponentInfo",
1066
+ "outputs": [
1067
+ {
1068
+ "components": [
1069
+ {
1070
+ "internalType": "string",
1071
+ "name": "name",
1072
+ "type": "string"
1073
+ },
1074
+ {
1075
+ "internalType": "contract TokenHandler",
1076
+ "name": "tokenHandler",
1077
+ "type": "address"
1078
+ }
1079
+ ],
1080
+ "internalType": "struct IComponents.ComponentInfo",
1081
+ "name": "info",
1082
+ "type": "tuple"
1083
+ }
1084
+ ],
1085
+ "stateMutability": "view",
1086
+ "type": "function"
1087
+ },
1088
+ {
1089
+ "inputs": [],
1090
+ "name": "getInitialComponentInfo",
1091
+ "outputs": [
1092
+ {
1093
+ "components": [
1094
+ {
1095
+ "internalType": "string",
1096
+ "name": "name",
1097
+ "type": "string"
1098
+ },
1099
+ {
1100
+ "internalType": "contract TokenHandler",
1101
+ "name": "tokenHandler",
1102
+ "type": "address"
1103
+ }
1104
+ ],
1105
+ "internalType": "struct IComponents.ComponentInfo",
1106
+ "name": "info",
1107
+ "type": "tuple"
1108
+ }
1109
+ ],
1110
+ "stateMutability": "view",
1111
+ "type": "function"
1112
+ },
1113
+ {
1114
+ "inputs": [],
1115
+ "name": "getInitialFeeInfo",
1116
+ "outputs": [
1117
+ {
1118
+ "components": [
1119
+ {
1120
+ "components": [
1121
+ {
1122
+ "internalType": "UFixed",
1123
+ "name": "fractionalFee",
1124
+ "type": "uint160"
1125
+ },
1126
+ {
1127
+ "internalType": "Amount",
1128
+ "name": "fixedFee",
1129
+ "type": "uint96"
1130
+ }
1131
+ ],
1132
+ "internalType": "struct Fee",
1133
+ "name": "productFee",
1134
+ "type": "tuple"
1135
+ },
1136
+ {
1137
+ "components": [
1138
+ {
1139
+ "internalType": "UFixed",
1140
+ "name": "fractionalFee",
1141
+ "type": "uint160"
1142
+ },
1143
+ {
1144
+ "internalType": "Amount",
1145
+ "name": "fixedFee",
1146
+ "type": "uint96"
1147
+ }
1148
+ ],
1149
+ "internalType": "struct Fee",
1150
+ "name": "processingFee",
1151
+ "type": "tuple"
1152
+ },
1153
+ {
1154
+ "components": [
1155
+ {
1156
+ "internalType": "UFixed",
1157
+ "name": "fractionalFee",
1158
+ "type": "uint160"
1159
+ },
1160
+ {
1161
+ "internalType": "Amount",
1162
+ "name": "fixedFee",
1163
+ "type": "uint96"
1164
+ }
1165
+ ],
1166
+ "internalType": "struct Fee",
1167
+ "name": "distributionFee",
1168
+ "type": "tuple"
1169
+ },
1170
+ {
1171
+ "components": [
1172
+ {
1173
+ "internalType": "UFixed",
1174
+ "name": "fractionalFee",
1175
+ "type": "uint160"
1176
+ },
1177
+ {
1178
+ "internalType": "Amount",
1179
+ "name": "fixedFee",
1180
+ "type": "uint96"
1181
+ }
1182
+ ],
1183
+ "internalType": "struct Fee",
1184
+ "name": "minDistributionOwnerFee",
1185
+ "type": "tuple"
1186
+ },
1187
+ {
1188
+ "components": [
1189
+ {
1190
+ "internalType": "UFixed",
1191
+ "name": "fractionalFee",
1192
+ "type": "uint160"
1193
+ },
1194
+ {
1195
+ "internalType": "Amount",
1196
+ "name": "fixedFee",
1197
+ "type": "uint96"
1198
+ }
1199
+ ],
1200
+ "internalType": "struct Fee",
1201
+ "name": "poolFee",
1202
+ "type": "tuple"
1203
+ },
1204
+ {
1205
+ "components": [
1206
+ {
1207
+ "internalType": "UFixed",
1208
+ "name": "fractionalFee",
1209
+ "type": "uint160"
1210
+ },
1211
+ {
1212
+ "internalType": "Amount",
1213
+ "name": "fixedFee",
1214
+ "type": "uint96"
1215
+ }
1216
+ ],
1217
+ "internalType": "struct Fee",
1218
+ "name": "stakingFee",
1219
+ "type": "tuple"
1220
+ },
1221
+ {
1222
+ "components": [
1223
+ {
1224
+ "internalType": "UFixed",
1225
+ "name": "fractionalFee",
1226
+ "type": "uint160"
1227
+ },
1228
+ {
1229
+ "internalType": "Amount",
1230
+ "name": "fixedFee",
1231
+ "type": "uint96"
1232
+ }
1233
+ ],
1234
+ "internalType": "struct Fee",
1235
+ "name": "performanceFee",
1236
+ "type": "tuple"
1237
+ }
1238
+ ],
1239
+ "internalType": "struct IComponents.FeeInfo",
1240
+ "name": "feeInfo",
1241
+ "type": "tuple"
1242
+ }
1243
+ ],
1244
+ "stateMutability": "view",
1245
+ "type": "function"
1246
+ },
1247
+ {
1248
+ "inputs": [],
1249
+ "name": "getInitialInfo",
1250
+ "outputs": [
1251
+ {
1252
+ "components": [
1253
+ {
1254
+ "internalType": "NftId",
1255
+ "name": "nftId",
1256
+ "type": "uint96"
1257
+ },
1258
+ {
1259
+ "internalType": "NftId",
1260
+ "name": "parentNftId",
1261
+ "type": "uint96"
1262
+ },
1263
+ {
1264
+ "internalType": "ObjectType",
1265
+ "name": "objectType",
1266
+ "type": "uint8"
1267
+ },
1268
+ {
1269
+ "internalType": "bool",
1270
+ "name": "isInterceptor",
1271
+ "type": "bool"
1272
+ },
1273
+ {
1274
+ "internalType": "address",
1275
+ "name": "objectAddress",
1276
+ "type": "address"
1277
+ },
1278
+ {
1279
+ "internalType": "address",
1280
+ "name": "initialOwner",
1281
+ "type": "address"
1282
+ },
1283
+ {
1284
+ "internalType": "bytes",
1285
+ "name": "data",
1286
+ "type": "bytes"
1287
+ }
1288
+ ],
1289
+ "internalType": "struct IRegistry.ObjectInfo",
1290
+ "name": "info",
1291
+ "type": "tuple"
1292
+ }
1293
+ ],
1294
+ "stateMutability": "view",
1295
+ "type": "function"
1296
+ },
1297
+ {
1298
+ "inputs": [],
1299
+ "name": "getInitialProductInfo",
1300
+ "outputs": [
1301
+ {
1302
+ "components": [
1303
+ {
1304
+ "internalType": "bool",
1305
+ "name": "isProcessingFundedClaims",
1306
+ "type": "bool"
1307
+ },
1308
+ {
1309
+ "internalType": "bool",
1310
+ "name": "isInterceptingPolicyTransfers",
1311
+ "type": "bool"
1312
+ },
1313
+ {
1314
+ "internalType": "bool",
1315
+ "name": "hasDistribution",
1316
+ "type": "bool"
1317
+ },
1318
+ {
1319
+ "internalType": "uint8",
1320
+ "name": "expectedNumberOfOracles",
1321
+ "type": "uint8"
1322
+ },
1323
+ {
1324
+ "internalType": "uint8",
1325
+ "name": "numberOfOracles",
1326
+ "type": "uint8"
1327
+ },
1328
+ {
1329
+ "internalType": "NftId",
1330
+ "name": "poolNftId",
1331
+ "type": "uint96"
1332
+ },
1333
+ {
1334
+ "internalType": "NftId",
1335
+ "name": "distributionNftId",
1336
+ "type": "uint96"
1337
+ },
1338
+ {
1339
+ "internalType": "NftId[]",
1340
+ "name": "oracleNftId",
1341
+ "type": "uint96[]"
1342
+ }
1343
+ ],
1344
+ "internalType": "struct IComponents.ProductInfo",
1345
+ "name": "poolInfo",
1346
+ "type": "tuple"
1347
+ }
1348
+ ],
1349
+ "stateMutability": "view",
1350
+ "type": "function"
1351
+ },
1352
+ {
1353
+ "inputs": [],
1354
+ "name": "getInstance",
1355
+ "outputs": [
1356
+ {
1357
+ "internalType": "contract IInstance",
1358
+ "name": "instance",
1359
+ "type": "address"
1360
+ }
1361
+ ],
1362
+ "stateMutability": "view",
1363
+ "type": "function"
1364
+ },
1365
+ {
1366
+ "inputs": [],
1367
+ "name": "getName",
1368
+ "outputs": [
1369
+ {
1370
+ "internalType": "string",
1371
+ "name": "name",
1372
+ "type": "string"
1373
+ }
1374
+ ],
1375
+ "stateMutability": "view",
1376
+ "type": "function"
1377
+ },
1378
+ {
1379
+ "inputs": [],
1380
+ "name": "getNftId",
1381
+ "outputs": [
1382
+ {
1383
+ "internalType": "NftId",
1384
+ "name": "",
1385
+ "type": "uint96"
1386
+ }
1387
+ ],
1388
+ "stateMutability": "view",
1389
+ "type": "function"
1390
+ },
1391
+ {
1392
+ "inputs": [],
1393
+ "name": "getOracleNftId",
1394
+ "outputs": [
1395
+ {
1396
+ "internalType": "NftId",
1397
+ "name": "oracleNftId",
1398
+ "type": "uint96"
1399
+ }
1400
+ ],
1401
+ "stateMutability": "view",
1402
+ "type": "function"
1403
+ },
1404
+ {
1405
+ "inputs": [],
1406
+ "name": "getOwner",
1407
+ "outputs": [
1408
+ {
1409
+ "internalType": "address",
1410
+ "name": "",
1411
+ "type": "address"
1412
+ }
1413
+ ],
1414
+ "stateMutability": "view",
1415
+ "type": "function"
1416
+ },
1417
+ {
1418
+ "inputs": [],
1419
+ "name": "getRegistry",
1420
+ "outputs": [
1421
+ {
1422
+ "internalType": "contract IRegistry",
1423
+ "name": "",
1424
+ "type": "address"
1425
+ }
1426
+ ],
1427
+ "stateMutability": "view",
1428
+ "type": "function"
1429
+ },
1430
+ {
1431
+ "inputs": [],
1432
+ "name": "getRelease",
1433
+ "outputs": [
1434
+ {
1435
+ "internalType": "VersionPart",
1436
+ "name": "release",
1437
+ "type": "uint8"
1438
+ }
1439
+ ],
1440
+ "stateMutability": "view",
1441
+ "type": "function"
1442
+ },
1443
+ {
1444
+ "inputs": [],
1445
+ "name": "getToken",
1446
+ "outputs": [
1447
+ {
1448
+ "internalType": "contract IERC20Metadata",
1449
+ "name": "token",
1450
+ "type": "address"
1451
+ }
1452
+ ],
1453
+ "stateMutability": "view",
1454
+ "type": "function"
1455
+ },
1456
+ {
1457
+ "inputs": [],
1458
+ "name": "getTokenHandler",
1459
+ "outputs": [
1460
+ {
1461
+ "internalType": "contract TokenHandler",
1462
+ "name": "tokenHandler",
1463
+ "type": "address"
1464
+ }
1465
+ ],
1466
+ "stateMutability": "view",
1467
+ "type": "function"
1468
+ },
1469
+ {
1470
+ "inputs": [],
1471
+ "name": "getVersion",
1472
+ "outputs": [
1473
+ {
1474
+ "internalType": "Version",
1475
+ "name": "version",
1476
+ "type": "uint24"
1477
+ }
1478
+ ],
1479
+ "stateMutability": "view",
1480
+ "type": "function"
1481
+ },
1482
+ {
1483
+ "inputs": [],
1484
+ "name": "getWallet",
1485
+ "outputs": [
1486
+ {
1487
+ "internalType": "address",
1488
+ "name": "walletAddress",
1489
+ "type": "address"
1490
+ }
1491
+ ],
1492
+ "stateMutability": "view",
1493
+ "type": "function"
1494
+ },
1495
+ {
1496
+ "inputs": [],
1497
+ "name": "isActive",
1498
+ "outputs": [
1499
+ {
1500
+ "internalType": "bool",
1501
+ "name": "active",
1502
+ "type": "bool"
1503
+ }
1504
+ ],
1505
+ "stateMutability": "view",
1506
+ "type": "function"
1507
+ },
1508
+ {
1509
+ "inputs": [],
1510
+ "name": "isConsumingScheduledOp",
1511
+ "outputs": [
1512
+ {
1513
+ "internalType": "bytes4",
1514
+ "name": "",
1515
+ "type": "bytes4"
1516
+ }
1517
+ ],
1518
+ "stateMutability": "view",
1519
+ "type": "function"
1520
+ },
1521
+ {
1522
+ "inputs": [],
1523
+ "name": "isNftInterceptor",
1524
+ "outputs": [
1525
+ {
1526
+ "internalType": "bool",
1527
+ "name": "isInterceptor",
1528
+ "type": "bool"
1529
+ }
1530
+ ],
1531
+ "stateMutability": "view",
1532
+ "type": "function"
1533
+ },
1534
+ {
1535
+ "inputs": [],
1536
+ "name": "isRegistered",
1537
+ "outputs": [
1538
+ {
1539
+ "internalType": "bool",
1540
+ "name": "",
1541
+ "type": "bool"
1542
+ }
1543
+ ],
1544
+ "stateMutability": "view",
1545
+ "type": "function"
1546
+ },
1547
+ {
1548
+ "inputs": [],
1549
+ "name": "linkToRegisteredNftId",
1550
+ "outputs": [
1551
+ {
1552
+ "internalType": "NftId",
1553
+ "name": "nftId",
1554
+ "type": "uint96"
1555
+ }
1556
+ ],
1557
+ "stateMutability": "nonpayable",
1558
+ "type": "function"
1559
+ },
1560
+ {
1561
+ "inputs": [
1562
+ {
1563
+ "internalType": "address",
1564
+ "name": "from",
1565
+ "type": "address"
1566
+ },
1567
+ {
1568
+ "internalType": "address",
1569
+ "name": "to",
1570
+ "type": "address"
1571
+ },
1572
+ {
1573
+ "internalType": "uint256",
1574
+ "name": "tokenId",
1575
+ "type": "uint256"
1576
+ },
1577
+ {
1578
+ "internalType": "address",
1579
+ "name": "operator",
1580
+ "type": "address"
1581
+ }
1582
+ ],
1583
+ "name": "nftTransferFrom",
1584
+ "outputs": [],
1585
+ "stateMutability": "nonpayable",
1586
+ "type": "function"
1587
+ },
1588
+ {
1589
+ "inputs": [
1590
+ {
1591
+ "internalType": "RequestId",
1592
+ "name": "requestId",
1593
+ "type": "uint64"
1594
+ },
1595
+ {
1596
+ "internalType": "RiskId",
1597
+ "name": "riskId",
1598
+ "type": "bytes8"
1599
+ },
1600
+ {
1601
+ "internalType": "bytes1",
1602
+ "name": "status",
1603
+ "type": "bytes1"
1604
+ },
1605
+ {
1606
+ "internalType": "int256",
1607
+ "name": "delayMinutes",
1608
+ "type": "int256"
1609
+ },
1610
+ {
1611
+ "internalType": "uint8",
1612
+ "name": "maxPoliciesToProcess",
1613
+ "type": "uint8"
1614
+ }
1615
+ ],
1616
+ "name": "processFlightStatus",
1617
+ "outputs": [],
1618
+ "stateMutability": "nonpayable",
1619
+ "type": "function"
1620
+ },
1621
+ {
1622
+ "inputs": [
1623
+ {
1624
+ "internalType": "NftId",
1625
+ "name": "policyNftId",
1626
+ "type": "uint96"
1627
+ },
1628
+ {
1629
+ "internalType": "ClaimId",
1630
+ "name": "claimId",
1631
+ "type": "uint16"
1632
+ },
1633
+ {
1634
+ "internalType": "Amount",
1635
+ "name": "availableAmount",
1636
+ "type": "uint96"
1637
+ }
1638
+ ],
1639
+ "name": "processFundedClaim",
1640
+ "outputs": [],
1641
+ "stateMutability": "nonpayable",
1642
+ "type": "function"
1643
+ },
1644
+ {
1645
+ "inputs": [
1646
+ {
1647
+ "internalType": "address",
1648
+ "name": "component",
1649
+ "type": "address"
1650
+ }
1651
+ ],
1652
+ "name": "registerComponent",
1653
+ "outputs": [
1654
+ {
1655
+ "internalType": "NftId",
1656
+ "name": "componentNftId",
1657
+ "type": "uint96"
1658
+ }
1659
+ ],
1660
+ "stateMutability": "nonpayable",
1661
+ "type": "function"
1662
+ },
1663
+ {
1664
+ "inputs": [
1665
+ {
1666
+ "internalType": "address",
1667
+ "name": "newAuthority",
1668
+ "type": "address"
1669
+ }
1670
+ ],
1671
+ "name": "setAuthority",
1672
+ "outputs": [],
1673
+ "stateMutability": "nonpayable",
1674
+ "type": "function"
1675
+ },
1676
+ {
1677
+ "inputs": [
1678
+ {
1679
+ "internalType": "NftId",
1680
+ "name": "bundleNftId",
1681
+ "type": "uint96"
1682
+ }
1683
+ ],
1684
+ "name": "setDefaultBundle",
1685
+ "outputs": [],
1686
+ "stateMutability": "nonpayable",
1687
+ "type": "function"
1688
+ },
1689
+ {
1690
+ "inputs": [
1691
+ {
1692
+ "components": [
1693
+ {
1694
+ "internalType": "UFixed",
1695
+ "name": "fractionalFee",
1696
+ "type": "uint160"
1697
+ },
1698
+ {
1699
+ "internalType": "Amount",
1700
+ "name": "fixedFee",
1701
+ "type": "uint96"
1702
+ }
1703
+ ],
1704
+ "internalType": "struct Fee",
1705
+ "name": "productFee",
1706
+ "type": "tuple"
1707
+ },
1708
+ {
1709
+ "components": [
1710
+ {
1711
+ "internalType": "UFixed",
1712
+ "name": "fractionalFee",
1713
+ "type": "uint160"
1714
+ },
1715
+ {
1716
+ "internalType": "Amount",
1717
+ "name": "fixedFee",
1718
+ "type": "uint96"
1719
+ }
1720
+ ],
1721
+ "internalType": "struct Fee",
1722
+ "name": "processingFee",
1723
+ "type": "tuple"
1724
+ }
1725
+ ],
1726
+ "name": "setFees",
1727
+ "outputs": [],
1728
+ "stateMutability": "nonpayable",
1729
+ "type": "function"
1730
+ },
1731
+ {
1732
+ "inputs": [
1733
+ {
1734
+ "internalType": "bool",
1735
+ "name": "locked",
1736
+ "type": "bool"
1737
+ }
1738
+ ],
1739
+ "name": "setLocked",
1740
+ "outputs": [],
1741
+ "stateMutability": "nonpayable",
1742
+ "type": "function"
1743
+ },
1744
+ {
1745
+ "inputs": [],
1746
+ "name": "setOracleNftId",
1747
+ "outputs": [],
1748
+ "stateMutability": "nonpayable",
1749
+ "type": "function"
1750
+ },
1751
+ {
1752
+ "inputs": [
1753
+ {
1754
+ "internalType": "address",
1755
+ "name": "newWallet",
1756
+ "type": "address"
1757
+ }
1758
+ ],
1759
+ "name": "setWallet",
1760
+ "outputs": [],
1761
+ "stateMutability": "nonpayable",
1762
+ "type": "function"
1763
+ },
1764
+ {
1765
+ "inputs": [
1766
+ {
1767
+ "internalType": "bytes4",
1768
+ "name": "interfaceId",
1769
+ "type": "bytes4"
1770
+ }
1771
+ ],
1772
+ "name": "supportsInterface",
1773
+ "outputs": [
1774
+ {
1775
+ "internalType": "bool",
1776
+ "name": "",
1777
+ "type": "bool"
1778
+ }
1779
+ ],
1780
+ "stateMutability": "view",
1781
+ "type": "function"
1782
+ },
1783
+ {
1784
+ "inputs": [
1785
+ {
1786
+ "internalType": "Amount",
1787
+ "name": "amount",
1788
+ "type": "uint96"
1789
+ }
1790
+ ],
1791
+ "name": "withdrawFees",
1792
+ "outputs": [
1793
+ {
1794
+ "internalType": "Amount",
1795
+ "name": "withdrawnAmount",
1796
+ "type": "uint96"
1797
+ }
1798
+ ],
1799
+ "stateMutability": "nonpayable",
1800
+ "type": "function"
1801
+ }
1802
+ ],
1803
+ "bytecode": "0x60a06040819052600a6080526209629960e41b9052600e60a45273__$71e292c09eace9601b3e21e68a1278917a$__6296299060c4602060405180830381865af415801561004f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100739190611752565b6001805464ffffffffff92909216600160a01b0264ffffffffff60a01b199092169190911790556040516209629960e41b8152605a600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156100e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010a9190611752565b6001805464ffffffffff92909216600160c81b0264ffffffffff60c81b199092169190911790556040516209629960e41b81526002600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af415801561017d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a19190611752565b6002805464ffffffffff191664ffffffffff9290921691909117905560405163667d47b760e01b81526001600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063667d47b790602401602060405180830381865af415801561020b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f9190611752565b6002805464ffffffffff92909216650100000000000264ffffffffff60281b199092169190911790556040516209629960e41b8152601e600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156102a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c89190611752565b6002805464ffffffffff929092166a01000000000000000000000264ffffffffff60501b19909216919091179055601e60058181556006805460ff191690911781556040805160c0810182525f8082526020820181905291810191909152606081019290925260326080830181905260a08301526103489160079161160b565b50348015610354575f80fd5b506040516179463803806179468339810160408190526103739161186a565b33610381858585858561038b565b5050505050611c0b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156103d45750825b90505f826001600160401b031660011480156103ef5750303b155b9050811580156103fd575080155b1561041b5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561044957845460ff60401b1916680100000000000000001785555b6108be8a8a8a6040518061010001604052805f151581526020015f151581526020015f15158152602001600160ff1681526020015f60ff16815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156104cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f191906118ef565b6001600160601b0316815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a91906118ef565b6001600160601b031681526020015f6040519080825280602002602001820160405280156105a2578160200160208202803683370190505b508152506040518060e0016040528073__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156105f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061b919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610666573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068a919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f9919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610744573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610768919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156107b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d7919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610822573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610846919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610891573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b5919061190a565b90528c8c610910565b831561090457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b610918610930565b61092787878787878787610980565b50505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661097e57604051631afcd79f60e31b815260040160405180910390fd5b565b610988610930565b61099d878787600c6020890151879087610c8d565b5f7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68008551815460208089015160408a015160608b015160808c015160a08d015160c08e015161ffff1990971697151561ff00191697909717610100941515949094029390931763ffff00001916620100009215159290920263ff000000191691909117630100000060ff9283160217600160201b600160881b0319166401000000009190921602600160281b600160881b03191617650100000000006001600160601b039485160217600160881b600160e81b031916600160881b939092169290920217825560e0870151805192935087928492610aa292600185019291019061169b565b5050845180516020918201516001600160601b03908116600160a01b9081026001600160a01b03938416176002870155838901518051908501518316820290841617600387015560408901518051908501518316820290841617600487015560608901518051908501518316820290841617600587015560808901518051908501518316820290841617600687015560a08901518051908501518316820290841617600787015560c0890151805194015190911602911617600883015550610b70610b6b602c90565b610ee8565b600a820180546001600160a01b0319166001600160a01b0392909216919091179055610b9d610b6b601490565b600b820180546001600160a01b0319166001600160a01b0392909216919091179055610bca610b6b601590565b600c820180546001600160a01b0319166001600160a01b0392909216919091179055610bf7610b6b602d90565b600d820180546001600160a01b0319166001600160a01b0392909216919091179055610c24610b6b602a90565b600e820180546001600160a01b0319166001600160a01b0392909216919091179055610c51610b6b600b90565b6009820180546001600160a01b0319166001600160a01b0392909216919091179055610c83630cdf80bd60e31b610f7f565b5050505050505050565b610c95610930565b5f610ca1888887610fb2565b90505f7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0060405163bf8e179760e01b81526001600160601b03841660048201529091506001600160a01b038a169063bf8e179790602401602060405180830381865afa158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d379190611968565b81546001600160a01b0319166001600160a01b039190911690811782556040805163bf7e214f60e01b81529051610dd5929163bf7e214f9160048083019260209291908290030181865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db59190611968565b8a8a8a8a898960405180602001604052805f81525061105d60201b60201c565b8054604080516302cd307160e01b815290516001600160a01b03909216916302cd3071916004808201926020929091908290030181865afa158015610e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e409190611968565b6001820180546001600160a01b03199081166001600160a01b0393841617909155600283018054909116918716919091179055610e7e610b6b600b90565b6003820180546001600160a01b0319166001600160a01b0392909216919091179055610eab610b6b600d90565b6004820180546001600160a01b0319166001600160a01b0392909216919091179055610edd63a9c1bc6f60e01b610f7f565b505050505050505050565b5f610efb6001546001600160a01b031690565b6001600160a01b031663d39e604383610f12611126565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015610f55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f799190611968565b92915050565b610f87610930565b610faf816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b5f60ff8216600c03610fd357610fca8484600a6111bc565b50829050611056565b5f610fe08585600c6111bc565b60405163677d3feb60e11b81526001600160601b03861660048201529091506001600160a01b0382169063cefa7fd690602401602060405180830381865afa15801561102e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105291906118ef565b9150505b9392505050565b611065610930565b84515f036110865760405163591eebf360e11b815260040160405180910390fd5b61109588888887878787611286565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00806110c18782611a07565b5060018101805460ff19168515151790556110dd610b6b600b90565b6001820180546001600160a01b039290921661010002610100600160a81b0319909216919091179055611116634a531f3360e01b610f7f565b610edd6306e9e5ff60e31b610f7f565b5f6111587ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611193573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b79190611ada565b905090565b6040516305247a1760e51b81526001600160601b038316600482015283905f906001600160a01b0383169063a48f42e0906024015f60405180830381865afa15801561120a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112319190810190611b22565b905061124881604001518460ff9081169116141590565b1561127e57604080820151905163b0c1f6eb60e01b815260ff808616600483015290911660248201526044015b60405180910390fd5b509392505050565b61128e610930565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af41580156112e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113089190611bf2565b6113305760405163cf6935e560e01b81526001600160a01b0388166004820152602401611275565b611339876113d0565b61134386836113e1565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d0100000000000000000000000000861515021781559050600181016113bf8382611a07565b50610c83634a531f3360e01b610f7f565b6113d8610930565b610faf81611473565b6113e9610930565b6113f1611484565b6113fa826114cc565b6001600160a01b0381166114215760405163f17ef42d60e01b815260040160405180910390fd5b7f07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f0080546001600160601b03166c010000000000000000000000006001600160a01b039093169290920291909117905550565b61147b610930565b610faf81611598565b61148c610930565b61097e6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6114d4610930565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af415801561152a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154e9190611bf2565b6115765760405163fdeac91f60e01b81526001600160a01b0382166004820152602401611275565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60018301918390821561168b579160200282015f5b8382111561165d57835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f01049283019260010302611620565b80156116895782816101000a81549060ff02191690556001016020815f0104928301926001030261165d565b505b5061169792915061173e565b5090565b828054828255905f5260205f209060010160029004810192821561168b579160200282015f5b8382111561170b57835183826101000a8154816001600160601b0302191690836001600160601b031602179055509260200192600c01602081600b010492830192600103026116c1565b80156116895782816101000a8154906001600160601b030219169055600c01602081600b0104928301926001030261170b565b5b80821115611697575f815560010161173f565b5f60208284031215611762575f80fd5b815164ffffffffff81168114611056575f80fd5b6001600160a01b0381168114610faf575f80fd5b805161179581611776565b919050565b6001600160601b0381168114610faf575f80fd5b80516117958161179a565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b03811182821017156117ef576117ef6117b9565b60405290565b5f806001600160401b0384111561180e5761180e6117b9565b50604051601f19601f85018116603f011681018181106001600160401b038211171561183c5761183c6117b9565b604052838152905080828401851015611853575f80fd5b8383602083015e5f60208583010152509392505050565b5f805f806080858703121561187d575f80fd5b845161188881611776565b60208601519094506118998161179a565b60408601519093506001600160401b038111156118b4575f80fd5b8501601f810187136118c4575f80fd5b6118d3878251602084016117f5565b92505060608501516118e481611776565b939692955090935050565b5f602082840312156118ff575f80fd5b81516110568161179a565b5f604082840312801561191b575f80fd5b50604080519081016001600160401b038111828210171561193e5761193e6117b9565b604052825161194c81611776565b8152602083015161195c8161179a565b60208201529392505050565b5f60208284031215611978575f80fd5b815161105681611776565b600181811c9082168061199757607f821691505b6020821081036119b557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115611a0257805f5260205f20601f840160051c810160208510156119e05750805b601f840160051c820191505b818110156119ff575f81556001016119ec565b50505b505050565b81516001600160401b03811115611a2057611a206117b9565b611a3481611a2e8454611983565b846119bb565b6020601f821160018114611a66575f8315611a4f5750848201515b5f19600385901b1c1916600184901b1784556119ff565b5f84815260208120601f198516915b82811015611a955787850151825560209485019460019092019101611a75565b5084821015611ab257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60ff81168114610faf575f80fd5b805161179581611ac1565b5f60208284031215611aea575f80fd5b815161105681611ac1565b80518015158114611795575f80fd5b5f82601f830112611b13575f80fd5b611056838351602085016117f5565b5f60208284031215611b32575f80fd5b81516001600160401b03811115611b47575f80fd5b820160e08185031215611b58575f80fd5b611b606117cd565b611b69826117ae565b8152611b77602083016117ae565b6020820152611b8860408301611acf565b6040820152611b9960608301611af5565b6060820152611baa6080830161178a565b6080820152611bbb60a0830161178a565b60a082015260c08201516001600160401b03811115611bd8575f80fd5b611be486828501611b04565b60c083015250949350505050565b5f60208284031215611c02575f80fd5b61105682611af5565b608051615d23611c235f395f61055d0152615d235ff3fe608060405234801561000f575f80fd5b5060043610610393575f3560e01c80636838b83e116101df578063b7b357ac11610109578063e1f216fa116100a9578063f0107c1511610079578063f0107c1514610868578063f179d06414610880578063f322c70a14610893578063f3e349ae146108a6575f80fd5b8063e1f216fa14610825578063e4a28a5214610838578063e9b2460c14610840578063ea15869f14610854575f80fd5b8063c108bd4c116100e4578063c108bd4c146107b5578063d3c576d8146107ca578063de7b5d14146107e2578063deaa59df14610812575f80fd5b8063b7b357ac1461077b578063be5c8f4414610793578063bf7e214f146107ad575f80fd5b80638b0af5d81161017f578063ad12ad601161014f578063ad12ad6014610739578063ada9652e1461074c578063b277d78014610760578063b423086c14610773575f80fd5b80638b0af5d8146106ea5780638fb36037146106f257806390edbd3514610713578063972e22eb14610728575f80fd5b80637a9e5e4b116101ba5780637a9e5e4b146106b2578063844e0f20146106c5578063893d20e8146106da5780638aea8f71146106e2575f80fd5b80636838b83e146106675780636bd1c0eb1461067a57806376b707b7146106aa575f80fd5b80632f15ce0d116102c05780635349d2a8116102605780636078a3b2116102305780636078a3b214610613578063608a5f8d14610626578063635a3e501461063e578063644c45e01461065f575f80fd5b80635349d2a8146105d45780635741e5e9146105e75780635ab1bd53146105ef57806360426af314610600575f80fd5b806343d752d31161029b57806343d752d3146105925780634b396c4f1461059a5780634b9ddafe146105a75780634cdabb16146105c1575f80fd5b80632f15ce0d1461054f57806339cee40714610558578063419197fe1461057f575f80fd5b80631e6239c611610336578063223668441161030657806322366844146104e857806322f3e2d4146104f05780632c41284a146104f85780632eb3e6f414610528575f80fd5b80631e6239c6146104715780631eff4b2214610496578063211e28b6146104cb57806321df0da7146104e0575f80fd5b806313299604116103715780631329960414610409578063138461e01461042957806317d7de7c146104495780631c6b21901461045e575f80fd5b806301ffc9a7146103975780630d8e6e2c146103d85780630fec111c146103f4575b5f80fd5b6103c36103a536600461445f565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103e06108b9565b60405162ffffff90911681526020016103cf565b6103fc610940565b6040516103cf91906144b4565b610411610afa565b6040516001600160a01b0390911681526020016103cf565b610431610b62565b6040516001600160601b0390911681526020016103cf565b610451610b6c565b6040516103cf9190614540565b61043161046c366004614566565b610b7c565b61048461047f366004614581565b610bda565b60405160ff90911681526020016103cf565b6104bd7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016103cf565b6104de6104d93660046145a5565b610c03565b005b610411610c4a565b6103c3610c8e565b6103c3610d84565b6002546105129065010000000000900464ffffffffff1681565b60405164ffffffffff90911681526020016103cf565b6104bd7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0081565b6104bd60055481565b6104bd7f000000000000000000000000000000000000000000000000000000000000000081565b6104de61058d3660046145d4565b610dfb565b610411610e4e565b6006546104849060ff1681565b60035461043190600160601b90046001600160601b031681565b600354610431906001600160601b031681565b6104316105e23660046147a1565b610e60565b6103c3610f24565b6001546001600160a01b0316610411565b6104de61060e36600461484a565b610fda565b610431610621366004614896565b61101b565b60015461051290600160c81b900464ffffffffff1681565b61065161064c3660046148b1565b6110ed565b6040516103cf929190614998565b6104316114c7565b6104de6106753660046149d8565b6114e2565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b0316610411565b61048461153a565b6104de6106c0366004614896565b6115a2565b6106cd611628565b6040516103cf9190614a5d565b610411611801565b6104de611932565b6104de611cff565b6106fa611dca565b6040516001600160e01b031990911681526020016103cf565b61071b611dff565b6040516103cf9190614aeb565b6002546105129064ffffffffff1681565b6104de610747366004614b27565b611e30565b6104bd5f80516020615c6e83398151915281565b6104de61076e366004614566565b611ed3565b61071b611f39565b60015461051290600160a01b900464ffffffffff1681565b60025461043190600160781b90046001600160601b031681565b610411611f55565b6107bd611f70565b6040516103cf9190614bba565b60025461051290600160501b900464ffffffffff1681565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00546001600160a01b0316610411565b6104de610820366004614896565b6120c4565b6104de610833366004614c59565b612111565b610484603281565b6104bd5f80516020615cce83398151915281565b6104bd5f80516020615c8e83398151915281565b600854600160601b90046001600160601b0316610431565b61043161088e366004614ca1565b612127565b6104de6108a1366004614d51565b612146565b600454610431906001600160601b031681565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610917573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614d84565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a109190614db1565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a58611801565b6001600160a01b03168152602001826001018054610a7590614dcc565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190614dcc565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b505050505081525091505090565b5f610b03610e4e565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614e0f565b5f61093b30612194565b6060610b76611dff565b51919050565b5f610b89335b5f366123e5565b610b91611801565b6001600160a01b0316336001600160a01b031614610bc95760405163086391f760e31b81523360048201526024015b60405180910390fd5b610bd2826124e3565b90505b919050565b60078160068110610be9575f80fd5b60209182820401919006915054906101000a900460ff1681565b610c0b611801565b6001600160a01b0316336001600160a01b031614610c3e5760405163086391f760e31b8152336004820152602401610bc0565b610c478161253b565b50565b5f610c53610e4e565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b5f610ca16001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610ce5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d099190614db1565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610d60573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614e35565b5f610d8d611f55565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610dd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df59190614e35565b15905090565b610e0433610b82565b610e0c611801565b6001600160a01b0316336001600160a01b031614610e3f5760405163086391f760e31b8152336004820152602401610bc0565b610e4982826125a5565b505050565b5f610e57611dff565b60200151905090565b5f826016610e6e8282612726565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680e545f906001600160a01b031663f4bfe53a610ea86114c7565b8b8d8c8c8c8c6040518863ffffffff1660e01b8152600401610ed09796959493929190614e50565b61024060405180830381865afa158015610eec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f109190614ecd565b60a001519350505b50509695505050505050565b5f610f2d610c8e565b15610fb1576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015610f81573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa8919081019061508e565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b610fe333610b82565b5f81806020019051810190610ff89190615169565b805160208201516040830151600654939450610e4993879392919060ff1661285a565b5f61102533610b82565b61102d611801565b6001600160a01b0316336001600160a01b0316146110605760405163086391f760e31b8152336004820152602401610bc0565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68095460405163303c51d960e11b81526001600160a01b03848116600483015290911690636078a3b2906024015b6020604051808303815f875af11580156110c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190614db1565b5f6110f6614369565b6110ff33610b82565b61110b30878787612a90565b5f805f73__$6efb0c97d21d9331e673f6fcd79a682b24$__6355d166e13089896040518463ffffffff1660e01b8152600401611149939291906151d3565b60e060405180830381865af4158015611164573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611188919061527c565b9250925092505f61119d8c8c8c8c86896130c8565b90506112618d82848b6002600a9054906101000a900464ffffffffff1660085f9054906101000a90046001600160601b031673__$05887d5853069c88bcd4c0a2107db45f29$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611216573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123a91906152af565b8f8b60405160200161124d929190614998565b6040516020818303038152906040526132bd565b95506112d88673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d291906152d5565b8a613367565b506112e3868b613408565b6114b66008600c9054906101000a90046001600160601b03166040518060800160405280846001600160c01b03191681526020018f81526020018e81526020018d64ffffffffff16815250604051602001611375919081516001600160c01b0319168152602080830151908201526040808301519082015260609182015164ffffffffff169181019190915260800190565b60408051601f19818403018152908290526209629960e41b8252601e60048301529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e9064ffffffffff8f169073__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156113f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141991906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015611460573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148491906152d5565b60405180604001604052806014815260200173666c6967687453746174757343616c6c6261636b60601b815250613492565b505050505097509795505050505050565b5f80516020615c6e833981519152546001600160601b031690565b6114eb33610b82565b6114f3611801565b6001600160a01b0316336001600160a01b0316146115265760405163086391f760e31b8152336004820152602401610bc0565b611533858585858561285a565b5050505050565b5f611543611f55565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b91906152f0565b336115ab611f55565b6001600160a01b0316816001600160a01b0316146115e65760405162d1953b60e31b81526001600160a01b0382166004820152602401610bc0565b816001600160a01b03163b5f0361161b576040516361798f2f60e11b81526001600160a01b0383166004820152602401610bc0565b61162482613530565b5050565b611630614387565b5060408051610120810182527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6802546001600160a01b0380821660e084019081526001600160601b03600160a01b938490048116610100860152908452845180860186527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6803548084168252849004821660208083019190915280860191909152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680454808516825285900483168183015285870152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68055480851682528590048316818301526060860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68065480851682528590048316818301526080860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680754808516825285900483168183015260a086015285518087019096527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680854928316865292909104169083015260c081019190915290565b5f805f80516020615c6e83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561186d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118919190614e35565b1561191c576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156118f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119169190614e0f565b91505090565b54600160601b90046001600160a01b0316919050565b61193b33610b82565b611943611801565b6001600160a01b0316336001600160a01b0316146119765760405163086391f760e31b8152336004820152602401610bc0565b5f61197f610c4a565b90505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e291906152f0565b6119ed90600a615402565b905073__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611a1483600f615410565b6040518263ffffffff1660e01b8152600401611a3291815260200190565b602060405180830381865af4158015611a4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a719190614db1565b600280546001600160601b0392909216600160781b026bffffffffffffffffffffffff60781b1990921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611ac68360c8615410565b6040518263ffffffff1660e01b8152600401611ae491815260200190565b602060405180830381865af4158015611aff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b239190614db1565b600380546001600160601b0319166001600160601b039290921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611b69836101f4615410565b6040518263ffffffff1660e01b8152600401611b8791815260200190565b602060405180830381865af4158015611ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc69190614db1565b600380546bffffffffffffffffffffffff60601b1916600160601b6001600160601b039384168102919091179182905560405163046e44af60e11b81529104909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015611c4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c739190615427565b611c7e906003615410565b6040518263ffffffff1660e01b8152600401611c9c91815260200190565b602060405180830381865af4158015611cb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cdb9190614db1565b600480546001600160601b0319166001600160601b03929092169190911790555050565b611d07613590565b6001600160a01b0316630b5d931c611d1d6114c7565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015611d5e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d8591908101906154c6565b60e001515f81518110611d9a57611d9a6155a8565b60200260200101516008600c6101000a8154816001600160601b0302191690836001600160601b03160217905550565b5f80516020615cae83398151915280545f9190600160a01b900460ff16611df1575f611916565b638fb3603760e01b91505090565b60408051808201909152606081525f6020820152611e1b610c8e565b15611e285761093b6135be565b61093b611f39565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e9b9190614e0f565b6001600160a01b0316336001600160a01b031614611ecd5760405162f0630960e01b8152336004820152602401610bc0565b50505050565b611edc33610b82565b611ee4611801565b6001600160a01b0316336001600160a01b031614611f175760405163086391f760e31b8152336004820152602401610bc0565b600880546001600160601b0319166001600160601b0392909216919091179055565b60408051808201909152606081525f602082015261093b6135be565b5f80516020615cae833981519152546001600160a01b031690565b60408051610100810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e08101919091525f80516020615cce833981519152604080516101008082018352835460ff808216151584529181048216151560208085019190915262010000820483161515848601526301000000820483166060850152640100000000820490921660808401526001600160601b03650100000000008204811660a0850152600160881b9091041660c083015260018401805484518184028101840190955280855292949360e086019390928301828280156120b657602002820191905f5260205f20905f905b82829054906101000a90046001600160601b03166001600160601b0316815260200190600c0190602082600b010492830192600103820291508084116120735790505b505050505081525050905090565b6120cd33610b82565b6120d5611801565b6001600160a01b0316336001600160a01b0316146121085760405163086391f760e31b8152336004820152602401610bc0565b610c4781613777565b61211a33610b82565b8260156115338282612726565b5f8180602001905181019061213c91906155bc565b5095945050505050565b61214e611801565b6001600160a01b0316336001600160a01b0316146121815760405163086391f760e31b8152336004820152602401610bc0565b61218a33610b82565b61162482826137ec565b5f805f80516020615c6e83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122249190614e35565b156122505780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610bc0565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156122a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c69190614e35565b6122ee5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610bc0565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015612340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123649190614db1565b81546001600160601b0319166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b54906123ab611801565b604080516001600160601b0390931683526001600160a01b0390911660208301520160405180910390a1546001600160601b031692915050565b5f80516020615cae8339815191525f8061241d612400611f55565b873061240f60045f8a8c6155e7565b6124189161560e565b61383d565b91509150816124db5763ffffffff8116156124b857825460ff60a01b1916600160a01b17835561244b611f55565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161247a93929190615644565b5f604051808303815f87803b158015612491575f80fd5b505af11580156124a3573d5f803e3d5ffd5b5050845460ff60a01b19168555506124db9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610bc0565b505050505050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f03546040516301c6b21960e41b81526001600160601b03831660048201525f916001600160a01b031690631c6b2190906024016110ad565b5f80516020615c8e8339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015612593575f80fd5b505af1158015611533573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e6125d7610e4e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561261f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126439190615427565b6040518263ffffffff1660e01b815260040161266191815260200190565b602060405180830381865af415801561267c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a09190614db1565b90505f80516020615c8e833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b15801561270a575f80fd5b505af115801561271c573d5f803e3d5ffd5b5050505092915050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015612776573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061279a9190614e35565b8061282857506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015612802573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128269190614e35565b155b156116245760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610bc0565b5f612863613590565b90505f8073__$6efb0c97d21d9331e673f6fcd79a682b24$__6319b9d5ba8461288a6114c7565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526001600160c01b03198a16604482015260640161010060405180830381865af41580156128eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290f919061570a565b915091508161296b57604080516001600160401b038a1681526001600160c01b0319891660208201527fdad11192f5a8a0528fe4f5bbec7b626311293b772ab7a328a18b6cc8e384e37b910160405180910390a1505050611533565b604051621600c960ea1b81526001600160401b03891660048201526001600160c01b0319881660248201526001600160f81b031987166044820152606481018690525f9073__$6efb0c97d21d9331e673f6fcd79a682b24$__90635803240090608401602060405180830381865af41580156129e9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0d91906152f0565b9050612a1a888287613945565b604080516001600160401b038b1681526001600160c01b03198a1660208201526001600160f81b03198916818301526060810188905260ff8316608082015290517f6088f5fc3484ec0fdf466ecfcea487e5566da0db0bda62b4dbeb3ed86fd3ef0b9181900360a00190a1505050505050505050565b612af981856001600160a01b031663be5c8f446040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af49190614db1565b613bf0565b612b455760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030313a494e56414c49445f5052454d49554d0000006044820152606401610bc0565b612bae81856001600160a01b0316634cdabb166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba99190614db1565b613c7e565b612bfa5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030323a494e56414c49445f5052454d49554d0000006044820152606401610bc0565b64ffffffffff80841690831611612c675760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4644442d3030333a4152524956414c5f4245464f52455f44455060448201526a4152545552455f54494d4560a81b6064820152608401610bc0565b612d6a828464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63a5798b4e9091886001600160a01b031663972e22eb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cef91906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d5a91906152d5565b64ffffffffff9081169116111590565b612dcb5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030343a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b612f3873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3991906152d5565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663608a5f8d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ebd91906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2891906152d5565b64ffffffffff9081169116101590565b612f995760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030353a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b61306773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612fe3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300791906152d5565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663b7b357ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccb573d5f803e3d5ffd5b611ecd5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3031323a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b6040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052819073__$6efb0c97d21d9331e673f6fcd79a682b24$__62841bf3613122613590565b61312a6114c7565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604481018c9052606481018b905264ffffffffff808b166084830152891660a482015260c40161012060405180830381865af415801561319e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131c29190615736565b9194509250905081613208575f6131da8a8989613cc8565b905061320581836040516020016131f1919061577d565b604051602081830303815290604052613d16565b50505b61322a613219826080015187613da7565b6004546001600160601b0316613c7e565b6132765760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4644442d3030363a434c55535445525f5249534b0000000000006044820152606401610bc0565b613284816080015186613da7565b6001600160601b03166080820152604051610f189084906132a990849060200161577d565b604051602081830303815290604052613e2b565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680b54604051639a83274160e01b81525f916001600160a01b031690639a8327419061331a908c908c908c908c908c908c908c908c906004016157e7565b6020604051808303815f875af1158015613336573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061335a9190614db1565b9998505050505050505050565b5f5f80516020615cce833981519152600c015460405163d22413e560e01b81526001600160601b03808716600483015264ffffffffff86166024830152841660448201526001600160a01b039091169063d22413e5906064016020604051808303815f875af11580156133dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190614db1565b949350505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051635dfddfdd60e11b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b039091169063bbfbbfba906044015b5f604051808303815f87803b158015613480575f80fd5b505af11580156124db573d5f803e3d5ffd5b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f045460405163f684566360e01b81525f916001600160a01b03169063f6845663906134e790889088908890889060040161585d565b6020604051808303815f875af1158015613503573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061352791906158a8565b95945050505050565b5f80516020615cae83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60408051808201909152606081525f60208201525f6135e56001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015613629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061364d9190614db1565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156136a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ca9190614e35565b1561376f576136d7613590565b6001600160a01b031663f0ea17c36136ed6114c7565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa15801561372e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261375591908101906158c3565b60208101519092506001600160a01b03161561376f575090565b611916613e7c565b61377f611801565b6001600160a01b0316336001600160a01b0316146137b25760405163086391f760e31b8152336004820152602401610bc0565b6137bc600b613f46565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df9060240161257c565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680954604051634698bf1160e01b81526001600160a01b0390911690634698bf11906134699085908590600401615957565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516138ab9190615972565b5f60405180830381855afa9150503d805f81146138e3576040519150601f19603f3d011682016040523d82523d5f602084013e6138e8565b606091505b5091509150811561393a57604081511061391a57808060200190518101906139109190615988565b909450925061393a565b602081511061393a57808060200190518101906139379190614e35565b93505b505094509492505050565b5f61394e613590565b604051631954e65360e21b81526001600160c01b0319861660048201529091505f906001600160a01b03831690636553994c90602401602060405180830381865afa15801561399f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139c39190615427565b90508260ff1681106139d8578260ff166139da565b805b90505f5b818110156124db576040516325fb9d0d60e11b81526001600160c01b031987166004820152602481018290525f906001600160a01b03851690634bf73a1a90604401602060405180830381865afa158015613a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5f9190614db1565b905060ff8681161015613b695760405163bd7d9d8560e01b81526001600160601b03821660048201525f906001600160a01b0386169063bd7d9d85906024015f60405180830381865afa158015613ab8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613adf91908101906159c8565b6101c001519050613b678273__$6efb0c97d21d9331e673f6fcd79a682b24$__638a37ab63848b6040518363ffffffff1660e01b8152600401613b23929190615b5b565b602060405180830381865af4158015613b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b629190614db1565b613fd7565b505b613bdd8173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613bb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bd891906152d5565b614034565b50613be7816140c5565b506001016139de565b604051631315996960e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063262b32d2906044015b602060405180830381865af4158015613c51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c759190614e35565b90505b92915050565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401613c36565b5f838383604051602001613cf69392919092835264ffffffffff918216602084015216604082015260600190565b6040516020818303038152906040528051906020012090505b9392505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a5460405163c3fa12bb60e01b81525f916001600160a01b03169063c3fa12bb90613d679086908690600401615b7f565b6020604051808303815f875af1158015613d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c7591906152af565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015613e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c759190614db1565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a54604051638f997f6d60e01b81526001600160a01b0390911690638f997f6d906134699085908590600401615b97565b60408051808201909152606081525f60208201525f5f80516020615c8e83398151915290506040518060400160405280825f018054613eba90614dcc565b80601f0160208091040260200160405190810160405280929190818152602001828054613ee690614dcc565b8015613f315780601f10613f0857610100808354040283529160200191613f31565b820191905f5260205f20905b815481529060010190602001808311613f1457829003601f168201915b50505091835250505f60209091015292915050565b5f613f596001546001600160a01b031690565b6001600160a01b031663d39e604383613f7061153a565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613fb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190614e0f565b5f613ff1838360405180602001604052805f81525061411d565b905061400d83828460405180602001604052805f8152506141b0565b5f61402884838560405180602001604052805f815250614238565b90506124db84826142cd565b5f5f80516020615cce833981519152600c0154604051637baa9a0b60e01b81526001600160601b038516600482015264ffffffffff841660248201526001600160a01b0390911690637baa9a0b906044016020604051808303815f875af11580156140a1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c7591906152d5565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051630155751d60e31b81526001600160601b03831660048201526001600160a01b0390911690630aaba8e89060240161257c565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d546040516374b775eb60e01b81525f916001600160a01b0316906374b775eb9061417090879087908790600401615bbb565b6020604051808303815f875af115801561418c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190615beb565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051636e2cdce760e01b81526001600160a01b0390911690636e2cdce790614205908790879087908790600401615c06565b5f604051808303815f87803b15801561421c575f80fd5b505af115801561422e573d5f803e3d5ffd5b5050505050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051631e2992c760e11b81525f916001600160a01b031690633c53258e9061428d908890889088908890600401615c06565b6020604051808303815f875af11580156142a9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061352791906152d5565b5f805f80516020615cce833981519152600d015460405163137a92a760e01b81526001600160601b038616600482015264ffffffffff851660248201526001600160a01b039091169063137a92a79060440160408051808303815f875af115801561433a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061435e9190615c40565b909590945092505050565b6040518060a001604052806005906020820280368337509192915050565b6040805161012081019091525f60e08201818152610100830191909152819081526020016143c4604080518082019091525f808252602082015290565b81526020016143e2604080518082019091525f808252602082015290565b8152602001614400604080518082019091525f808252602082015290565b815260200161441e604080518082019091525f808252602082015290565b815260200161443c604080518082019091525f808252602082015290565b815260200161445a604080518082019091525f808252602082015290565b905290565b5f6020828403121561446f575f80fd5b81356001600160e01b031981168114613d0f575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516144fc608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152613400610100840182614486565b602081525f613c756020830184614486565b6001600160601b0381168114610c47575f80fd5b5f60208284031215614576575f80fd5b8135613d0f81614552565b5f60208284031215614591575f80fd5b5035919050565b8015158114610c47575f80fd5b5f602082840312156145b5575f80fd5b8135613d0f81614598565b6001600160a01b0381168114610c47575f80fd5b5f80604083850312156145e5575f80fd5b82356145f0816145c0565b9150602083013561460081614552565b809150509250929050565b6001600160c01b031981168114610c47575f80fd5b64ffffffffff81168114610c47575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561466857614668614632565b60405290565b60405161024081016001600160401b038111828210171561466857614668614632565b60405160e081016001600160401b038111828210171561466857614668614632565b60405161010081016001600160401b038111828210171561466857614668614632565b60405161020081016001600160401b038111828210171561466857614668614632565b604051601f8201601f191681016001600160401b038111828210171561472157614721614632565b604052919050565b5f6001600160401b0382111561474157614741614632565b50601f01601f191660200190565b5f82601f83011261475e575f80fd5b813561477161476c82614729565b6146f9565b818152846020838601011115614785575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c087890312156147b6575f80fd5b86356147c181614552565b955060208701356147d18161460b565b945060408701356147e181614620565b935060608701356001600160401b038111156147fb575f80fd5b61480789828a0161474f565b935050608087013561481881614552565b915060a08701356148288161460b565b809150509295509295509295565b6001600160401b0381168114610c47575f80fd5b5f806040838503121561485b575f80fd5b823561486681614836565b915060208301356001600160401b03811115614880575f80fd5b61488c8582860161474f565b9150509250929050565b5f602082840312156148a6575f80fd5b8135613d0f816145c0565b5f805f805f805f610180888a0312156148c8575f80fd5b87356148d3816145c0565b9650602088013595506040880135945060608801356148f181614620565b9350608088013561490181614620565b925060a088013561491181614552565b915060df88018913614921575f80fd5b61492b60c06146f9565b806101808a018b81111561493d575f80fd5b60c08b015b8181101561495a578035845260209384019301614942565b5050809250505092959891949750929550565b805f5b6005811015611ecd5781516001600160601b0316845260209384019390910190600101614970565b6001600160601b038316815260c08101613d0f602083018461496d565b6001600160f81b031981168114610c47575f80fd5b60ff81168114610c47575f80fd5b5f805f805f60a086880312156149ec575f80fd5b85356149f781614836565b94506020860135614a078161460b565b93506040860135614a17816149b5565b9250606086013591506080860135614a2e816149ca565b809150509295509295909350565b80516001600160a01b031682526020908101516001600160601b0316910152565b5f6101c082019050614a70828451614a3c565b6020830151614a826040840182614a3c565b506040830151614a956080840182614a3c565b506060830151614aa860c0840182614a3c565b506080830151614abc610100840182614a3c565b5060a0830151614ad0610140840182614a3c565b5060c0830151614ae4610180840182614a3c565b5092915050565b602081525f825160406020840152614b066060840182614486565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f8060808587031215614b3a575f80fd5b8435614b45816145c0565b93506020850135614b55816145c0565b9250604085013591506060850135614b6c816145c0565b939692955090935050565b5f8151808452602084019350602083015f5b82811015614bb05781516001600160601b0316865260209586019590910190600101614b89565b5093949350505050565b602081528151151560208201526020820151151560408201525f6040830151614be7606084018215159052565b50606083015160ff8116608084015250608083015160ff811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e083015161010080840152613400610120840182614b77565b61ffff81168114610c47575f80fd5b5f805f60608486031215614c6b575f80fd5b8335614c7681614552565b92506020840135614c8681614c4a565b91506040840135614c9681614552565b809150509250925092565b5f805f8060808587031215614cb4575f80fd5b8435614cbf81614552565b93506020850135614ccf8161460b565b92506040850135614cdf81614620565b915060608501356001600160401b03811115614cf9575f80fd5b614d058782880161474f565b91505092959194509250565b5f60408284031215614d21575f80fd5b614d29614646565b90508135614d36816145c0565b81526020820135614d4681614552565b602082015292915050565b5f8060808385031215614d62575f80fd5b614d6c8484614d11565b9150614d7b8460408501614d11565b90509250929050565b5f60208284031215614d94575f80fd5b815162ffffff81168114613d0f575f80fd5b8051610bd581614552565b5f60208284031215614dc1575f80fd5b8151613d0f81614552565b600181811c90821680614de057607f821691505b602082108103614dfe57634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610bd5816145c0565b5f60208284031215614e1f575f80fd5b8151613d0f816145c0565b8051610bd581614598565b5f60208284031215614e45575f80fd5b8151613d0f81614598565b6001600160601b03881681526001600160401b0360c01b871660208201526001600160601b038616604082015264ffffffffff8516606082015260e060808201525f614e9f60e0830186614486565b6001600160601b039490941660a0830152506001600160c01b03199190911660c09091015295945050505050565b5f610240828403128015614edf575f80fd5b50614ee861466e565b614ef183614da6565b8152614eff60208401614da6565b6020820152614f1060408401614da6565b6040820152614f2160608401614da6565b6060820152614f3260808401614da6565b6080820152614f4360a08401614da6565b60a0820152614f5460c08401614da6565b60c0820152614f6560e08401614da6565b60e0820152614f776101008401614da6565b610100820152614f8a6101208401614da6565b610120820152614f9d6101408401614da6565b610140820152614fb06101608401614da6565b610160820152614fc36101808401614da6565b610180820152614fd66101a08401614da6565b6101a0820152614fe96101c08401614da6565b6101c0820152614ffc6101e08401614da6565b6101e082015261500f6102008401614da6565b6102008201526150226102208401614da6565b6102208201529392505050565b8051610bd5816149ca565b5f61504761476c84614729565b905082815283838301111561505a575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261507f575f80fd5b613c758383516020850161503a565b5f6020828403121561509e575f80fd5b81516001600160401b038111156150b3575f80fd5b820160e081850312156150c4575f80fd5b6150cc614691565b6150d582614da6565b81526150e360208301614da6565b60208201526150f46040830161502f565b604082015261510560608301614e2a565b606082015261511660808301614e04565b608082015261512760a08301614e04565b60a082015260c08201516001600160401b03811115615144575f80fd5b61515086828501615070565b60c083015250949350505050565b8051610bd58161460b565b5f606082840312801561517a575f80fd5b50604051606081016001600160401b038111828210171561519d5761519d614632565b60405282516151ab8161460b565b815260208301516151bb816149b5565b60208201526040928301519281019290925250919050565b6001600160a01b03841681526001600160601b0383166020820152610100810160408201835f5b60068110156152195781518352602092830192909101906001016151fa565b505050949350505050565b5f82601f830112615233575f80fd5b61523d60a06146f9565b8060a084018581111561524e575f80fd5b845b8181101561527157805161526381614552565b845260209384019301615250565b509095945050505050565b5f805f60e0848603121561528e575f80fd5b8351925061529f8560208601615224565b915060c0840151614c9681614552565b5f602082840312156152bf575f80fd5b8151613d0f8161460b565b8051610bd581614620565b5f602082840312156152e5575f80fd5b8151613d0f81614620565b5f60208284031215615300575f80fd5b8151613d0f816149ca565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561535a5780850481111561533e5761533e61530b565b600184161561534c57908102905b60019390931c928002615323565b935093915050565b5f8261537057506001613c78565b8161537c57505f613c78565b8160018114615392576002811461539c576153b8565b6001915050613c78565b60ff8411156153ad576153ad61530b565b50506001821b613c78565b5060208310610133831016604e8410600b84101617156153db575081810a613c78565b6153e75f19848461531f565b805f19048211156153fa576153fa61530b565b029392505050565b5f613c7560ff841683615362565b8082028115828204841417613c7857613c7861530b565b5f60208284031215615437575f80fd5b5051919050565b5f82601f83011261544d575f80fd5b81516001600160401b0381111561546657615466614632565b8060051b615476602082016146f9565b91825260208185018101929081019086841115615491575f80fd5b6020860192505b838310156154bc5782516154ab81614552565b825260209283019290910190615498565b9695505050505050565b5f602082840312156154d6575f80fd5b81516001600160401b038111156154eb575f80fd5b820161010081850312156154fd575f80fd5b6155056146b3565b61550e82614e2a565b815261551c60208301614e2a565b602082015261552d60408301614e2a565b604082015261553e6060830161502f565b606082015261554f6080830161502f565b608082015261556060a08301614da6565b60a082015261557160c08301614da6565b60c082015260e08201516001600160401b0381111561558e575f80fd5b61559a8682850161543e565b60e083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f8060c083850312156155cd575f80fd5b82516155d881614552565b9150614d7b8460208501615224565b5f80858511156155f5575f80fd5b83861115615601575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614ae4576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60e08284031215615693575f80fd5b61569b614691565b825181526020808401519082015260408301519091506156ba81614620565b604082015260608201516156cd81614620565b606082015260808201516156e081614552565b608082015260a08201516156f3816149b5565b60a082015260c09182015191810191909152919050565b5f80610100838503121561571c575f80fd5b825161572781614598565b9150614d7b8460208501615683565b5f805f6101208486031215615749575f80fd5b83516157548161460b565b602085015190935061576581614598565b91506157748560408601615683565b90509250925092565b5f60e082019050825182526020830151602083015264ffffffffff604084015116604083015264ffffffffff60608401511660608301526001600160601b03608084015116608083015260ff60f81b60a08401511660a083015260c083015160c083015292915050565b6001600160a01b03891681526001600160c01b031988811660208301526001600160601b038881166040840152878116606084015264ffffffffff87166080840152851660a0830152831660c082015261010060e082018190525f9061584f90830184614486565b9a9950505050505050505050565b6001600160601b0385168152608060208201525f61587e6080830186614486565b64ffffffffff85166040840152828103606084015261589d8185614486565b979650505050505050565b5f602082840312156158b8575f80fd5b8151613d0f81614836565b5f602082840312156158d3575f80fd5b81516001600160401b038111156158e8575f80fd5b8201604081850312156158f9575f80fd5b615901614646565b81516001600160401b03811115615916575f80fd5b8201601f81018613615926575f80fd5b6159358682516020840161503a565b82525060208201519150615948826145c0565b60208101919091529392505050565b608081016159658285614a3c565b613d0f6040830184614a3c565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615999575f80fd5b82516159a481614598565b602084015190925063ffffffff81168114614600575f80fd5b8051610bd581614c4a565b5f602082840312156159d8575f80fd5b81516001600160401b038111156159ed575f80fd5b820161020081850312156159ff575f80fd5b615a076146d6565b615a1082614da6565b8152615a1e60208301614da6565b6020820152615a2f6040830161515e565b6040820152615a4060608301614da6565b6060820152615a5160808301614da6565b6080820152615a6260a0830161515e565b60a0820152615a7360c083016159bd565b60c0820152615a8460e083016159bd565b60e0820152615a966101008301614da6565b610100820152615aa96101208301614da6565b610120820152615abc61014083016152ca565b610140820152615acf61016083016152ca565b610160820152615ae261018083016152ca565b610180820152615af56101a083016152ca565b6101a08201526101c08201516001600160401b03811115615b14575f80fd5b615b2086828501615070565b6101c0830152506101e08201516001600160401b03811115615b40575f80fd5b615b4c86828501615070565b6101e083015250949350505050565b604081525f615b6d6040830185614486565b905060ff831660208301529392505050565b828152604060208201525f6134006040830184614486565b6001600160401b0360c01b83168152604060208201525f6134006040830184614486565b6001600160601b03841681526001600160601b0383166020820152606060408201525f6135276060830184614486565b5f60208284031215615bfb575f80fd5b8151613d0f81614c4a565b6001600160601b038516815261ffff841660208201526001600160601b0383166040820152608060608201525f6154bc6080830184614486565b5f8060408385031215615c51575f80fd5b8251615c5c81614552565b60208401519092506146008161455256fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800a26469706673582212206f4e61d5ff8133dfe8b9ce4610f62f6a73e553e4f589dc2e20b9c4653f141eb664736f6c634300081a0033",
1804
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610393575f3560e01c80636838b83e116101df578063b7b357ac11610109578063e1f216fa116100a9578063f0107c1511610079578063f0107c1514610868578063f179d06414610880578063f322c70a14610893578063f3e349ae146108a6575f80fd5b8063e1f216fa14610825578063e4a28a5214610838578063e9b2460c14610840578063ea15869f14610854575f80fd5b8063c108bd4c116100e4578063c108bd4c146107b5578063d3c576d8146107ca578063de7b5d14146107e2578063deaa59df14610812575f80fd5b8063b7b357ac1461077b578063be5c8f4414610793578063bf7e214f146107ad575f80fd5b80638b0af5d81161017f578063ad12ad601161014f578063ad12ad6014610739578063ada9652e1461074c578063b277d78014610760578063b423086c14610773575f80fd5b80638b0af5d8146106ea5780638fb36037146106f257806390edbd3514610713578063972e22eb14610728575f80fd5b80637a9e5e4b116101ba5780637a9e5e4b146106b2578063844e0f20146106c5578063893d20e8146106da5780638aea8f71146106e2575f80fd5b80636838b83e146106675780636bd1c0eb1461067a57806376b707b7146106aa575f80fd5b80632f15ce0d116102c05780635349d2a8116102605780636078a3b2116102305780636078a3b214610613578063608a5f8d14610626578063635a3e501461063e578063644c45e01461065f575f80fd5b80635349d2a8146105d45780635741e5e9146105e75780635ab1bd53146105ef57806360426af314610600575f80fd5b806343d752d31161029b57806343d752d3146105925780634b396c4f1461059a5780634b9ddafe146105a75780634cdabb16146105c1575f80fd5b80632f15ce0d1461054f57806339cee40714610558578063419197fe1461057f575f80fd5b80631e6239c611610336578063223668441161030657806322366844146104e857806322f3e2d4146104f05780632c41284a146104f85780632eb3e6f414610528575f80fd5b80631e6239c6146104715780631eff4b2214610496578063211e28b6146104cb57806321df0da7146104e0575f80fd5b806313299604116103715780631329960414610409578063138461e01461042957806317d7de7c146104495780631c6b21901461045e575f80fd5b806301ffc9a7146103975780630d8e6e2c146103d85780630fec111c146103f4575b5f80fd5b6103c36103a536600461445f565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103e06108b9565b60405162ffffff90911681526020016103cf565b6103fc610940565b6040516103cf91906144b4565b610411610afa565b6040516001600160a01b0390911681526020016103cf565b610431610b62565b6040516001600160601b0390911681526020016103cf565b610451610b6c565b6040516103cf9190614540565b61043161046c366004614566565b610b7c565b61048461047f366004614581565b610bda565b60405160ff90911681526020016103cf565b6104bd7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016103cf565b6104de6104d93660046145a5565b610c03565b005b610411610c4a565b6103c3610c8e565b6103c3610d84565b6002546105129065010000000000900464ffffffffff1681565b60405164ffffffffff90911681526020016103cf565b6104bd7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0081565b6104bd60055481565b6104bd7f000000000000000000000000000000000000000000000000000000000000000081565b6104de61058d3660046145d4565b610dfb565b610411610e4e565b6006546104849060ff1681565b60035461043190600160601b90046001600160601b031681565b600354610431906001600160601b031681565b6104316105e23660046147a1565b610e60565b6103c3610f24565b6001546001600160a01b0316610411565b6104de61060e36600461484a565b610fda565b610431610621366004614896565b61101b565b60015461051290600160c81b900464ffffffffff1681565b61065161064c3660046148b1565b6110ed565b6040516103cf929190614998565b6104316114c7565b6104de6106753660046149d8565b6114e2565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b0316610411565b61048461153a565b6104de6106c0366004614896565b6115a2565b6106cd611628565b6040516103cf9190614a5d565b610411611801565b6104de611932565b6104de611cff565b6106fa611dca565b6040516001600160e01b031990911681526020016103cf565b61071b611dff565b6040516103cf9190614aeb565b6002546105129064ffffffffff1681565b6104de610747366004614b27565b611e30565b6104bd5f80516020615c6e83398151915281565b6104de61076e366004614566565b611ed3565b61071b611f39565b60015461051290600160a01b900464ffffffffff1681565b60025461043190600160781b90046001600160601b031681565b610411611f55565b6107bd611f70565b6040516103cf9190614bba565b60025461051290600160501b900464ffffffffff1681565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00546001600160a01b0316610411565b6104de610820366004614896565b6120c4565b6104de610833366004614c59565b612111565b610484603281565b6104bd5f80516020615cce83398151915281565b6104bd5f80516020615c8e83398151915281565b600854600160601b90046001600160601b0316610431565b61043161088e366004614ca1565b612127565b6104de6108a1366004614d51565b612146565b600454610431906001600160601b031681565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610917573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614d84565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a109190614db1565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a58611801565b6001600160a01b03168152602001826001018054610a7590614dcc565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190614dcc565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b505050505081525091505090565b5f610b03610e4e565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614e0f565b5f61093b30612194565b6060610b76611dff565b51919050565b5f610b89335b5f366123e5565b610b91611801565b6001600160a01b0316336001600160a01b031614610bc95760405163086391f760e31b81523360048201526024015b60405180910390fd5b610bd2826124e3565b90505b919050565b60078160068110610be9575f80fd5b60209182820401919006915054906101000a900460ff1681565b610c0b611801565b6001600160a01b0316336001600160a01b031614610c3e5760405163086391f760e31b8152336004820152602401610bc0565b610c478161253b565b50565b5f610c53610e4e565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b5f610ca16001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610ce5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d099190614db1565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610d60573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614e35565b5f610d8d611f55565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610dd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df59190614e35565b15905090565b610e0433610b82565b610e0c611801565b6001600160a01b0316336001600160a01b031614610e3f5760405163086391f760e31b8152336004820152602401610bc0565b610e4982826125a5565b505050565b5f610e57611dff565b60200151905090565b5f826016610e6e8282612726565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680e545f906001600160a01b031663f4bfe53a610ea86114c7565b8b8d8c8c8c8c6040518863ffffffff1660e01b8152600401610ed09796959493929190614e50565b61024060405180830381865afa158015610eec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f109190614ecd565b60a001519350505b50509695505050505050565b5f610f2d610c8e565b15610fb1576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015610f81573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa8919081019061508e565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b610fe333610b82565b5f81806020019051810190610ff89190615169565b805160208201516040830151600654939450610e4993879392919060ff1661285a565b5f61102533610b82565b61102d611801565b6001600160a01b0316336001600160a01b0316146110605760405163086391f760e31b8152336004820152602401610bc0565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68095460405163303c51d960e11b81526001600160a01b03848116600483015290911690636078a3b2906024015b6020604051808303815f875af11580156110c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190614db1565b5f6110f6614369565b6110ff33610b82565b61110b30878787612a90565b5f805f73__$6efb0c97d21d9331e673f6fcd79a682b24$__6355d166e13089896040518463ffffffff1660e01b8152600401611149939291906151d3565b60e060405180830381865af4158015611164573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611188919061527c565b9250925092505f61119d8c8c8c8c86896130c8565b90506112618d82848b6002600a9054906101000a900464ffffffffff1660085f9054906101000a90046001600160601b031673__$05887d5853069c88bcd4c0a2107db45f29$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611216573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123a91906152af565b8f8b60405160200161124d929190614998565b6040516020818303038152906040526132bd565b95506112d88673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d291906152d5565b8a613367565b506112e3868b613408565b6114b66008600c9054906101000a90046001600160601b03166040518060800160405280846001600160c01b03191681526020018f81526020018e81526020018d64ffffffffff16815250604051602001611375919081516001600160c01b0319168152602080830151908201526040808301519082015260609182015164ffffffffff169181019190915260800190565b60408051601f19818403018152908290526209629960e41b8252601e60048301529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e9064ffffffffff8f169073__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156113f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141991906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015611460573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148491906152d5565b60405180604001604052806014815260200173666c6967687453746174757343616c6c6261636b60601b815250613492565b505050505097509795505050505050565b5f80516020615c6e833981519152546001600160601b031690565b6114eb33610b82565b6114f3611801565b6001600160a01b0316336001600160a01b0316146115265760405163086391f760e31b8152336004820152602401610bc0565b611533858585858561285a565b5050505050565b5f611543611f55565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b91906152f0565b336115ab611f55565b6001600160a01b0316816001600160a01b0316146115e65760405162d1953b60e31b81526001600160a01b0382166004820152602401610bc0565b816001600160a01b03163b5f0361161b576040516361798f2f60e11b81526001600160a01b0383166004820152602401610bc0565b61162482613530565b5050565b611630614387565b5060408051610120810182527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6802546001600160a01b0380821660e084019081526001600160601b03600160a01b938490048116610100860152908452845180860186527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6803548084168252849004821660208083019190915280860191909152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680454808516825285900483168183015285870152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68055480851682528590048316818301526060860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68065480851682528590048316818301526080860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680754808516825285900483168183015260a086015285518087019096527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680854928316865292909104169083015260c081019190915290565b5f805f80516020615c6e83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561186d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118919190614e35565b1561191c576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156118f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119169190614e0f565b91505090565b54600160601b90046001600160a01b0316919050565b61193b33610b82565b611943611801565b6001600160a01b0316336001600160a01b0316146119765760405163086391f760e31b8152336004820152602401610bc0565b5f61197f610c4a565b90505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e291906152f0565b6119ed90600a615402565b905073__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611a1483600f615410565b6040518263ffffffff1660e01b8152600401611a3291815260200190565b602060405180830381865af4158015611a4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a719190614db1565b600280546001600160601b0392909216600160781b026bffffffffffffffffffffffff60781b1990921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611ac68360c8615410565b6040518263ffffffff1660e01b8152600401611ae491815260200190565b602060405180830381865af4158015611aff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b239190614db1565b600380546001600160601b0319166001600160601b039290921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611b69836101f4615410565b6040518263ffffffff1660e01b8152600401611b8791815260200190565b602060405180830381865af4158015611ba2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc69190614db1565b600380546bffffffffffffffffffffffff60601b1916600160601b6001600160601b039384168102919091179182905560405163046e44af60e11b81529104909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015611c4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c739190615427565b611c7e906003615410565b6040518263ffffffff1660e01b8152600401611c9c91815260200190565b602060405180830381865af4158015611cb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cdb9190614db1565b600480546001600160601b0319166001600160601b03929092169190911790555050565b611d07613590565b6001600160a01b0316630b5d931c611d1d6114c7565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015611d5e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d8591908101906154c6565b60e001515f81518110611d9a57611d9a6155a8565b60200260200101516008600c6101000a8154816001600160601b0302191690836001600160601b03160217905550565b5f80516020615cae83398151915280545f9190600160a01b900460ff16611df1575f611916565b638fb3603760e01b91505090565b60408051808201909152606081525f6020820152611e1b610c8e565b15611e285761093b6135be565b61093b611f39565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e9b9190614e0f565b6001600160a01b0316336001600160a01b031614611ecd5760405162f0630960e01b8152336004820152602401610bc0565b50505050565b611edc33610b82565b611ee4611801565b6001600160a01b0316336001600160a01b031614611f175760405163086391f760e31b8152336004820152602401610bc0565b600880546001600160601b0319166001600160601b0392909216919091179055565b60408051808201909152606081525f602082015261093b6135be565b5f80516020615cae833981519152546001600160a01b031690565b60408051610100810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e08101919091525f80516020615cce833981519152604080516101008082018352835460ff808216151584529181048216151560208085019190915262010000820483161515848601526301000000820483166060850152640100000000820490921660808401526001600160601b03650100000000008204811660a0850152600160881b9091041660c083015260018401805484518184028101840190955280855292949360e086019390928301828280156120b657602002820191905f5260205f20905f905b82829054906101000a90046001600160601b03166001600160601b0316815260200190600c0190602082600b010492830192600103820291508084116120735790505b505050505081525050905090565b6120cd33610b82565b6120d5611801565b6001600160a01b0316336001600160a01b0316146121085760405163086391f760e31b8152336004820152602401610bc0565b610c4781613777565b61211a33610b82565b8260156115338282612726565b5f8180602001905181019061213c91906155bc565b5095945050505050565b61214e611801565b6001600160a01b0316336001600160a01b0316146121815760405163086391f760e31b8152336004820152602401610bc0565b61218a33610b82565b61162482826137ec565b5f805f80516020615c6e83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612200573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122249190614e35565b156122505780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610bc0565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156122a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122c69190614e35565b6122ee5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610bc0565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015612340573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123649190614db1565b81546001600160601b0319166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b54906123ab611801565b604080516001600160601b0390931683526001600160a01b0390911660208301520160405180910390a1546001600160601b031692915050565b5f80516020615cae8339815191525f8061241d612400611f55565b873061240f60045f8a8c6155e7565b6124189161560e565b61383d565b91509150816124db5763ffffffff8116156124b857825460ff60a01b1916600160a01b17835561244b611f55565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161247a93929190615644565b5f604051808303815f87803b158015612491575f80fd5b505af11580156124a3573d5f803e3d5ffd5b5050845460ff60a01b19168555506124db9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610bc0565b505050505050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f03546040516301c6b21960e41b81526001600160601b03831660048201525f916001600160a01b031690631c6b2190906024016110ad565b5f80516020615c8e8339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015612593575f80fd5b505af1158015611533573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e6125d7610e4e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561261f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126439190615427565b6040518263ffffffff1660e01b815260040161266191815260200190565b602060405180830381865af415801561267c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a09190614db1565b90505f80516020615c8e833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b15801561270a575f80fd5b505af115801561271c573d5f803e3d5ffd5b5050505092915050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015612776573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061279a9190614e35565b8061282857506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015612802573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128269190614e35565b155b156116245760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610bc0565b5f612863613590565b90505f8073__$6efb0c97d21d9331e673f6fcd79a682b24$__6319b9d5ba8461288a6114c7565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526001600160c01b03198a16604482015260640161010060405180830381865af41580156128eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290f919061570a565b915091508161296b57604080516001600160401b038a1681526001600160c01b0319891660208201527fdad11192f5a8a0528fe4f5bbec7b626311293b772ab7a328a18b6cc8e384e37b910160405180910390a1505050611533565b604051621600c960ea1b81526001600160401b03891660048201526001600160c01b0319881660248201526001600160f81b031987166044820152606481018690525f9073__$6efb0c97d21d9331e673f6fcd79a682b24$__90635803240090608401602060405180830381865af41580156129e9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0d91906152f0565b9050612a1a888287613945565b604080516001600160401b038b1681526001600160c01b03198a1660208201526001600160f81b03198916818301526060810188905260ff8316608082015290517f6088f5fc3484ec0fdf466ecfcea487e5566da0db0bda62b4dbeb3ed86fd3ef0b9181900360a00190a1505050505050505050565b612af981856001600160a01b031663be5c8f446040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af49190614db1565b613bf0565b612b455760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030313a494e56414c49445f5052454d49554d0000006044820152606401610bc0565b612bae81856001600160a01b0316634cdabb166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ba99190614db1565b613c7e565b612bfa5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030323a494e56414c49445f5052454d49554d0000006044820152606401610bc0565b64ffffffffff80841690831611612c675760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4644442d3030333a4152524956414c5f4245464f52455f44455060448201526a4152545552455f54494d4560a81b6064820152608401610bc0565b612d6a828464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63a5798b4e9091886001600160a01b031663972e22eb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cef91906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d5a91906152d5565b64ffffffffff9081169116111590565b612dcb5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030343a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b612f3873__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3991906152d5565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663608a5f8d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ebd91906152d5565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2891906152d5565b64ffffffffff9081169116101590565b612f995760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030353a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b61306773__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612fe3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300791906152d5565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663b7b357ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccb573d5f803e3d5ffd5b611ecd5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3031323a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610bc0565b6040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101829052819073__$6efb0c97d21d9331e673f6fcd79a682b24$__62841bf3613122613590565b61312a6114c7565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604481018c9052606481018b905264ffffffffff808b166084830152891660a482015260c40161012060405180830381865af415801561319e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131c29190615736565b9194509250905081613208575f6131da8a8989613cc8565b905061320581836040516020016131f1919061577d565b604051602081830303815290604052613d16565b50505b61322a613219826080015187613da7565b6004546001600160601b0316613c7e565b6132765760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4644442d3030363a434c55535445525f5249534b0000000000006044820152606401610bc0565b613284816080015186613da7565b6001600160601b03166080820152604051610f189084906132a990849060200161577d565b604051602081830303815290604052613e2b565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680b54604051639a83274160e01b81525f916001600160a01b031690639a8327419061331a908c908c908c908c908c908c908c908c906004016157e7565b6020604051808303815f875af1158015613336573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061335a9190614db1565b9998505050505050505050565b5f5f80516020615cce833981519152600c015460405163d22413e560e01b81526001600160601b03808716600483015264ffffffffff86166024830152841660448201526001600160a01b039091169063d22413e5906064016020604051808303815f875af11580156133dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190614db1565b949350505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051635dfddfdd60e11b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b039091169063bbfbbfba906044015b5f604051808303815f87803b158015613480575f80fd5b505af11580156124db573d5f803e3d5ffd5b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f045460405163f684566360e01b81525f916001600160a01b03169063f6845663906134e790889088908890889060040161585d565b6020604051808303815f875af1158015613503573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061352791906158a8565b95945050505050565b5f80516020615cae83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60408051808201909152606081525f60208201525f6135e56001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015613629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061364d9190614db1565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156136a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ca9190614e35565b1561376f576136d7613590565b6001600160a01b031663f0ea17c36136ed6114c7565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa15801561372e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261375591908101906158c3565b60208101519092506001600160a01b03161561376f575090565b611916613e7c565b61377f611801565b6001600160a01b0316336001600160a01b0316146137b25760405163086391f760e31b8152336004820152602401610bc0565b6137bc600b613f46565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df9060240161257c565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680954604051634698bf1160e01b81526001600160a01b0390911690634698bf11906134699085908590600401615957565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516138ab9190615972565b5f60405180830381855afa9150503d805f81146138e3576040519150601f19603f3d011682016040523d82523d5f602084013e6138e8565b606091505b5091509150811561393a57604081511061391a57808060200190518101906139109190615988565b909450925061393a565b602081511061393a57808060200190518101906139379190614e35565b93505b505094509492505050565b5f61394e613590565b604051631954e65360e21b81526001600160c01b0319861660048201529091505f906001600160a01b03831690636553994c90602401602060405180830381865afa15801561399f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139c39190615427565b90508260ff1681106139d8578260ff166139da565b805b90505f5b818110156124db576040516325fb9d0d60e11b81526001600160c01b031987166004820152602481018290525f906001600160a01b03851690634bf73a1a90604401602060405180830381865afa158015613a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a5f9190614db1565b905060ff8681161015613b695760405163bd7d9d8560e01b81526001600160601b03821660048201525f906001600160a01b0386169063bd7d9d85906024015f60405180830381865afa158015613ab8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613adf91908101906159c8565b6101c001519050613b678273__$6efb0c97d21d9331e673f6fcd79a682b24$__638a37ab63848b6040518363ffffffff1660e01b8152600401613b23929190615b5b565b602060405180830381865af4158015613b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b629190614db1565b613fd7565b505b613bdd8173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613bb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bd891906152d5565b614034565b50613be7816140c5565b506001016139de565b604051631315996960e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063262b32d2906044015b602060405180830381865af4158015613c51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c759190614e35565b90505b92915050565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401613c36565b5f838383604051602001613cf69392919092835264ffffffffff918216602084015216604082015260600190565b6040516020818303038152906040528051906020012090505b9392505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a5460405163c3fa12bb60e01b81525f916001600160a01b03169063c3fa12bb90613d679086908690600401615b7f565b6020604051808303815f875af1158015613d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c7591906152af565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015613e07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c759190614db1565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a54604051638f997f6d60e01b81526001600160a01b0390911690638f997f6d906134699085908590600401615b97565b60408051808201909152606081525f60208201525f5f80516020615c8e83398151915290506040518060400160405280825f018054613eba90614dcc565b80601f0160208091040260200160405190810160405280929190818152602001828054613ee690614dcc565b8015613f315780601f10613f0857610100808354040283529160200191613f31565b820191905f5260205f20905b815481529060010190602001808311613f1457829003601f168201915b50505091835250505f60209091015292915050565b5f613f596001546001600160a01b031690565b6001600160a01b031663d39e604383613f7061153a565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613fb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190614e0f565b5f613ff1838360405180602001604052805f81525061411d565b905061400d83828460405180602001604052805f8152506141b0565b5f61402884838560405180602001604052805f815250614238565b90506124db84826142cd565b5f5f80516020615cce833981519152600c0154604051637baa9a0b60e01b81526001600160601b038516600482015264ffffffffff841660248201526001600160a01b0390911690637baa9a0b906044016020604051808303815f875af11580156140a1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c7591906152d5565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051630155751d60e31b81526001600160601b03831660048201526001600160a01b0390911690630aaba8e89060240161257c565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d546040516374b775eb60e01b81525f916001600160a01b0316906374b775eb9061417090879087908790600401615bbb565b6020604051808303815f875af115801561418c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190615beb565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051636e2cdce760e01b81526001600160a01b0390911690636e2cdce790614205908790879087908790600401615c06565b5f604051808303815f87803b15801561421c575f80fd5b505af115801561422e573d5f803e3d5ffd5b5050505050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051631e2992c760e11b81525f916001600160a01b031690633c53258e9061428d908890889088908890600401615c06565b6020604051808303815f875af11580156142a9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061352791906152d5565b5f805f80516020615cce833981519152600d015460405163137a92a760e01b81526001600160601b038616600482015264ffffffffff851660248201526001600160a01b039091169063137a92a79060440160408051808303815f875af115801561433a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061435e9190615c40565b909590945092505050565b6040518060a001604052806005906020820280368337509192915050565b6040805161012081019091525f60e08201818152610100830191909152819081526020016143c4604080518082019091525f808252602082015290565b81526020016143e2604080518082019091525f808252602082015290565b8152602001614400604080518082019091525f808252602082015290565b815260200161441e604080518082019091525f808252602082015290565b815260200161443c604080518082019091525f808252602082015290565b815260200161445a604080518082019091525f808252602082015290565b905290565b5f6020828403121561446f575f80fd5b81356001600160e01b031981168114613d0f575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516144fc608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152613400610100840182614486565b602081525f613c756020830184614486565b6001600160601b0381168114610c47575f80fd5b5f60208284031215614576575f80fd5b8135613d0f81614552565b5f60208284031215614591575f80fd5b5035919050565b8015158114610c47575f80fd5b5f602082840312156145b5575f80fd5b8135613d0f81614598565b6001600160a01b0381168114610c47575f80fd5b5f80604083850312156145e5575f80fd5b82356145f0816145c0565b9150602083013561460081614552565b809150509250929050565b6001600160c01b031981168114610c47575f80fd5b64ffffffffff81168114610c47575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561466857614668614632565b60405290565b60405161024081016001600160401b038111828210171561466857614668614632565b60405160e081016001600160401b038111828210171561466857614668614632565b60405161010081016001600160401b038111828210171561466857614668614632565b60405161020081016001600160401b038111828210171561466857614668614632565b604051601f8201601f191681016001600160401b038111828210171561472157614721614632565b604052919050565b5f6001600160401b0382111561474157614741614632565b50601f01601f191660200190565b5f82601f83011261475e575f80fd5b813561477161476c82614729565b6146f9565b818152846020838601011115614785575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c087890312156147b6575f80fd5b86356147c181614552565b955060208701356147d18161460b565b945060408701356147e181614620565b935060608701356001600160401b038111156147fb575f80fd5b61480789828a0161474f565b935050608087013561481881614552565b915060a08701356148288161460b565b809150509295509295509295565b6001600160401b0381168114610c47575f80fd5b5f806040838503121561485b575f80fd5b823561486681614836565b915060208301356001600160401b03811115614880575f80fd5b61488c8582860161474f565b9150509250929050565b5f602082840312156148a6575f80fd5b8135613d0f816145c0565b5f805f805f805f610180888a0312156148c8575f80fd5b87356148d3816145c0565b9650602088013595506040880135945060608801356148f181614620565b9350608088013561490181614620565b925060a088013561491181614552565b915060df88018913614921575f80fd5b61492b60c06146f9565b806101808a018b81111561493d575f80fd5b60c08b015b8181101561495a578035845260209384019301614942565b5050809250505092959891949750929550565b805f5b6005811015611ecd5781516001600160601b0316845260209384019390910190600101614970565b6001600160601b038316815260c08101613d0f602083018461496d565b6001600160f81b031981168114610c47575f80fd5b60ff81168114610c47575f80fd5b5f805f805f60a086880312156149ec575f80fd5b85356149f781614836565b94506020860135614a078161460b565b93506040860135614a17816149b5565b9250606086013591506080860135614a2e816149ca565b809150509295509295909350565b80516001600160a01b031682526020908101516001600160601b0316910152565b5f6101c082019050614a70828451614a3c565b6020830151614a826040840182614a3c565b506040830151614a956080840182614a3c565b506060830151614aa860c0840182614a3c565b506080830151614abc610100840182614a3c565b5060a0830151614ad0610140840182614a3c565b5060c0830151614ae4610180840182614a3c565b5092915050565b602081525f825160406020840152614b066060840182614486565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f8060808587031215614b3a575f80fd5b8435614b45816145c0565b93506020850135614b55816145c0565b9250604085013591506060850135614b6c816145c0565b939692955090935050565b5f8151808452602084019350602083015f5b82811015614bb05781516001600160601b0316865260209586019590910190600101614b89565b5093949350505050565b602081528151151560208201526020820151151560408201525f6040830151614be7606084018215159052565b50606083015160ff8116608084015250608083015160ff811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e083015161010080840152613400610120840182614b77565b61ffff81168114610c47575f80fd5b5f805f60608486031215614c6b575f80fd5b8335614c7681614552565b92506020840135614c8681614c4a565b91506040840135614c9681614552565b809150509250925092565b5f805f8060808587031215614cb4575f80fd5b8435614cbf81614552565b93506020850135614ccf8161460b565b92506040850135614cdf81614620565b915060608501356001600160401b03811115614cf9575f80fd5b614d058782880161474f565b91505092959194509250565b5f60408284031215614d21575f80fd5b614d29614646565b90508135614d36816145c0565b81526020820135614d4681614552565b602082015292915050565b5f8060808385031215614d62575f80fd5b614d6c8484614d11565b9150614d7b8460408501614d11565b90509250929050565b5f60208284031215614d94575f80fd5b815162ffffff81168114613d0f575f80fd5b8051610bd581614552565b5f60208284031215614dc1575f80fd5b8151613d0f81614552565b600181811c90821680614de057607f821691505b602082108103614dfe57634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610bd5816145c0565b5f60208284031215614e1f575f80fd5b8151613d0f816145c0565b8051610bd581614598565b5f60208284031215614e45575f80fd5b8151613d0f81614598565b6001600160601b03881681526001600160401b0360c01b871660208201526001600160601b038616604082015264ffffffffff8516606082015260e060808201525f614e9f60e0830186614486565b6001600160601b039490941660a0830152506001600160c01b03199190911660c09091015295945050505050565b5f610240828403128015614edf575f80fd5b50614ee861466e565b614ef183614da6565b8152614eff60208401614da6565b6020820152614f1060408401614da6565b6040820152614f2160608401614da6565b6060820152614f3260808401614da6565b6080820152614f4360a08401614da6565b60a0820152614f5460c08401614da6565b60c0820152614f6560e08401614da6565b60e0820152614f776101008401614da6565b610100820152614f8a6101208401614da6565b610120820152614f9d6101408401614da6565b610140820152614fb06101608401614da6565b610160820152614fc36101808401614da6565b610180820152614fd66101a08401614da6565b6101a0820152614fe96101c08401614da6565b6101c0820152614ffc6101e08401614da6565b6101e082015261500f6102008401614da6565b6102008201526150226102208401614da6565b6102208201529392505050565b8051610bd5816149ca565b5f61504761476c84614729565b905082815283838301111561505a575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261507f575f80fd5b613c758383516020850161503a565b5f6020828403121561509e575f80fd5b81516001600160401b038111156150b3575f80fd5b820160e081850312156150c4575f80fd5b6150cc614691565b6150d582614da6565b81526150e360208301614da6565b60208201526150f46040830161502f565b604082015261510560608301614e2a565b606082015261511660808301614e04565b608082015261512760a08301614e04565b60a082015260c08201516001600160401b03811115615144575f80fd5b61515086828501615070565b60c083015250949350505050565b8051610bd58161460b565b5f606082840312801561517a575f80fd5b50604051606081016001600160401b038111828210171561519d5761519d614632565b60405282516151ab8161460b565b815260208301516151bb816149b5565b60208201526040928301519281019290925250919050565b6001600160a01b03841681526001600160601b0383166020820152610100810160408201835f5b60068110156152195781518352602092830192909101906001016151fa565b505050949350505050565b5f82601f830112615233575f80fd5b61523d60a06146f9565b8060a084018581111561524e575f80fd5b845b8181101561527157805161526381614552565b845260209384019301615250565b509095945050505050565b5f805f60e0848603121561528e575f80fd5b8351925061529f8560208601615224565b915060c0840151614c9681614552565b5f602082840312156152bf575f80fd5b8151613d0f8161460b565b8051610bd581614620565b5f602082840312156152e5575f80fd5b8151613d0f81614620565b5f60208284031215615300575f80fd5b8151613d0f816149ca565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561535a5780850481111561533e5761533e61530b565b600184161561534c57908102905b60019390931c928002615323565b935093915050565b5f8261537057506001613c78565b8161537c57505f613c78565b8160018114615392576002811461539c576153b8565b6001915050613c78565b60ff8411156153ad576153ad61530b565b50506001821b613c78565b5060208310610133831016604e8410600b84101617156153db575081810a613c78565b6153e75f19848461531f565b805f19048211156153fa576153fa61530b565b029392505050565b5f613c7560ff841683615362565b8082028115828204841417613c7857613c7861530b565b5f60208284031215615437575f80fd5b5051919050565b5f82601f83011261544d575f80fd5b81516001600160401b0381111561546657615466614632565b8060051b615476602082016146f9565b91825260208185018101929081019086841115615491575f80fd5b6020860192505b838310156154bc5782516154ab81614552565b825260209283019290910190615498565b9695505050505050565b5f602082840312156154d6575f80fd5b81516001600160401b038111156154eb575f80fd5b820161010081850312156154fd575f80fd5b6155056146b3565b61550e82614e2a565b815261551c60208301614e2a565b602082015261552d60408301614e2a565b604082015261553e6060830161502f565b606082015261554f6080830161502f565b608082015261556060a08301614da6565b60a082015261557160c08301614da6565b60c082015260e08201516001600160401b0381111561558e575f80fd5b61559a8682850161543e565b60e083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f8060c083850312156155cd575f80fd5b82516155d881614552565b9150614d7b8460208501615224565b5f80858511156155f5575f80fd5b83861115615601575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614ae4576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60e08284031215615693575f80fd5b61569b614691565b825181526020808401519082015260408301519091506156ba81614620565b604082015260608201516156cd81614620565b606082015260808201516156e081614552565b608082015260a08201516156f3816149b5565b60a082015260c09182015191810191909152919050565b5f80610100838503121561571c575f80fd5b825161572781614598565b9150614d7b8460208501615683565b5f805f6101208486031215615749575f80fd5b83516157548161460b565b602085015190935061576581614598565b91506157748560408601615683565b90509250925092565b5f60e082019050825182526020830151602083015264ffffffffff604084015116604083015264ffffffffff60608401511660608301526001600160601b03608084015116608083015260ff60f81b60a08401511660a083015260c083015160c083015292915050565b6001600160a01b03891681526001600160c01b031988811660208301526001600160601b038881166040840152878116606084015264ffffffffff87166080840152851660a0830152831660c082015261010060e082018190525f9061584f90830184614486565b9a9950505050505050505050565b6001600160601b0385168152608060208201525f61587e6080830186614486565b64ffffffffff85166040840152828103606084015261589d8185614486565b979650505050505050565b5f602082840312156158b8575f80fd5b8151613d0f81614836565b5f602082840312156158d3575f80fd5b81516001600160401b038111156158e8575f80fd5b8201604081850312156158f9575f80fd5b615901614646565b81516001600160401b03811115615916575f80fd5b8201601f81018613615926575f80fd5b6159358682516020840161503a565b82525060208201519150615948826145c0565b60208101919091529392505050565b608081016159658285614a3c565b613d0f6040830184614a3c565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615999575f80fd5b82516159a481614598565b602084015190925063ffffffff81168114614600575f80fd5b8051610bd581614c4a565b5f602082840312156159d8575f80fd5b81516001600160401b038111156159ed575f80fd5b820161020081850312156159ff575f80fd5b615a076146d6565b615a1082614da6565b8152615a1e60208301614da6565b6020820152615a2f6040830161515e565b6040820152615a4060608301614da6565b6060820152615a5160808301614da6565b6080820152615a6260a0830161515e565b60a0820152615a7360c083016159bd565b60c0820152615a8460e083016159bd565b60e0820152615a966101008301614da6565b610100820152615aa96101208301614da6565b610120820152615abc61014083016152ca565b610140820152615acf61016083016152ca565b610160820152615ae261018083016152ca565b610180820152615af56101a083016152ca565b6101a08201526101c08201516001600160401b03811115615b14575f80fd5b615b2086828501615070565b6101c0830152506101e08201516001600160401b03811115615b40575f80fd5b615b4c86828501615070565b6101e083015250949350505050565b604081525f615b6d6040830185614486565b905060ff831660208301529392505050565b828152604060208201525f6134006040830184614486565b6001600160401b0360c01b83168152604060208201525f6134006040830184614486565b6001600160601b03841681526001600160601b0383166020820152606060408201525f6135276060830184614486565b5f60208284031215615bfb575f80fd5b8151613d0f81614c4a565b6001600160601b038516815261ffff841660208201526001600160601b0383166040820152608060608201525f6154bc6080830184614486565b5f8060408385031215615c51575f80fd5b8251615c5c81614552565b60208401519092506146008161455256fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800a26469706673582212206f4e61d5ff8133dfe8b9ce4610f62f6a73e553e4f589dc2e20b9c4653f141eb664736f6c634300081a0033",
1805
+ "linkReferences": {
1806
+ "contracts/examples/flight/FlightLib.sol": {
1807
+ "FlightLib": [
1808
+ {
1809
+ "length": 20,
1810
+ "start": 11571
1811
+ },
1812
+ {
1813
+ "length": 20,
1814
+ "start": 17548
1815
+ },
1816
+ {
1817
+ "length": 20,
1818
+ "start": 17876
1819
+ },
1820
+ {
1821
+ "length": 20,
1822
+ "start": 19750
1823
+ },
1824
+ {
1825
+ "length": 20,
1826
+ "start": 22287
1827
+ }
1828
+ ]
1829
+ },
1830
+ "contracts/shared/ContractLib.sol": {
1831
+ "ContractLib": [
1832
+ {
1833
+ "length": 20,
1834
+ "start": 4780
1835
+ },
1836
+ {
1837
+ "length": 20,
1838
+ "start": 5362
1839
+ }
1840
+ ]
1841
+ },
1842
+ "contracts/type/Amount.sol": {
1843
+ "AmountLib": [
1844
+ {
1845
+ "length": 20,
1846
+ "start": 13844
1847
+ },
1848
+ {
1849
+ "length": 20,
1850
+ "start": 14022
1851
+ },
1852
+ {
1853
+ "length": 20,
1854
+ "start": 14184
1855
+ },
1856
+ {
1857
+ "length": 20,
1858
+ "start": 14386
1859
+ },
1860
+ {
1861
+ "length": 20,
1862
+ "start": 16843
1863
+ },
1864
+ {
1865
+ "length": 20,
1866
+ "start": 22587
1867
+ },
1868
+ {
1869
+ "length": 20,
1870
+ "start": 22729
1871
+ },
1872
+ {
1873
+ "length": 20,
1874
+ "start": 23026
1875
+ }
1876
+ ]
1877
+ },
1878
+ "contracts/type/Fee.sol": {
1879
+ "FeeLib": [
1880
+ {
1881
+ "length": 20,
1882
+ "start": 1459
1883
+ },
1884
+ {
1885
+ "length": 20,
1886
+ "start": 1570
1887
+ },
1888
+ {
1889
+ "length": 20,
1890
+ "start": 1681
1891
+ },
1892
+ {
1893
+ "length": 20,
1894
+ "start": 1792
1895
+ },
1896
+ {
1897
+ "length": 20,
1898
+ "start": 1903
1899
+ },
1900
+ {
1901
+ "length": 20,
1902
+ "start": 2014
1903
+ },
1904
+ {
1905
+ "length": 20,
1906
+ "start": 2125
1907
+ }
1908
+ ]
1909
+ },
1910
+ "contracts/type/NftId.sol": {
1911
+ "NftIdLib": [
1912
+ {
1913
+ "length": 20,
1914
+ "start": 1160
1915
+ },
1916
+ {
1917
+ "length": 20,
1918
+ "start": 1281
1919
+ },
1920
+ {
1921
+ "length": 20,
1922
+ "start": 9674
1923
+ },
1924
+ {
1925
+ "length": 20,
1926
+ "start": 10571
1927
+ },
1928
+ {
1929
+ "length": 20,
1930
+ "start": 13400
1931
+ },
1932
+ {
1933
+ "length": 20,
1934
+ "start": 15851
1935
+ },
1936
+ {
1937
+ "length": 20,
1938
+ "start": 21137
1939
+ }
1940
+ ]
1941
+ },
1942
+ "contracts/type/ObjectType.sol": {
1943
+ "ObjectTypeLib": [
1944
+ {
1945
+ "length": 20,
1946
+ "start": 17249
1947
+ }
1948
+ ]
1949
+ },
1950
+ "contracts/type/Referral.sol": {
1951
+ "ReferralLib": [
1952
+ {
1953
+ "length": 20,
1954
+ "start": 11764
1955
+ }
1956
+ ]
1957
+ },
1958
+ "contracts/type/Seconds.sol": {
1959
+ "SecondsLib": [
1960
+ {
1961
+ "length": 20,
1962
+ "start": 27
1963
+ },
1964
+ {
1965
+ "length": 20,
1966
+ "start": 175
1967
+ },
1968
+ {
1969
+ "length": 20,
1970
+ "start": 326
1971
+ },
1972
+ {
1973
+ "length": 20,
1974
+ "start": 467
1975
+ },
1976
+ {
1977
+ "length": 20,
1978
+ "start": 621
1979
+ },
1980
+ {
1981
+ "length": 20,
1982
+ "start": 12257
1983
+ }
1984
+ ]
1985
+ },
1986
+ "contracts/type/Timestamp.sol": {
1987
+ "TimestampLib": [
1988
+ {
1989
+ "length": 20,
1990
+ "start": 11916
1991
+ },
1992
+ {
1993
+ "length": 20,
1994
+ "start": 12220
1995
+ },
1996
+ {
1997
+ "length": 20,
1998
+ "start": 18584
1999
+ },
2000
+ {
2001
+ "length": 20,
2002
+ "start": 18931
2003
+ },
2004
+ {
2005
+ "length": 20,
2006
+ "start": 19046
2007
+ },
2008
+ {
2009
+ "length": 20,
2010
+ "start": 19393
2011
+ },
2012
+ {
2013
+ "length": 20,
2014
+ "start": 19508
2015
+ },
2016
+ {
2017
+ "length": 20,
2018
+ "start": 22418
2019
+ }
2020
+ ]
2021
+ },
2022
+ "contracts/type/Version.sol": {
2023
+ "VersionLib": [
2024
+ {
2025
+ "length": 20,
2026
+ "start": 9474
2027
+ }
2028
+ ]
2029
+ }
2030
+ },
2031
+ "deployedLinkReferences": {
2032
+ "contracts/examples/flight/FlightLib.sol": {
2033
+ "FlightLib": [
2034
+ {
2035
+ "length": 20,
2036
+ "start": 4368
2037
+ },
2038
+ {
2039
+ "length": 20,
2040
+ "start": 10345
2041
+ },
2042
+ {
2043
+ "length": 20,
2044
+ "start": 10673
2045
+ },
2046
+ {
2047
+ "length": 20,
2048
+ "start": 12547
2049
+ },
2050
+ {
2051
+ "length": 20,
2052
+ "start": 15084
2053
+ }
2054
+ ]
2055
+ },
2056
+ "contracts/type/Amount.sol": {
2057
+ "AmountLib": [
2058
+ {
2059
+ "length": 20,
2060
+ "start": 6641
2061
+ },
2062
+ {
2063
+ "length": 20,
2064
+ "start": 6819
2065
+ },
2066
+ {
2067
+ "length": 20,
2068
+ "start": 6981
2069
+ },
2070
+ {
2071
+ "length": 20,
2072
+ "start": 7183
2073
+ },
2074
+ {
2075
+ "length": 20,
2076
+ "start": 9640
2077
+ },
2078
+ {
2079
+ "length": 20,
2080
+ "start": 15384
2081
+ },
2082
+ {
2083
+ "length": 20,
2084
+ "start": 15526
2085
+ },
2086
+ {
2087
+ "length": 20,
2088
+ "start": 15823
2089
+ }
2090
+ ]
2091
+ },
2092
+ "contracts/type/NftId.sol": {
2093
+ "NftIdLib": [
2094
+ {
2095
+ "length": 20,
2096
+ "start": 2471
2097
+ },
2098
+ {
2099
+ "length": 20,
2100
+ "start": 3368
2101
+ },
2102
+ {
2103
+ "length": 20,
2104
+ "start": 6197
2105
+ },
2106
+ {
2107
+ "length": 20,
2108
+ "start": 8648
2109
+ },
2110
+ {
2111
+ "length": 20,
2112
+ "start": 13934
2113
+ }
2114
+ ]
2115
+ },
2116
+ "contracts/type/ObjectType.sol": {
2117
+ "ObjectTypeLib": [
2118
+ {
2119
+ "length": 20,
2120
+ "start": 10046
2121
+ }
2122
+ ]
2123
+ },
2124
+ "contracts/type/Referral.sol": {
2125
+ "ReferralLib": [
2126
+ {
2127
+ "length": 20,
2128
+ "start": 4561
2129
+ }
2130
+ ]
2131
+ },
2132
+ "contracts/type/Seconds.sol": {
2133
+ "SecondsLib": [
2134
+ {
2135
+ "length": 20,
2136
+ "start": 5054
2137
+ }
2138
+ ]
2139
+ },
2140
+ "contracts/type/Timestamp.sol": {
2141
+ "TimestampLib": [
2142
+ {
2143
+ "length": 20,
2144
+ "start": 4713
2145
+ },
2146
+ {
2147
+ "length": 20,
2148
+ "start": 5017
2149
+ },
2150
+ {
2151
+ "length": 20,
2152
+ "start": 11381
2153
+ },
2154
+ {
2155
+ "length": 20,
2156
+ "start": 11728
2157
+ },
2158
+ {
2159
+ "length": 20,
2160
+ "start": 11843
2161
+ },
2162
+ {
2163
+ "length": 20,
2164
+ "start": 12190
2165
+ },
2166
+ {
2167
+ "length": 20,
2168
+ "start": 12305
2169
+ },
2170
+ {
2171
+ "length": 20,
2172
+ "start": 15215
2173
+ }
2174
+ ]
2175
+ },
2176
+ "contracts/type/Version.sol": {
2177
+ "VersionLib": [
2178
+ {
2179
+ "length": 20,
2180
+ "start": 2271
2181
+ }
2182
+ ]
2183
+ }
2184
+ }
2185
+ }