@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-cf22d7b-845

Sign up to get free protection for your applications and to get access to all the features.
Files changed (525) hide show
  1. package/README.md +8 -84
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +322 -252
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +249 -174
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +266 -91
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2127
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +219 -78
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +456 -2872
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +601 -422
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +287 -280
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -78
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +278 -221
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +480 -213
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +527 -284
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +124 -98
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +266 -142
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +408 -219
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +75 -72
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/{components → product}/Product.sol/Product.json +433 -282
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +188 -19
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -85
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +425 -34
  108. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  109. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +344 -106
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -54
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  120. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  122. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  130. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  131. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  132. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  134. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  136. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +96 -122
  138. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  139. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  140. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  142. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  144. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  145. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  146. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  148. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  150. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  152. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  154. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  155. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  156. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  158. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  160. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  161. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  162. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IService.sol/IService.json +91 -27
  164. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  166. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  167. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  168. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  169. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  170. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  171. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  172. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  173. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  174. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  175. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  176. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  177. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  178. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  179. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  181. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  183. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  184. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  185. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  186. package/artifacts/contracts/shared/Service.sol/Service.json +99 -30
  187. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  188. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  189. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  191. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  192. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  193. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  194. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  195. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  196. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  197. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  198. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  200. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  201. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  202. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  204. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  205. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  206. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  208. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  210. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  211. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  212. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  213. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  214. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  216. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  217. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  218. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  220. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  221. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  222. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  224. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  225. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  226. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  228. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  230. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  232. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  234. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  236. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  238. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  240. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  242. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  244. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  246. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  248. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  250. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  252. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  254. package/contracts/{components → distribution}/Distribution.sol +49 -75
  255. package/contracts/distribution/DistributionService.sol +298 -0
  256. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  257. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -37
  258. package/contracts/{instance/service → distribution}/IDistributionService.sol +25 -25
  259. package/contracts/instance/BundleManager.sol +15 -14
  260. package/contracts/instance/IInstance.sol +53 -66
  261. package/contracts/instance/IInstanceService.sol +40 -18
  262. package/contracts/instance/Instance.sol +139 -195
  263. package/contracts/instance/InstanceAdmin.sol +331 -0
  264. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  265. package/contracts/instance/InstanceReader.sol +135 -63
  266. package/contracts/instance/InstanceService.sol +226 -340
  267. package/contracts/instance/InstanceServiceManager.sol +11 -21
  268. package/contracts/instance/InstanceStore.sol +260 -0
  269. package/contracts/instance/base/BalanceStore.sol +118 -0
  270. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  271. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  272. package/contracts/instance/module/IAccess.sol +19 -20
  273. package/contracts/instance/module/IBundle.sol +8 -8
  274. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -20
  275. package/contracts/instance/module/IDistribution.sol +7 -5
  276. package/contracts/instance/module/IPolicy.sol +53 -16
  277. package/contracts/instance/module/IRisk.sol +1 -1
  278. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  279. package/contracts/pool/BundleService.sol +296 -0
  280. package/contracts/pool/BundleServiceManager.sol +42 -0
  281. package/contracts/pool/IBundleService.sol +106 -0
  282. package/contracts/pool/IPoolComponent.sol +112 -0
  283. package/contracts/pool/IPoolService.sol +150 -0
  284. package/contracts/pool/Pool.sol +299 -0
  285. package/contracts/pool/PoolService.sol +453 -0
  286. package/contracts/pool/PoolServiceManager.sol +42 -0
  287. package/contracts/product/ApplicationService.sol +254 -0
  288. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  289. package/contracts/product/ClaimService.sol +442 -0
  290. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  291. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  292. package/contracts/product/IClaimService.sol +93 -0
  293. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  294. package/contracts/product/IPricingService.sol +39 -0
  295. package/contracts/product/IProductComponent.sol +42 -0
  296. package/contracts/product/IProductService.sol +33 -0
  297. package/contracts/product/PolicyService.sol +475 -0
  298. package/contracts/product/PolicyServiceManager.sol +42 -0
  299. package/contracts/product/PricingService.sol +301 -0
  300. package/contracts/product/PricingServiceManager.sol +42 -0
  301. package/contracts/product/Product.sol +377 -0
  302. package/contracts/product/ProductService.sol +124 -0
  303. package/contracts/product/ProductServiceManager.sol +42 -0
  304. package/contracts/registry/ChainNft.sol +16 -1
  305. package/contracts/registry/IRegistry.sol +46 -21
  306. package/contracts/registry/IRegistryService.sol +39 -37
  307. package/contracts/registry/ITransferInterceptor.sol +1 -0
  308. package/contracts/registry/Registry.sol +208 -96
  309. package/contracts/registry/RegistryAdmin.sol +237 -0
  310. package/contracts/registry/RegistryService.sol +69 -86
  311. package/contracts/registry/RegistryServiceManager.sol +21 -25
  312. package/contracts/registry/ReleaseManager.sol +458 -181
  313. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  314. package/contracts/registry/TokenRegistry.sol +261 -62
  315. package/contracts/shared/AccessManagerCustom.sol +736 -0
  316. package/contracts/shared/AccessManagerExtended.sol +470 -0
  317. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  318. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  319. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  320. package/contracts/shared/Component.sol +278 -0
  321. package/contracts/shared/ComponentService.sol +596 -0
  322. package/contracts/shared/ComponentServiceManager.sol +35 -0
  323. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  324. package/contracts/shared/ERC165.sol +1 -1
  325. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  326. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  327. package/contracts/shared/IComponent.sol +70 -0
  328. package/contracts/shared/IComponentService.sol +91 -0
  329. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  330. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  331. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  332. package/contracts/shared/INftOwnable.sol +2 -2
  333. package/contracts/shared/IPolicyHolder.sol +29 -10
  334. package/contracts/shared/IRegistryLinked.sol +0 -1
  335. package/contracts/shared/IService.sol +7 -7
  336. package/contracts/shared/IVersionable.sol +1 -1
  337. package/contracts/shared/InitializableCustom.sol +177 -0
  338. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  339. package/contracts/shared/KeyValueStore.sol +127 -0
  340. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  341. package/contracts/shared/NftIdSetManager.sol +65 -0
  342. package/contracts/shared/NftOwnable.sol +3 -16
  343. package/contracts/shared/PolicyHolder.sol +40 -19
  344. package/contracts/shared/ProxyManager.sol +34 -4
  345. package/contracts/shared/Registerable.sol +15 -14
  346. package/contracts/shared/RegistryLinked.sol +0 -5
  347. package/contracts/shared/Service.sol +29 -10
  348. package/contracts/shared/TokenHandler.sol +37 -6
  349. package/contracts/shared/Versionable.sol +1 -1
  350. package/contracts/staking/IStaking.sol +168 -0
  351. package/contracts/staking/IStakingService.sol +149 -0
  352. package/contracts/staking/StakeManagerLib.sol +179 -0
  353. package/contracts/staking/Staking.sol +551 -0
  354. package/contracts/staking/StakingManager.sol +54 -0
  355. package/contracts/staking/StakingReader.sol +187 -0
  356. package/contracts/staking/StakingService.sol +406 -0
  357. package/contracts/staking/StakingServiceManager.sol +45 -0
  358. package/contracts/staking/StakingStore.sol +572 -0
  359. package/contracts/staking/TargetManagerLib.sol +207 -0
  360. package/contracts/{types → type}/AddressSet.sol +1 -1
  361. package/contracts/type/Amount.sol +128 -0
  362. package/contracts/{types → type}/Blocknumber.sol +21 -3
  363. package/contracts/{types → type}/ClaimId.sol +25 -2
  364. package/contracts/{types → type}/Fee.sol +33 -23
  365. package/contracts/{types → type}/NftId.sol +21 -15
  366. package/contracts/{types → type}/NftIdSet.sol +2 -2
  367. package/contracts/{types → type}/ObjectType.sol +20 -7
  368. package/contracts/{types → type}/PayoutId.sol +33 -5
  369. package/contracts/{types → type}/Referral.sol +5 -1
  370. package/contracts/{types → type}/RiskId.sol +1 -1
  371. package/contracts/{types → type}/RoleId.sol +66 -13
  372. package/contracts/type/Seconds.sol +81 -0
  373. package/contracts/{types → type}/StateId.sol +24 -6
  374. package/contracts/{types → type}/Timestamp.sol +18 -13
  375. package/contracts/{types → type}/UFixed.sol +1 -0
  376. package/contracts/{types → type}/Version.sol +2 -1
  377. package/package.json +3 -3
  378. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  379. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  380. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  381. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  382. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  383. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  384. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  385. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  386. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  387. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  388. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  389. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  390. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  391. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  392. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  393. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  394. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  395. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  396. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  397. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  398. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  399. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  400. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  401. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -869
  403. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  405. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
  407. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  409. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  411. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  413. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1254
  415. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -753
  417. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  418. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  420. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  421. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  422. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  424. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -347
  425. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  426. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1120
  428. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  429. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  430. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  431. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  432. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  433. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  434. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  435. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  436. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  437. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  438. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  439. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  440. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  441. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  442. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  444. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  446. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  447. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  448. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  449. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  450. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  451. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  452. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  453. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  454. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  455. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  456. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  457. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  458. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  459. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  460. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  461. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  462. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  463. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  465. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  468. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  469. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  471. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  472. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  474. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  477. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  478. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  479. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  481. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  482. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  484. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  485. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  486. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  487. package/contracts/components/Component.sol +0 -241
  488. package/contracts/components/IComponent.sol +0 -54
  489. package/contracts/components/IPoolComponent.sol +0 -87
  490. package/contracts/components/IProductComponent.sol +0 -39
  491. package/contracts/components/Pool.sol +0 -254
  492. package/contracts/components/Product.sol +0 -285
  493. package/contracts/instance/InstanceAccessManager.sol +0 -297
  494. package/contracts/instance/base/ComponentService.sol +0 -134
  495. package/contracts/instance/base/KeyValueStore.sol +0 -172
  496. package/contracts/instance/module/ITreasury.sol +0 -23
  497. package/contracts/instance/service/ApplicationService.sol +0 -268
  498. package/contracts/instance/service/BundleService.sol +0 -298
  499. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  500. package/contracts/instance/service/ClaimService.sol +0 -151
  501. package/contracts/instance/service/DistributionService.sol +0 -366
  502. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  503. package/contracts/instance/service/IBundleService.sol +0 -54
  504. package/contracts/instance/service/IClaimService.sol +0 -61
  505. package/contracts/instance/service/IPoolService.sol +0 -20
  506. package/contracts/instance/service/IProductService.sol +0 -40
  507. package/contracts/instance/service/PolicyService.sol +0 -476
  508. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  509. package/contracts/instance/service/PoolService.sol +0 -109
  510. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  511. package/contracts/instance/service/ProductService.sol +0 -233
  512. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  513. package/contracts/registry/RegistryAccessManager.sol +0 -216
  514. package/contracts/shared/ContractDeployerLib.sol +0 -72
  515. package/contracts/test/TestFee.sol +0 -25
  516. package/contracts/test/TestRegisterable.sol +0 -18
  517. package/contracts/test/TestRoleId.sol +0 -14
  518. package/contracts/test/TestService.sol +0 -25
  519. package/contracts/test/TestVersion.sol +0 -44
  520. package/contracts/test/TestVersionable.sol +0 -17
  521. package/contracts/test/Usdc.sol +0 -26
  522. package/contracts/types/ChainId.sol +0 -38
  523. package/contracts/types/NumberId.sol +0 -52
  524. /package/contracts/{types → type}/DistributorType.sol +0 -0
  525. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,1806 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AccessManagerExtendedWithDisable",
4
+ "sourceName": "contracts/shared/AccessManagerExtendedWithDisable.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes32",
10
+ "name": "operationId",
11
+ "type": "bytes32"
12
+ }
13
+ ],
14
+ "name": "AccessManagerAlreadyScheduled",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "AccessManagerBadConfirmation",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AccessManagerDisabled",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "bytes32",
31
+ "name": "operationId",
32
+ "type": "bytes32"
33
+ }
34
+ ],
35
+ "name": "AccessManagerExpired",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "initialAdmin",
43
+ "type": "address"
44
+ }
45
+ ],
46
+ "name": "AccessManagerInvalidInitialAdmin",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "address",
53
+ "name": "account",
54
+ "type": "address"
55
+ }
56
+ ],
57
+ "name": "AccessManagerLockedAccount",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "uint64",
64
+ "name": "roleId",
65
+ "type": "uint64"
66
+ }
67
+ ],
68
+ "name": "AccessManagerLockedRole",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "bytes32",
75
+ "name": "operationId",
76
+ "type": "bytes32"
77
+ }
78
+ ],
79
+ "name": "AccessManagerNotReady",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "bytes32",
86
+ "name": "operationId",
87
+ "type": "bytes32"
88
+ }
89
+ ],
90
+ "name": "AccessManagerNotScheduled",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "uint64",
97
+ "name": "roleId",
98
+ "type": "uint64"
99
+ }
100
+ ],
101
+ "name": "AccessManagerRoleIdAlreadyExists",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "uint64",
108
+ "name": "roleId",
109
+ "type": "uint64"
110
+ }
111
+ ],
112
+ "name": "AccessManagerRoleIdNotExists",
113
+ "type": "error"
114
+ },
115
+ {
116
+ "inputs": [
117
+ {
118
+ "internalType": "uint64",
119
+ "name": "roleId",
120
+ "type": "uint64"
121
+ }
122
+ ],
123
+ "name": "AccessManagerRoleIdTooBig",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "AccessManagerRoleIdZero",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "uint64",
135
+ "name": "newRoleId",
136
+ "type": "uint64"
137
+ },
138
+ {
139
+ "internalType": "uint64",
140
+ "name": "existingRoleId",
141
+ "type": "uint64"
142
+ },
143
+ {
144
+ "internalType": "string",
145
+ "name": "duplicateName",
146
+ "type": "string"
147
+ }
148
+ ],
149
+ "name": "AccessManagerRoleNameAlreadyExists",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "uint64",
156
+ "name": "roleId",
157
+ "type": "uint64"
158
+ }
159
+ ],
160
+ "name": "AccessManagerRoleNameEmpty",
161
+ "type": "error"
162
+ },
163
+ {
164
+ "inputs": [],
165
+ "name": "AccessManagerTargetAddressZero",
166
+ "type": "error"
167
+ },
168
+ {
169
+ "inputs": [
170
+ {
171
+ "internalType": "address",
172
+ "name": "target",
173
+ "type": "address"
174
+ }
175
+ ],
176
+ "name": "AccessManagerTargetAlreadyExists",
177
+ "type": "error"
178
+ },
179
+ {
180
+ "inputs": [
181
+ {
182
+ "internalType": "address",
183
+ "name": "target",
184
+ "type": "address"
185
+ },
186
+ {
187
+ "internalType": "address",
188
+ "name": "targetAuthority",
189
+ "type": "address"
190
+ }
191
+ ],
192
+ "name": "AccessManagerTargetAuthorityInvalid",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [
197
+ {
198
+ "internalType": "address",
199
+ "name": "newTarget",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "internalType": "address",
204
+ "name": "existingTarget",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "internalType": "string",
209
+ "name": "duplicateName",
210
+ "type": "string"
211
+ }
212
+ ],
213
+ "name": "AccessManagerTargetNameAlreadyExists",
214
+ "type": "error"
215
+ },
216
+ {
217
+ "inputs": [
218
+ {
219
+ "internalType": "address",
220
+ "name": "target",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "name": "AccessManagerTargetNameEmpty",
225
+ "type": "error"
226
+ },
227
+ {
228
+ "inputs": [
229
+ {
230
+ "internalType": "address",
231
+ "name": "target",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "name": "AccessManagerTargetNotExists",
236
+ "type": "error"
237
+ },
238
+ {
239
+ "inputs": [
240
+ {
241
+ "internalType": "address",
242
+ "name": "msgsender",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "internalType": "uint64",
247
+ "name": "roleId",
248
+ "type": "uint64"
249
+ }
250
+ ],
251
+ "name": "AccessManagerUnauthorizedAccount",
252
+ "type": "error"
253
+ },
254
+ {
255
+ "inputs": [
256
+ {
257
+ "internalType": "address",
258
+ "name": "caller",
259
+ "type": "address"
260
+ },
261
+ {
262
+ "internalType": "address",
263
+ "name": "target",
264
+ "type": "address"
265
+ },
266
+ {
267
+ "internalType": "bytes4",
268
+ "name": "selector",
269
+ "type": "bytes4"
270
+ }
271
+ ],
272
+ "name": "AccessManagerUnauthorizedCall",
273
+ "type": "error"
274
+ },
275
+ {
276
+ "inputs": [
277
+ {
278
+ "internalType": "address",
279
+ "name": "msgsender",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "internalType": "address",
284
+ "name": "caller",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "internalType": "address",
289
+ "name": "target",
290
+ "type": "address"
291
+ },
292
+ {
293
+ "internalType": "bytes4",
294
+ "name": "selector",
295
+ "type": "bytes4"
296
+ }
297
+ ],
298
+ "name": "AccessManagerUnauthorizedCancel",
299
+ "type": "error"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "target",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "AccessManagerUnauthorizedConsume",
310
+ "type": "error"
311
+ },
312
+ {
313
+ "inputs": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "target",
317
+ "type": "address"
318
+ }
319
+ ],
320
+ "name": "AddressEmptyCode",
321
+ "type": "error"
322
+ },
323
+ {
324
+ "inputs": [
325
+ {
326
+ "internalType": "address",
327
+ "name": "account",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "AddressInsufficientBalance",
332
+ "type": "error"
333
+ },
334
+ {
335
+ "inputs": [],
336
+ "name": "FailedInnerCall",
337
+ "type": "error"
338
+ },
339
+ {
340
+ "inputs": [],
341
+ "name": "InvalidInitialization",
342
+ "type": "error"
343
+ },
344
+ {
345
+ "inputs": [],
346
+ "name": "NotInitializing",
347
+ "type": "error"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "uint8",
353
+ "name": "bits",
354
+ "type": "uint8"
355
+ },
356
+ {
357
+ "internalType": "uint256",
358
+ "name": "value",
359
+ "type": "uint256"
360
+ }
361
+ ],
362
+ "name": "SafeCastOverflowedUintDowncast",
363
+ "type": "error"
364
+ },
365
+ {
366
+ "anonymous": false,
367
+ "inputs": [
368
+ {
369
+ "indexed": false,
370
+ "internalType": "uint64",
371
+ "name": "version",
372
+ "type": "uint64"
373
+ }
374
+ ],
375
+ "name": "Initialized",
376
+ "type": "event"
377
+ },
378
+ {
379
+ "anonymous": false,
380
+ "inputs": [
381
+ {
382
+ "indexed": false,
383
+ "internalType": "uint64",
384
+ "name": "roleId",
385
+ "type": "uint64"
386
+ },
387
+ {
388
+ "indexed": false,
389
+ "internalType": "string",
390
+ "name": "name",
391
+ "type": "string"
392
+ }
393
+ ],
394
+ "name": "LogRoleCreation",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": false,
402
+ "internalType": "address",
403
+ "name": "target",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "string",
409
+ "name": "name",
410
+ "type": "string"
411
+ }
412
+ ],
413
+ "name": "LogTargetCreation",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": true,
421
+ "internalType": "bytes32",
422
+ "name": "operationId",
423
+ "type": "bytes32"
424
+ },
425
+ {
426
+ "indexed": true,
427
+ "internalType": "uint32",
428
+ "name": "nonce",
429
+ "type": "uint32"
430
+ }
431
+ ],
432
+ "name": "OperationCanceled",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": true,
440
+ "internalType": "bytes32",
441
+ "name": "operationId",
442
+ "type": "bytes32"
443
+ },
444
+ {
445
+ "indexed": true,
446
+ "internalType": "uint32",
447
+ "name": "nonce",
448
+ "type": "uint32"
449
+ }
450
+ ],
451
+ "name": "OperationExecuted",
452
+ "type": "event"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": true,
459
+ "internalType": "bytes32",
460
+ "name": "operationId",
461
+ "type": "bytes32"
462
+ },
463
+ {
464
+ "indexed": true,
465
+ "internalType": "uint32",
466
+ "name": "nonce",
467
+ "type": "uint32"
468
+ },
469
+ {
470
+ "indexed": false,
471
+ "internalType": "uint48",
472
+ "name": "schedule",
473
+ "type": "uint48"
474
+ },
475
+ {
476
+ "indexed": false,
477
+ "internalType": "address",
478
+ "name": "caller",
479
+ "type": "address"
480
+ },
481
+ {
482
+ "indexed": false,
483
+ "internalType": "address",
484
+ "name": "target",
485
+ "type": "address"
486
+ },
487
+ {
488
+ "indexed": false,
489
+ "internalType": "bytes",
490
+ "name": "data",
491
+ "type": "bytes"
492
+ }
493
+ ],
494
+ "name": "OperationScheduled",
495
+ "type": "event"
496
+ },
497
+ {
498
+ "anonymous": false,
499
+ "inputs": [
500
+ {
501
+ "indexed": true,
502
+ "internalType": "uint64",
503
+ "name": "roleId",
504
+ "type": "uint64"
505
+ },
506
+ {
507
+ "indexed": true,
508
+ "internalType": "uint64",
509
+ "name": "admin",
510
+ "type": "uint64"
511
+ }
512
+ ],
513
+ "name": "RoleAdminChanged",
514
+ "type": "event"
515
+ },
516
+ {
517
+ "anonymous": false,
518
+ "inputs": [
519
+ {
520
+ "indexed": true,
521
+ "internalType": "uint64",
522
+ "name": "roleId",
523
+ "type": "uint64"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "uint32",
528
+ "name": "delay",
529
+ "type": "uint32"
530
+ },
531
+ {
532
+ "indexed": false,
533
+ "internalType": "uint48",
534
+ "name": "since",
535
+ "type": "uint48"
536
+ }
537
+ ],
538
+ "name": "RoleGrantDelayChanged",
539
+ "type": "event"
540
+ },
541
+ {
542
+ "anonymous": false,
543
+ "inputs": [
544
+ {
545
+ "indexed": true,
546
+ "internalType": "uint64",
547
+ "name": "roleId",
548
+ "type": "uint64"
549
+ },
550
+ {
551
+ "indexed": true,
552
+ "internalType": "address",
553
+ "name": "account",
554
+ "type": "address"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint32",
559
+ "name": "delay",
560
+ "type": "uint32"
561
+ },
562
+ {
563
+ "indexed": false,
564
+ "internalType": "uint48",
565
+ "name": "since",
566
+ "type": "uint48"
567
+ },
568
+ {
569
+ "indexed": false,
570
+ "internalType": "bool",
571
+ "name": "newMember",
572
+ "type": "bool"
573
+ }
574
+ ],
575
+ "name": "RoleGranted",
576
+ "type": "event"
577
+ },
578
+ {
579
+ "anonymous": false,
580
+ "inputs": [
581
+ {
582
+ "indexed": true,
583
+ "internalType": "uint64",
584
+ "name": "roleId",
585
+ "type": "uint64"
586
+ },
587
+ {
588
+ "indexed": true,
589
+ "internalType": "uint64",
590
+ "name": "guardian",
591
+ "type": "uint64"
592
+ }
593
+ ],
594
+ "name": "RoleGuardianChanged",
595
+ "type": "event"
596
+ },
597
+ {
598
+ "anonymous": false,
599
+ "inputs": [
600
+ {
601
+ "indexed": true,
602
+ "internalType": "uint64",
603
+ "name": "roleId",
604
+ "type": "uint64"
605
+ },
606
+ {
607
+ "indexed": false,
608
+ "internalType": "string",
609
+ "name": "label",
610
+ "type": "string"
611
+ }
612
+ ],
613
+ "name": "RoleLabel",
614
+ "type": "event"
615
+ },
616
+ {
617
+ "anonymous": false,
618
+ "inputs": [
619
+ {
620
+ "indexed": true,
621
+ "internalType": "uint64",
622
+ "name": "roleId",
623
+ "type": "uint64"
624
+ },
625
+ {
626
+ "indexed": true,
627
+ "internalType": "address",
628
+ "name": "account",
629
+ "type": "address"
630
+ }
631
+ ],
632
+ "name": "RoleRevoked",
633
+ "type": "event"
634
+ },
635
+ {
636
+ "anonymous": false,
637
+ "inputs": [
638
+ {
639
+ "indexed": true,
640
+ "internalType": "address",
641
+ "name": "target",
642
+ "type": "address"
643
+ },
644
+ {
645
+ "indexed": false,
646
+ "internalType": "uint32",
647
+ "name": "delay",
648
+ "type": "uint32"
649
+ },
650
+ {
651
+ "indexed": false,
652
+ "internalType": "uint48",
653
+ "name": "since",
654
+ "type": "uint48"
655
+ }
656
+ ],
657
+ "name": "TargetAdminDelayUpdated",
658
+ "type": "event"
659
+ },
660
+ {
661
+ "anonymous": false,
662
+ "inputs": [
663
+ {
664
+ "indexed": true,
665
+ "internalType": "address",
666
+ "name": "target",
667
+ "type": "address"
668
+ },
669
+ {
670
+ "indexed": false,
671
+ "internalType": "bool",
672
+ "name": "closed",
673
+ "type": "bool"
674
+ }
675
+ ],
676
+ "name": "TargetClosed",
677
+ "type": "event"
678
+ },
679
+ {
680
+ "anonymous": false,
681
+ "inputs": [
682
+ {
683
+ "indexed": true,
684
+ "internalType": "address",
685
+ "name": "target",
686
+ "type": "address"
687
+ },
688
+ {
689
+ "indexed": false,
690
+ "internalType": "bytes4",
691
+ "name": "selector",
692
+ "type": "bytes4"
693
+ },
694
+ {
695
+ "indexed": true,
696
+ "internalType": "uint64",
697
+ "name": "roleId",
698
+ "type": "uint64"
699
+ }
700
+ ],
701
+ "name": "TargetFunctionRoleUpdated",
702
+ "type": "event"
703
+ },
704
+ {
705
+ "inputs": [],
706
+ "name": "ADMIN_ROLE",
707
+ "outputs": [
708
+ {
709
+ "internalType": "uint64",
710
+ "name": "",
711
+ "type": "uint64"
712
+ }
713
+ ],
714
+ "stateMutability": "view",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [],
719
+ "name": "PUBLIC_ROLE",
720
+ "outputs": [
721
+ {
722
+ "internalType": "uint64",
723
+ "name": "",
724
+ "type": "uint64"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "address",
734
+ "name": "caller",
735
+ "type": "address"
736
+ },
737
+ {
738
+ "internalType": "address",
739
+ "name": "target",
740
+ "type": "address"
741
+ },
742
+ {
743
+ "internalType": "bytes4",
744
+ "name": "selector",
745
+ "type": "bytes4"
746
+ }
747
+ ],
748
+ "name": "canCall",
749
+ "outputs": [
750
+ {
751
+ "internalType": "bool",
752
+ "name": "immediate",
753
+ "type": "bool"
754
+ },
755
+ {
756
+ "internalType": "uint32",
757
+ "name": "delay",
758
+ "type": "uint32"
759
+ }
760
+ ],
761
+ "stateMutability": "view",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "address",
768
+ "name": "caller",
769
+ "type": "address"
770
+ },
771
+ {
772
+ "internalType": "address",
773
+ "name": "target",
774
+ "type": "address"
775
+ },
776
+ {
777
+ "internalType": "bytes",
778
+ "name": "data",
779
+ "type": "bytes"
780
+ }
781
+ ],
782
+ "name": "cancel",
783
+ "outputs": [
784
+ {
785
+ "internalType": "uint32",
786
+ "name": "",
787
+ "type": "uint32"
788
+ }
789
+ ],
790
+ "stateMutability": "nonpayable",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [
795
+ {
796
+ "internalType": "address",
797
+ "name": "caller",
798
+ "type": "address"
799
+ },
800
+ {
801
+ "internalType": "bytes",
802
+ "name": "data",
803
+ "type": "bytes"
804
+ }
805
+ ],
806
+ "name": "consumeScheduledOp",
807
+ "outputs": [],
808
+ "stateMutability": "nonpayable",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [
813
+ {
814
+ "internalType": "uint64",
815
+ "name": "roleId",
816
+ "type": "uint64"
817
+ },
818
+ {
819
+ "internalType": "string",
820
+ "name": "name",
821
+ "type": "string"
822
+ }
823
+ ],
824
+ "name": "createRole",
825
+ "outputs": [],
826
+ "stateMutability": "nonpayable",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "inputs": [
831
+ {
832
+ "internalType": "address",
833
+ "name": "target",
834
+ "type": "address"
835
+ },
836
+ {
837
+ "internalType": "string",
838
+ "name": "name",
839
+ "type": "string"
840
+ }
841
+ ],
842
+ "name": "createTarget",
843
+ "outputs": [],
844
+ "stateMutability": "nonpayable",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "Seconds",
851
+ "name": "delay",
852
+ "type": "uint40"
853
+ }
854
+ ],
855
+ "name": "disable",
856
+ "outputs": [],
857
+ "stateMutability": "nonpayable",
858
+ "type": "function"
859
+ },
860
+ {
861
+ "inputs": [],
862
+ "name": "enable",
863
+ "outputs": [],
864
+ "stateMutability": "nonpayable",
865
+ "type": "function"
866
+ },
867
+ {
868
+ "inputs": [
869
+ {
870
+ "internalType": "address",
871
+ "name": "target",
872
+ "type": "address"
873
+ },
874
+ {
875
+ "internalType": "bytes",
876
+ "name": "data",
877
+ "type": "bytes"
878
+ }
879
+ ],
880
+ "name": "execute",
881
+ "outputs": [
882
+ {
883
+ "internalType": "uint32",
884
+ "name": "",
885
+ "type": "uint32"
886
+ }
887
+ ],
888
+ "stateMutability": "payable",
889
+ "type": "function"
890
+ },
891
+ {
892
+ "inputs": [],
893
+ "name": "expiration",
894
+ "outputs": [
895
+ {
896
+ "internalType": "uint32",
897
+ "name": "",
898
+ "type": "uint32"
899
+ }
900
+ ],
901
+ "stateMutability": "view",
902
+ "type": "function"
903
+ },
904
+ {
905
+ "inputs": [
906
+ {
907
+ "internalType": "uint64",
908
+ "name": "roleId",
909
+ "type": "uint64"
910
+ },
911
+ {
912
+ "internalType": "address",
913
+ "name": "account",
914
+ "type": "address"
915
+ }
916
+ ],
917
+ "name": "getAccess",
918
+ "outputs": [
919
+ {
920
+ "internalType": "uint48",
921
+ "name": "since",
922
+ "type": "uint48"
923
+ },
924
+ {
925
+ "internalType": "uint32",
926
+ "name": "currentDelay",
927
+ "type": "uint32"
928
+ },
929
+ {
930
+ "internalType": "uint32",
931
+ "name": "pendingDelay",
932
+ "type": "uint32"
933
+ },
934
+ {
935
+ "internalType": "uint48",
936
+ "name": "effect",
937
+ "type": "uint48"
938
+ }
939
+ ],
940
+ "stateMutability": "view",
941
+ "type": "function"
942
+ },
943
+ {
944
+ "inputs": [
945
+ {
946
+ "internalType": "bytes32",
947
+ "name": "id",
948
+ "type": "bytes32"
949
+ }
950
+ ],
951
+ "name": "getNonce",
952
+ "outputs": [
953
+ {
954
+ "internalType": "uint32",
955
+ "name": "",
956
+ "type": "uint32"
957
+ }
958
+ ],
959
+ "stateMutability": "view",
960
+ "type": "function"
961
+ },
962
+ {
963
+ "inputs": [
964
+ {
965
+ "internalType": "uint64",
966
+ "name": "roleId",
967
+ "type": "uint64"
968
+ }
969
+ ],
970
+ "name": "getRoleAdmin",
971
+ "outputs": [
972
+ {
973
+ "internalType": "uint64",
974
+ "name": "",
975
+ "type": "uint64"
976
+ }
977
+ ],
978
+ "stateMutability": "view",
979
+ "type": "function"
980
+ },
981
+ {
982
+ "inputs": [
983
+ {
984
+ "internalType": "uint64",
985
+ "name": "roleId",
986
+ "type": "uint64"
987
+ }
988
+ ],
989
+ "name": "getRoleGrantDelay",
990
+ "outputs": [
991
+ {
992
+ "internalType": "uint32",
993
+ "name": "",
994
+ "type": "uint32"
995
+ }
996
+ ],
997
+ "stateMutability": "view",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [
1002
+ {
1003
+ "internalType": "uint64",
1004
+ "name": "roleId",
1005
+ "type": "uint64"
1006
+ }
1007
+ ],
1008
+ "name": "getRoleGuardian",
1009
+ "outputs": [
1010
+ {
1011
+ "internalType": "uint64",
1012
+ "name": "",
1013
+ "type": "uint64"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [
1021
+ {
1022
+ "internalType": "uint256",
1023
+ "name": "idx",
1024
+ "type": "uint256"
1025
+ }
1026
+ ],
1027
+ "name": "getRoleId",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "uint64",
1031
+ "name": "roleId",
1032
+ "type": "uint64"
1033
+ }
1034
+ ],
1035
+ "stateMutability": "view",
1036
+ "type": "function"
1037
+ },
1038
+ {
1039
+ "inputs": [
1040
+ {
1041
+ "internalType": "string",
1042
+ "name": "name",
1043
+ "type": "string"
1044
+ }
1045
+ ],
1046
+ "name": "getRoleId",
1047
+ "outputs": [
1048
+ {
1049
+ "internalType": "uint64",
1050
+ "name": "roleId",
1051
+ "type": "uint64"
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [
1059
+ {
1060
+ "internalType": "uint64",
1061
+ "name": "roleId",
1062
+ "type": "uint64"
1063
+ }
1064
+ ],
1065
+ "name": "getRoleInfo",
1066
+ "outputs": [
1067
+ {
1068
+ "components": [
1069
+ {
1070
+ "internalType": "uint64",
1071
+ "name": "id",
1072
+ "type": "uint64"
1073
+ },
1074
+ {
1075
+ "internalType": "string",
1076
+ "name": "name",
1077
+ "type": "string"
1078
+ },
1079
+ {
1080
+ "internalType": "Timestamp",
1081
+ "name": "createdAt",
1082
+ "type": "uint40"
1083
+ }
1084
+ ],
1085
+ "internalType": "struct IAccessManagerExtended.RoleInfo",
1086
+ "name": "",
1087
+ "type": "tuple"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "view",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [
1095
+ {
1096
+ "internalType": "uint64",
1097
+ "name": "roleId",
1098
+ "type": "uint64"
1099
+ },
1100
+ {
1101
+ "internalType": "uint256",
1102
+ "name": "idx",
1103
+ "type": "uint256"
1104
+ }
1105
+ ],
1106
+ "name": "getRoleMember",
1107
+ "outputs": [
1108
+ {
1109
+ "internalType": "address",
1110
+ "name": "member",
1111
+ "type": "address"
1112
+ }
1113
+ ],
1114
+ "stateMutability": "view",
1115
+ "type": "function"
1116
+ },
1117
+ {
1118
+ "inputs": [
1119
+ {
1120
+ "internalType": "uint64",
1121
+ "name": "roleId",
1122
+ "type": "uint64"
1123
+ }
1124
+ ],
1125
+ "name": "getRoleMembers",
1126
+ "outputs": [
1127
+ {
1128
+ "internalType": "uint256",
1129
+ "name": "numberOfMembers",
1130
+ "type": "uint256"
1131
+ }
1132
+ ],
1133
+ "stateMutability": "view",
1134
+ "type": "function"
1135
+ },
1136
+ {
1137
+ "inputs": [],
1138
+ "name": "getRoles",
1139
+ "outputs": [
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "numberOfRoles",
1143
+ "type": "uint256"
1144
+ }
1145
+ ],
1146
+ "stateMutability": "view",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [
1151
+ {
1152
+ "internalType": "bytes32",
1153
+ "name": "id",
1154
+ "type": "bytes32"
1155
+ }
1156
+ ],
1157
+ "name": "getSchedule",
1158
+ "outputs": [
1159
+ {
1160
+ "internalType": "uint48",
1161
+ "name": "",
1162
+ "type": "uint48"
1163
+ }
1164
+ ],
1165
+ "stateMutability": "view",
1166
+ "type": "function"
1167
+ },
1168
+ {
1169
+ "inputs": [
1170
+ {
1171
+ "internalType": "string",
1172
+ "name": "name",
1173
+ "type": "string"
1174
+ }
1175
+ ],
1176
+ "name": "getTargetAddress",
1177
+ "outputs": [
1178
+ {
1179
+ "internalType": "address",
1180
+ "name": "targetAddress",
1181
+ "type": "address"
1182
+ }
1183
+ ],
1184
+ "stateMutability": "view",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "internalType": "address",
1191
+ "name": "target",
1192
+ "type": "address"
1193
+ }
1194
+ ],
1195
+ "name": "getTargetAdminDelay",
1196
+ "outputs": [
1197
+ {
1198
+ "internalType": "uint32",
1199
+ "name": "",
1200
+ "type": "uint32"
1201
+ }
1202
+ ],
1203
+ "stateMutability": "view",
1204
+ "type": "function"
1205
+ },
1206
+ {
1207
+ "inputs": [
1208
+ {
1209
+ "internalType": "address",
1210
+ "name": "target",
1211
+ "type": "address"
1212
+ },
1213
+ {
1214
+ "internalType": "bytes4",
1215
+ "name": "selector",
1216
+ "type": "bytes4"
1217
+ }
1218
+ ],
1219
+ "name": "getTargetFunctionRole",
1220
+ "outputs": [
1221
+ {
1222
+ "internalType": "uint64",
1223
+ "name": "",
1224
+ "type": "uint64"
1225
+ }
1226
+ ],
1227
+ "stateMutability": "view",
1228
+ "type": "function"
1229
+ },
1230
+ {
1231
+ "inputs": [
1232
+ {
1233
+ "internalType": "address",
1234
+ "name": "target",
1235
+ "type": "address"
1236
+ }
1237
+ ],
1238
+ "name": "getTargetInfo",
1239
+ "outputs": [
1240
+ {
1241
+ "components": [
1242
+ {
1243
+ "internalType": "address",
1244
+ "name": "taddress",
1245
+ "type": "address"
1246
+ },
1247
+ {
1248
+ "internalType": "string",
1249
+ "name": "name",
1250
+ "type": "string"
1251
+ },
1252
+ {
1253
+ "internalType": "Timestamp",
1254
+ "name": "createdAt",
1255
+ "type": "uint40"
1256
+ }
1257
+ ],
1258
+ "internalType": "struct IAccessManagerExtended.TargetInfo",
1259
+ "name": "",
1260
+ "type": "tuple"
1261
+ }
1262
+ ],
1263
+ "stateMutability": "view",
1264
+ "type": "function"
1265
+ },
1266
+ {
1267
+ "inputs": [],
1268
+ "name": "getVersion",
1269
+ "outputs": [
1270
+ {
1271
+ "internalType": "VersionPart",
1272
+ "name": "",
1273
+ "type": "uint8"
1274
+ }
1275
+ ],
1276
+ "stateMutability": "view",
1277
+ "type": "function"
1278
+ },
1279
+ {
1280
+ "inputs": [
1281
+ {
1282
+ "internalType": "uint64",
1283
+ "name": "roleId",
1284
+ "type": "uint64"
1285
+ },
1286
+ {
1287
+ "internalType": "address",
1288
+ "name": "account",
1289
+ "type": "address"
1290
+ },
1291
+ {
1292
+ "internalType": "uint32",
1293
+ "name": "executionDelay",
1294
+ "type": "uint32"
1295
+ }
1296
+ ],
1297
+ "name": "grantRole",
1298
+ "outputs": [],
1299
+ "stateMutability": "nonpayable",
1300
+ "type": "function"
1301
+ },
1302
+ {
1303
+ "inputs": [
1304
+ {
1305
+ "internalType": "uint64",
1306
+ "name": "roleId",
1307
+ "type": "uint64"
1308
+ },
1309
+ {
1310
+ "internalType": "address",
1311
+ "name": "account",
1312
+ "type": "address"
1313
+ }
1314
+ ],
1315
+ "name": "hasRole",
1316
+ "outputs": [
1317
+ {
1318
+ "internalType": "bool",
1319
+ "name": "isMember",
1320
+ "type": "bool"
1321
+ },
1322
+ {
1323
+ "internalType": "uint32",
1324
+ "name": "executionDelay",
1325
+ "type": "uint32"
1326
+ }
1327
+ ],
1328
+ "stateMutability": "view",
1329
+ "type": "function"
1330
+ },
1331
+ {
1332
+ "inputs": [
1333
+ {
1334
+ "internalType": "address",
1335
+ "name": "caller",
1336
+ "type": "address"
1337
+ },
1338
+ {
1339
+ "internalType": "address",
1340
+ "name": "target",
1341
+ "type": "address"
1342
+ },
1343
+ {
1344
+ "internalType": "bytes",
1345
+ "name": "data",
1346
+ "type": "bytes"
1347
+ }
1348
+ ],
1349
+ "name": "hashOperation",
1350
+ "outputs": [
1351
+ {
1352
+ "internalType": "bytes32",
1353
+ "name": "",
1354
+ "type": "bytes32"
1355
+ }
1356
+ ],
1357
+ "stateMutability": "view",
1358
+ "type": "function"
1359
+ },
1360
+ {
1361
+ "inputs": [],
1362
+ "name": "isDisabled",
1363
+ "outputs": [
1364
+ {
1365
+ "internalType": "bool",
1366
+ "name": "",
1367
+ "type": "bool"
1368
+ }
1369
+ ],
1370
+ "stateMutability": "view",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [
1375
+ {
1376
+ "internalType": "uint64",
1377
+ "name": "roleId",
1378
+ "type": "uint64"
1379
+ }
1380
+ ],
1381
+ "name": "isRoleExists",
1382
+ "outputs": [
1383
+ {
1384
+ "internalType": "bool",
1385
+ "name": "exists",
1386
+ "type": "bool"
1387
+ }
1388
+ ],
1389
+ "stateMutability": "view",
1390
+ "type": "function"
1391
+ },
1392
+ {
1393
+ "inputs": [
1394
+ {
1395
+ "internalType": "string",
1396
+ "name": "name",
1397
+ "type": "string"
1398
+ }
1399
+ ],
1400
+ "name": "isRoleNameExists",
1401
+ "outputs": [
1402
+ {
1403
+ "internalType": "bool",
1404
+ "name": "exists",
1405
+ "type": "bool"
1406
+ }
1407
+ ],
1408
+ "stateMutability": "view",
1409
+ "type": "function"
1410
+ },
1411
+ {
1412
+ "inputs": [
1413
+ {
1414
+ "internalType": "address",
1415
+ "name": "target",
1416
+ "type": "address"
1417
+ }
1418
+ ],
1419
+ "name": "isTargetClosed",
1420
+ "outputs": [
1421
+ {
1422
+ "internalType": "bool",
1423
+ "name": "",
1424
+ "type": "bool"
1425
+ }
1426
+ ],
1427
+ "stateMutability": "view",
1428
+ "type": "function"
1429
+ },
1430
+ {
1431
+ "inputs": [
1432
+ {
1433
+ "internalType": "address",
1434
+ "name": "target",
1435
+ "type": "address"
1436
+ }
1437
+ ],
1438
+ "name": "isTargetExists",
1439
+ "outputs": [
1440
+ {
1441
+ "internalType": "bool",
1442
+ "name": "",
1443
+ "type": "bool"
1444
+ }
1445
+ ],
1446
+ "stateMutability": "view",
1447
+ "type": "function"
1448
+ },
1449
+ {
1450
+ "inputs": [
1451
+ {
1452
+ "internalType": "string",
1453
+ "name": "name",
1454
+ "type": "string"
1455
+ }
1456
+ ],
1457
+ "name": "isTargetNameExists",
1458
+ "outputs": [
1459
+ {
1460
+ "internalType": "bool",
1461
+ "name": "",
1462
+ "type": "bool"
1463
+ }
1464
+ ],
1465
+ "stateMutability": "view",
1466
+ "type": "function"
1467
+ },
1468
+ {
1469
+ "inputs": [
1470
+ {
1471
+ "internalType": "uint64",
1472
+ "name": "roleId",
1473
+ "type": "uint64"
1474
+ },
1475
+ {
1476
+ "internalType": "string",
1477
+ "name": "label",
1478
+ "type": "string"
1479
+ }
1480
+ ],
1481
+ "name": "labelRole",
1482
+ "outputs": [],
1483
+ "stateMutability": "nonpayable",
1484
+ "type": "function"
1485
+ },
1486
+ {
1487
+ "inputs": [],
1488
+ "name": "minSetback",
1489
+ "outputs": [
1490
+ {
1491
+ "internalType": "uint32",
1492
+ "name": "",
1493
+ "type": "uint32"
1494
+ }
1495
+ ],
1496
+ "stateMutability": "view",
1497
+ "type": "function"
1498
+ },
1499
+ {
1500
+ "inputs": [
1501
+ {
1502
+ "internalType": "bytes[]",
1503
+ "name": "data",
1504
+ "type": "bytes[]"
1505
+ }
1506
+ ],
1507
+ "name": "multicall",
1508
+ "outputs": [
1509
+ {
1510
+ "internalType": "bytes[]",
1511
+ "name": "results",
1512
+ "type": "bytes[]"
1513
+ }
1514
+ ],
1515
+ "stateMutability": "nonpayable",
1516
+ "type": "function"
1517
+ },
1518
+ {
1519
+ "inputs": [
1520
+ {
1521
+ "internalType": "uint64",
1522
+ "name": "roleId",
1523
+ "type": "uint64"
1524
+ },
1525
+ {
1526
+ "internalType": "address",
1527
+ "name": "callerConfirmation",
1528
+ "type": "address"
1529
+ }
1530
+ ],
1531
+ "name": "renounceRole",
1532
+ "outputs": [],
1533
+ "stateMutability": "nonpayable",
1534
+ "type": "function"
1535
+ },
1536
+ {
1537
+ "inputs": [
1538
+ {
1539
+ "internalType": "uint64",
1540
+ "name": "roleId",
1541
+ "type": "uint64"
1542
+ },
1543
+ {
1544
+ "internalType": "address",
1545
+ "name": "account",
1546
+ "type": "address"
1547
+ }
1548
+ ],
1549
+ "name": "revokeRole",
1550
+ "outputs": [],
1551
+ "stateMutability": "nonpayable",
1552
+ "type": "function"
1553
+ },
1554
+ {
1555
+ "inputs": [
1556
+ {
1557
+ "internalType": "address",
1558
+ "name": "target",
1559
+ "type": "address"
1560
+ },
1561
+ {
1562
+ "internalType": "bytes",
1563
+ "name": "data",
1564
+ "type": "bytes"
1565
+ },
1566
+ {
1567
+ "internalType": "uint48",
1568
+ "name": "when",
1569
+ "type": "uint48"
1570
+ }
1571
+ ],
1572
+ "name": "schedule",
1573
+ "outputs": [
1574
+ {
1575
+ "internalType": "bytes32",
1576
+ "name": "operationId",
1577
+ "type": "bytes32"
1578
+ },
1579
+ {
1580
+ "internalType": "uint32",
1581
+ "name": "nonce",
1582
+ "type": "uint32"
1583
+ }
1584
+ ],
1585
+ "stateMutability": "nonpayable",
1586
+ "type": "function"
1587
+ },
1588
+ {
1589
+ "inputs": [
1590
+ {
1591
+ "internalType": "uint64",
1592
+ "name": "roleId",
1593
+ "type": "uint64"
1594
+ },
1595
+ {
1596
+ "internalType": "uint32",
1597
+ "name": "newDelay",
1598
+ "type": "uint32"
1599
+ }
1600
+ ],
1601
+ "name": "setGrantDelay",
1602
+ "outputs": [],
1603
+ "stateMutability": "nonpayable",
1604
+ "type": "function"
1605
+ },
1606
+ {
1607
+ "inputs": [
1608
+ {
1609
+ "internalType": "uint64",
1610
+ "name": "roleId",
1611
+ "type": "uint64"
1612
+ },
1613
+ {
1614
+ "internalType": "uint64",
1615
+ "name": "admin",
1616
+ "type": "uint64"
1617
+ }
1618
+ ],
1619
+ "name": "setRoleAdmin",
1620
+ "outputs": [],
1621
+ "stateMutability": "nonpayable",
1622
+ "type": "function"
1623
+ },
1624
+ {
1625
+ "inputs": [
1626
+ {
1627
+ "internalType": "uint64",
1628
+ "name": "roleId",
1629
+ "type": "uint64"
1630
+ },
1631
+ {
1632
+ "internalType": "uint64",
1633
+ "name": "guardian",
1634
+ "type": "uint64"
1635
+ }
1636
+ ],
1637
+ "name": "setRoleGuardian",
1638
+ "outputs": [],
1639
+ "stateMutability": "nonpayable",
1640
+ "type": "function"
1641
+ },
1642
+ {
1643
+ "inputs": [
1644
+ {
1645
+ "internalType": "address",
1646
+ "name": "target",
1647
+ "type": "address"
1648
+ },
1649
+ {
1650
+ "internalType": "uint32",
1651
+ "name": "newDelay",
1652
+ "type": "uint32"
1653
+ }
1654
+ ],
1655
+ "name": "setTargetAdminDelay",
1656
+ "outputs": [],
1657
+ "stateMutability": "nonpayable",
1658
+ "type": "function"
1659
+ },
1660
+ {
1661
+ "inputs": [
1662
+ {
1663
+ "internalType": "address",
1664
+ "name": "target",
1665
+ "type": "address"
1666
+ },
1667
+ {
1668
+ "internalType": "bool",
1669
+ "name": "closed",
1670
+ "type": "bool"
1671
+ }
1672
+ ],
1673
+ "name": "setTargetClosed",
1674
+ "outputs": [],
1675
+ "stateMutability": "nonpayable",
1676
+ "type": "function"
1677
+ },
1678
+ {
1679
+ "inputs": [
1680
+ {
1681
+ "internalType": "address",
1682
+ "name": "target",
1683
+ "type": "address"
1684
+ },
1685
+ {
1686
+ "internalType": "bytes4[]",
1687
+ "name": "selectors",
1688
+ "type": "bytes4[]"
1689
+ },
1690
+ {
1691
+ "internalType": "uint64",
1692
+ "name": "roleId",
1693
+ "type": "uint64"
1694
+ }
1695
+ ],
1696
+ "name": "setTargetFunctionRole",
1697
+ "outputs": [],
1698
+ "stateMutability": "nonpayable",
1699
+ "type": "function"
1700
+ },
1701
+ {
1702
+ "inputs": [
1703
+ {
1704
+ "internalType": "address",
1705
+ "name": "target",
1706
+ "type": "address"
1707
+ },
1708
+ {
1709
+ "internalType": "address",
1710
+ "name": "newAuthority",
1711
+ "type": "address"
1712
+ }
1713
+ ],
1714
+ "name": "updateAuthority",
1715
+ "outputs": [],
1716
+ "stateMutability": "nonpayable",
1717
+ "type": "function"
1718
+ }
1719
+ ],
1720
+ "bytecode": "0x608060405234801561001057600080fd5b5061484c806100206000396000f3fe6080604052600436106102c95760003560e01c80636c57f5a911610175578063ac9650d8116100dc578063d1f856ee11610095578063d78a83b11161006f578063d78a83b114610964578063f801a69814610984578063fa2921a4146109be578063fe0776f5146109de57600080fd5b8063d1f856ee14610904578063d22b598914610924578063d6bb62c61461094457600080fd5b8063ac9650d814610825578063b700961314610852578063b780fedc1461088e578063b7d2b162146108ae578063b8c51067146108ce578063cc1b6c81146108ee57600080fd5b806394c7d7ee1161012e57806394c7d7ee14610770578063a166aa8914610790578063a3907d71146107b0578063a5808e2f146107c5578063a64d95ce146107e5578063abd9bd2a1461080557600080fd5b80636c57f5a9146106a85780636d5115bd146106bd57806371061398146106dd57806375b238fc1461071b5780637f1fb07d14610730578063853551b81461075057600080fd5b80633adc277a1161023457806352962952116101ed5780635bfa5027116101c75780635bfa50271461061b5780635fa8aad41461064857806360d60e511461066857806368ed5d2e1461068857600080fd5b806352962952146105ab578063530dd456146105cb5780635ae86e85146105eb57600080fd5b80633adc277a146104e35780633ca7c02a1461051a5780633fd85561146105355780634136a33c146105555780634665096d146105755780634c1da1e21461058b57600080fd5b806318ff183c1161028657806318ff183c146103de5780631cff79cd146103fe57806325c471a0146104115780633078f1141461043157806330cae1871461048b5780633656481c146104ab57600080fd5b806308d6122d146102ce5780630b0a93ba146102f05780630d8e6e2c1461032d57806312be87271461035c57806312e1ebc514610391578063167bd395146103be575b600080fd5b3480156102da57600080fd5b506102ee6102e9366004613c19565b6109fe565b005b3480156102fc57600080fd5b5061031061030b366004613c7f565b610a7b565b6040516001600160401b0390911681526020015b60405180910390f35b34801561033957600080fd5b506000805160206147d78339815191525460405160ff9091168152602001610324565b34801561036857600080fd5b5061037c610377366004613c7f565b610ab4565b60405163ffffffff9091168152602001610324565b34801561039d57600080fd5b506103b16103ac366004613c9a565b610b00565b6040516103249190613d07565b3480156103ca57600080fd5b506102ee6103d9366004613d60565b610c20565b3480156103ea57600080fd5b506102ee6103f9366004613d99565b610c61565b61037c61040c366004613e08565b610c9d565b34801561041d57600080fd5b506102ee61042c366004613e70565b610ce5565b34801561043d57600080fd5b5061045161044c366004613eb5565b610d69565b604051610324949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561049757600080fd5b506102ee6104a6366004613ed1565b610de0565b3480156104b757600080fd5b506104cb6104c6366004613fa6565b610e54565b6040516001600160a01b039091168152602001610324565b3480156104ef57600080fd5b506105036104fe366004613fda565b610eb7565b60405165ffffffffffff9091168152602001610324565b34801561052657600080fd5b506103106001600160401b0381565b34801561054157600080fd5b50610310610550366004613fda565b610efc565b34801561056157600080fd5b5061037c610570366004613fda565b610f73565b34801561058157600080fd5b5062093a8061037c565b34801561059757600080fd5b5061037c6105a6366004613c9a565b610fa0565b3480156105b757600080fd5b506102ee6105c6366004613ed1565b610fdc565b3480156105d757600080fd5b506103106105e6366004613c7f565b611018565b3480156105f757600080fd5b5061060b610606366004613c9a565b61104a565b6040519015158152602001610324565b34801561062757600080fd5b5061063b610636366004613c7f565b6110f1565b6040516103249190613ff3565b34801561065457600080fd5b506102ee610663366004614022565b611195565b34801561067457600080fd5b5061060b610683366004613fa6565b6111b7565b34801561069457600080fd5b506102ee6106a3366004614071565b61121e565b3480156106b457600080fd5b5061060b61123c565b3480156106c957600080fd5b506103106106d83660046140a3565b611365565b3480156106e957600080fd5b507f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906545b604051908152602001610324565b34801561072757600080fd5b50610310600081565b34801561073c57600080fd5b5061060b61074b366004613c7f565b6113ae565b34801561075c57600080fd5b506102ee61076b3660046140d1565b611438565b34801561077c57600080fd5b506102ee61078b366004613e08565b611475565b34801561079c57600080fd5b5061060b6107ab366004613c9a565b6114b2565b3480156107bc57600080fd5b506102ee6114eb565b3480156107d157600080fd5b5061070d6107e0366004613c7f565b611537565b3480156107f157600080fd5b506102ee6108003660046140ef565b611575565b34801561081157600080fd5b5061070d610820366004614119565b6115b1565b34801561083157600080fd5b5061084561084036600461417d565b6115ea565b60405161032491906141be565b34801561085e57600080fd5b5061087261086d366004614220565b6116de565b60408051921515835263ffffffff909116602083015201610324565b34801561089a57600080fd5b506102ee6108a936600461427e565b61172f565b3480156108ba57600080fd5b506102ee6108c9366004613eb5565b6118fb565b3480156108da57600080fd5b506103106108e9366004613fa6565b611977565b3480156108fa57600080fd5b506206978061037c565b34801561091057600080fd5b5061087261091f366004613eb5565b6119da565b34801561093057600080fd5b506102ee61093f36600461429b565b611a57565b34801561095057600080fd5b5061037c61095f366004614119565b611a93565b34801561097057600080fd5b506104cb61097f3660046142b9565b611add565b34801561099057600080fd5b506109a461099f3660046142e3565b611b1c565b6040805192835263ffffffff909116602083015201610324565b3480156109ca57600080fd5b5061060b6109d9366004613fa6565b611b6b565b3480156109ea57600080fd5b506102ee6109f9366004613eb5565b611bd0565b83610a088161104a565b610a3557604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a3f816113ae565b610a6757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610a7386868686611c4c565b505050505050565b600080610a86611ca0565b6001600160401b0393841660009081526001918201602052604090200154600160401b900490921692915050565b600080610abf611ca0565b6001600160401b0384166000908152600182810160205260409091200154909150610af990600160801b90046001600160701b0316611cc4565b9392505050565b610b34604051806060016040528060006001600160a01b0316815260200160608152602001600064ffffffffff1681525090565b6001600160a01b0382811660009081526000805160206147b783398151915260208181526040928390208351606081019094528054909416835260018401805492949291840191610b8490614355565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb090614355565b8015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610c2a8161104a565b610c5257604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383611ce3565b505050565b81610c6b8161104a565b610c9357604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383611cf5565b600083610ca98161104a565b610cd157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610cdc858585611d54565b95945050505050565b82610cef816113ae565b610d1757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03841660009081526000805160206147f7833981519152602052604090206000805160206147b783398151915290610d569085611e95565b50610d62858585611eaa565b5050505050565b6000806000806000610d79611ca0565b6001600160401b038816600090815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610dd190600160301b90046001600160701b0316611ec6565b979a9199509750945050505050565b81610dea816113ae565b610e1257604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b81610e1c816113ae565b610e4457604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610e4e8484611ee9565b50505050565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690190610e97908590614389565b908152604051908190036020019020546001600160a01b03169392505050565b600080610ec2611ca0565b600084815260028201602052604090205490915065ffffffffffff16610ee781611efb565b610ef15780610ef4565b60005b949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690680546000916000805160206147b78339815191529184908110610f4257610f426143a5565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b600080610f7e611ca0565b600093845260020160205250506040902054600160301b900463ffffffff1690565b600080610fab611ca0565b6001600160a01b038416600090815260208290526040902060010154909150610af9906001600160701b0316611cc4565b81610fe6816113ae565b61100e57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610c5c8383611f2a565b600080611023611ca0565b6001600160401b039384166000908152600191820160205260409020015490921692915050565b6001600160a01b03811660009081526000805160206147b783398151915260208190526040808320600201549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af41580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af991906143bb565b611125604051806060016040528060006001600160401b0316815260200160608152602001600064ffffffffff1681525090565b6001600160401b0382811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020908152604091829020825160608101909352805490931682526001830180546000805160206147b7833981519152949284019190610b8490614355565b61119d611f3c565b6111a78282611fbc565b90506111b38282612018565b5050565b6040516000906000805160206147b78339815191529082907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876901906111fc908690614389565b908152604051908190036020019020546001600160a01b031614159392505050565b611226611f3c565b611230828261224e565b90506111b382826122a7565b6000806000805160206147d78339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d291906143bb565b801561135f575061135f73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611325573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134991906143d8565b825464ffffffffff610100909104811691161190565b91505090565b600080611370611ca0565b6001600160a01b0385166000908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b6001600160401b03811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020526040808220600201549051638d38cd4b60e01b815264ffffffffff90911660048201526000805160206147b78339815191529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024016110b0565b82611442816113ae565b61146a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610e4e8484846124c8565b3361147f8161104a565b6114a757604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610e4e84848461255f565b6000806114bd611ca0565b6001600160a01b0390931660009081526020939093525050604090206001015460ff600160701b9091041690565b6114f3611f3c565b6000805160206147d783398151915261150a61123c565b1561152857604051632695f8ad60e01b815260040160405180910390fd5b805465ffffffffff0019169055565b6001600160401b03811660009081526000805160206147f7833981519152602052604081206000805160206147b783398151915290610af99061260b565b8161157f816113ae565b6115a757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610c5c8383612615565b6000848484846040516020016115ca949392919061441e565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561160457611604613f04565b60405190808252806020026020018201604052801561163757816020015b60608152602001906001900390816116225790505b50905060005b828110156116d7576116a73085858481811061165b5761165b6143a5565b905060200281019061166d919061444b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061262792505050565b8282815181106116b9576116b96143a5565b602002602001018190525080806116cf906144a7565b91505061163d565b5092915050565b6000806000805160206147d78339815191526116f861123c565b1561171657604051632695f8ad60e01b815260040160405180910390fd5b611721868686612694565b92509250505b935093915050565b611737611f3c565b60006000805160206147d78339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc91906143bb565b156117ea57604051632695f8ad60e01b815260040160405180910390fd5b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611833573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185791906143d8565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908316602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da91906143d8565b815464ffffffffff919091166101000265ffffffffff001990911617905550565b81611905816113ae565b61192d57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03831660009081526000805160206147f7833981519152602052604090206000805160206147b78339815191529061196c9084612717565b50610e4e848461272c565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876905906119ba908590614389565b908152604051908190036020019020546001600160401b03169392505050565b60008067fffffffffffffffe196001600160401b03851601611a025750600190506000611a50565b600080611a0f8686610d69565b5050915091508165ffffffffffff16600014158015611a455750611a3161273e565b65ffffffffffff168265ffffffffffff1611155b93509150611a509050565b9250929050565b81611a618161104a565b611a8957604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383612749565b600083611a9f8161104a565b611ac757604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b611ad38686868661275b565b9695505050505050565b6001600160401b03821660009081526000805160206147f7833981519152602052604081206000805160206147b783398151915290610ef490846128c6565b60008085611b298161104a565b611b5157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b611b5d878787876128d2565b909890975095505050505050565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690590611bae908590614389565b908152604051908190036020019020546001600160401b031615159392505050565b81611bda816113ae565b611c0257604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03831660009081526000805160206147f7833981519152602052604090206000805160206147b783398151915290611c419033612717565b50610e4e8484612a7d565b611c54611f3c565b60005b82811015610d6257611c9085858584818110611c7557611c756143a5565b9050602002016020810190611c8a91906144c0565b84612aa6565b611c99816144a7565b9050611c57565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b600080611cd9836001600160701b0316611ec6565b5090949350505050565b611ceb611f3c565b6111b38282612b34565b611cfd611f3c565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b158015611d4057600080fd5b505af1158015610a73573d6000803e3d6000fd5b600080611d5f611ca0565b905033600080611d7183898989612bda565b9150915081158015611d87575063ffffffff8116155b15611dd5578288611d988989612c2d565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b0319166044820152606401610a2c565b6000611de3848a8a8a6115b1565b9050600063ffffffff8316151580611e0a5750611dff82610eb7565b65ffffffffffff1615155b15611e1b57611e1882612c45565b90505b6003860154611e338b611e2e8c8c612c2d565b612d59565b8760030181905550611e7d8b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612d9b915050565b50600390960195909555509293505050509392505050565b6000610af9836001600160a01b038416612e2e565b611eb2611f3c565b610e4e8383611ec086610ab4565b84612e7d565b6000806000611edc84611ed761273e565b6130dc565b9250925092509193909250565b611ef1611f3c565b6111b38282613131565b6000611f0561273e565b65ffffffffffff16611f1a62093a80846144dd565b65ffffffffffff16111592915050565b611f32611f3c565b6111b382826131e3565b33600080611f4b8382366132a3565b9150915081610c5c578063ffffffff16600003611fa7576000611f6e813661335b565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610a2c565b610e4e611fb784306000366115b1565b612c45565b60606001600160a01b038316611fe55760405163d2b391f360e01b815260040160405180910390fd5b815160000361201257604051636ff4782560e11b81526001600160a01b0384166004820152602401610a2c565b50919050565b6000805160206147b78339815191526120308361104a565b15612059576040516372f0861b60e01b81526001600160a01b0384166004820152602401610a2c565b612062826111b7565b156120af5782816001018360405161207a9190614389565b908152604051908190036020018120546351a5c05760e11b8252610a2c92916001600160a01b039091169085906004016144fc565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c91906143d8565b64ffffffffff1690526001600160a01b03848116600090815260208481526040909120835181546001600160a01b03191693169290921782558201516001820190612187908261456e565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060018301906121c0908590614389565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b0395861617909155600285018054600181018255600091825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e90612241908590859061462d565b60405180910390a1505050565b6060826001600160401b031660000361227a57604051633aa1be8f60e21b815260040160405180910390fd5b81516000036120125760405163d47728d760e01b81526001600160401b0384166004820152602401610a2c565b6000805160206147b78339815191526122bf836113ae565b156122e8576040516310ed2a9160e11b81526001600160401b0384166004820152602401610a2c565b6122f182611b6b565b1561231d578261230083611977565b8360405163e6fbd51760e01b8152600401610a2c93929190614651565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123aa91906143d8565b64ffffffffff1690526001600160401b03848116600090815260038401602090815260409091208351815467ffffffffffffffff1916931692909217825582015160018201906123fa908261456e565b50604091820151600291909101805464ffffffffff191664ffffffffff9092169190911790555183906005830190612433908590614389565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b0394851617905560068401805460018101825560009182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d90612241908590859061467d565b6124d0611f3c565b6001600160401b03831615806124ee57506001600160401b03838116145b156125175760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a450838360405161255292919061469f565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa1580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c491906146b3565b6001600160e01b031916146125f757604051630641fee960e31b81526001600160a01b0382166004820152602401610a2c565b610d62611fb7858386866115b1565b905090565b60006113a8825490565b61261d611f3c565b6111b3828261358f565b6060600080846001600160a01b0316846040516126449190614389565b600060405180830381855af49150503d806000811461267f576040519150601f19603f3d011682016040523d82523d6000602084013e612684565b606091505b5091509150610cdc8583836136bc565b6000806126a0846114b2565b156126b057506000905080611727565b306001600160a01b038616036126d5576126ca8484613718565b600091509150611727565b60006126e18585611365565b90506000806126f083896119da565b91509150816127015760008061270b565b63ffffffff811615815b94509450505050611727565b6000610af9836001600160a01b03841661373d565b612734611f3c565b610c5c8282613830565b60006126064261392f565b612751611f3c565b6111b38282613966565b600080612766611ca0565b90503360006127758686612c2d565b90506000612785898989896115b1565b600081815260028601602052604081205491925065ffffffffffff90911690036127c55760405163060a299b60e41b815260048101829052602401610a2c565b826001600160a01b0316896001600160a01b0316146128615760006127eb6000856119da565b509050600061280661280061030b8c87611365565b866119da565b50905081158015612815575080155b1561285e57604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b031985166064820152608401610a2c565b50505b6000818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b6000610af98383613a32565b60008060006128df611ca0565b90503360006128f0828a8a8a612bda565b91505060008163ffffffff1661290461273e565b61290e91906144dd565b905063ffffffff82161580612945575060008765ffffffffffff1611801561294557508065ffffffffffff168765ffffffffffff16105b1561295657828a611d988b8b612c2d565b6129708765ffffffffffff168265ffffffffffff16613a5c565b965061297e838b8b8b6115b1565b955061298986613a72565b83600201600087815260200190815260200160002060000160069054906101000a900463ffffffff1660010194508684600201600088815260200190815260200160002060000160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055508484600201600088815260200190815260200160002060000160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e604051612a689594939291906146d0565b60405180910390a35050505094509492505050565b6001600160a01b038116331461273457604051635f159e6360e01b815260040160405180910390fd5b6000612ab0611ca0565b6001600160a01b0385166000818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b6000612b3e611ca0565b9050306001600160a01b03841603612b7457604051630b40d17960e31b81526001600160a01b0384166004820152602401610a2c565b6001600160a01b038316600081815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061255290851515815260200190565b600080306001600160a01b03861603612c0157612bf88685856132a3565b91509150612c24565b60048310612c1d57612c18868661086d8787612c2d565b612bf8565b5060009050805b94509492505050565b6000612c3c6004828486614716565b610af991614740565b600080612c50611ca0565b600084815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612c9f5760405163060a299b60e41b815260048101869052602401610a2c565b612ca761273e565b65ffffffffffff168265ffffffffffff161115612cda57604051630c65b5bd60e11b815260048101869052602401610a2c565b612ce382611efb565b15612d0457604051631e2975b960e21b815260048101869052602401610a2c565b6000858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612dc05760405163cd78605960e01b8152306004820152602401610a2c565b600080856001600160a01b03168486604051612ddc9190614389565b60006040518083038185875af1925050503d8060008114612e19576040519150601f19603f3d011682016040523d82523d6000602084013e612e1e565b606091505b5091509150611ad38683836136bc565b6000818152600183016020526040812054612e75575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556113a8565b5060006113a8565b600080612e88611ca0565b905067fffffffffffffffe196001600160401b03871601612ec75760405163061c6a4360e21b81526001600160401b0387166004820152602401610a2c565b6001600160401b038616600090815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612fbd578563ffffffff16612f1561273e565b612f1f91906144dd565b905060405180604001604052808265ffffffffffff168152602001612f4d8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a16600090815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561306d565b6001600160401b038816600090815260018401602090815260408083206001600160a01b038b16845290915281205461300991600160301b9091046001600160701b0316908790613ace565b6001600160401b038a16600090815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b6000808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c811690871681111561311b57828282613120565b816000805b9550955095505050505b9250925092565b600061313b611ca0565b90506001600160401b038316158061315b57506001600160401b03838116145b156131845760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b03838116600081815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b60006131ed611ca0565b90506001600160401b038316158061320d57506001600160401b03838116145b156132365760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b0383811660008181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b60008060048310156132ba57506000905080611727565b306001600160a01b038616036132dd576126ca306132d88686612c2d565b613718565b60008060006132ec878761335b565b925092509250826133065760008094509450505050611727565b600080613313848b6119da565b915091508161332d57600080965096505050505050611727565b6133438363ffffffff168263ffffffff16613a5c565b63ffffffff8116159b909a5098505050505050505050565b6000808060048410156133765750600091508190508061312a565b60006133828686612c2d565b90506001600160e01b031981166310a6aa3760e31b14806133b357506001600160e01b031981166330cae18760e01b145b806133ce57506001600160e01b0319811663294b14a960e11b145b806133e957506001600160e01b03198116635326cae760e11b145b8061340457506001600160e01b0319811663d22b598960e01b145b8061341f57506001600160e01b03198116633476ae9760e11b145b8061343a57506001600160e01b031981166317ea2ab560e21b145b8061345557506001600160e01b0319811663a3907d7160e01b145b8061347057506001600160e01b03198116632de03fb760e21b145b156134865760016000809350935093505061312a565b6001600160e01b0319811663063fc60f60e21b14806134b557506001600160e01b0319811663167bd39560e01b145b806134d057506001600160e01b031981166308d6122d60e01b145b156135125760006134e560246004888a614716565b8101906134f29190613c9a565b905060006134ff82610fa0565b6001965060009550935061312a92505050565b6001600160e01b0319811663012e238d60e51b148061354157506001600160e01b03198116635be958b160e11b145b1561357f57600061355660246004888a614716565b8101906135639190613c7f565b9050600161357082611018565b6000945094509450505061312a565b5060009586955085945092505050565b6000613599611ca0565b905067fffffffffffffffe196001600160401b038416016135d85760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b0383166000908152600182810160205260408220015461361390600160801b90046001600160701b03168462069780613ace565b6001600160401b038616600081815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b48906136ae908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826136d1576136cc82613b78565b610af9565b81511580156136e857506001600160a01b0384163b155b1561371157604051639996b31560e01b81526001600160a01b0385166004820152602401610a2c565b5080610af9565b600080613723611ca0565b905061372f8484612d59565b600390910154149392505050565b60008181526001830160205260408120548015613826576000613761600183614770565b855490915060009061377590600190614770565b90508082146137da576000866000018281548110613795576137956143a5565b90600052602060002001549050808760000184815481106137b8576137b86143a5565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806137eb576137eb614783565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506113a8565b60009150506113a8565b60008061383b611ca0565b905067fffffffffffffffe196001600160401b0385160161387a5760405163061c6a4360e21b81526001600160401b0385166004820152602401610a2c565b6001600160401b038416600090815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff1690036138c15760009150506113a8565b6001600160401b038416600081815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b600065ffffffffffff821115613962576040516306dfcc6560e41b81526030600482015260248101839052604401610a2c565b5090565b6000613970611ca0565b905060006139a883620697806001600160a01b0387166000908152602086905260409020600101546001600160701b03169190613ace565b6001600160a01b0386166000818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c91016136ae565b6000826000018281548110613a4957613a496143a5565b9060005260206000200154905092915050565b6000818311613a6b5781610af9565b5090919050565b6000613a7c611ca0565b600083815260028201602052604090205490915065ffffffffffff168015801590613aad5750613aab81611efb565b155b15610c5c5760405163813e945960e01b815260048101849052602401610a2c565b6000806000613ae5866001600160701b0316611cc4565b90506000613b228563ffffffff168763ffffffff168463ffffffff1611613b0d576000613b17565b613b178885614799565b63ffffffff16613a5c565b90508063ffffffff16613b3361273e565b613b3d91906144dd565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b805115613b885780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114613ba157600080fd5b60008083601f840112613bcb57600080fd5b5081356001600160401b03811115613be257600080fd5b6020830191508360208260051b8501011115611a5057600080fd5b80356001600160401b0381168114613c1457600080fd5b919050565b60008060008060608587031215613c2f57600080fd5b8435613c3a81613ba4565b935060208501356001600160401b03811115613c5557600080fd5b613c6187828801613bb9565b9094509250613c74905060408601613bfd565b905092959194509250565b600060208284031215613c9157600080fd5b610af982613bfd565b600060208284031215613cac57600080fd5b8135610af981613ba4565b60005b83811015613cd2578181015183820152602001613cba565b50506000910152565b60008151808452613cf3816020860160208601613cb7565b601f01601f19169290920160200192915050565b602080825282516001600160a01b03168282015282015160606040830152600090613d356080840182613cdb565b905064ffffffffff60408501511660608401528091505092915050565b8015158114613ba157600080fd5b60008060408385031215613d7357600080fd5b8235613d7e81613ba4565b91506020830135613d8e81613d52565b809150509250929050565b60008060408385031215613dac57600080fd5b8235613db781613ba4565b91506020830135613d8e81613ba4565b60008083601f840112613dd957600080fd5b5081356001600160401b03811115613df057600080fd5b602083019150836020828501011115611a5057600080fd5b600080600060408486031215613e1d57600080fd5b8335613e2881613ba4565b925060208401356001600160401b03811115613e4357600080fd5b613e4f86828701613dc7565b9497909650939450505050565b803563ffffffff81168114613c1457600080fd5b600080600060608486031215613e8557600080fd5b613e8e84613bfd565b92506020840135613e9e81613ba4565b9150613eac60408501613e5c565b90509250925092565b60008060408385031215613ec857600080fd5b613db783613bfd565b60008060408385031215613ee457600080fd5b613eed83613bfd565b9150613efb60208401613bfd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613f2b57600080fd5b81356001600160401b0380821115613f4557613f45613f04565b604051601f8301601f19908116603f01168101908282118183101715613f6d57613f6d613f04565b81604052838152866020858801011115613f8657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215613fb857600080fd5b81356001600160401b03811115613fce57600080fd5b610ef484828501613f1a565b600060208284031215613fec57600080fd5b5035919050565b602081526001600160401b0382511660208201526000602083015160606040840152613d356080840182613cdb565b6000806040838503121561403557600080fd5b823561404081613ba4565b915060208301356001600160401b0381111561405b57600080fd5b61406785828601613f1a565b9150509250929050565b6000806040838503121561408457600080fd5b61404083613bfd565b6001600160e01b031981168114613ba157600080fd5b600080604083850312156140b657600080fd5b82356140c181613ba4565b91506020830135613d8e8161408d565b6000806000604084860312156140e657600080fd5b613e2884613bfd565b6000806040838503121561410257600080fd5b61410b83613bfd565b9150613efb60208401613e5c565b6000806000806060858703121561412f57600080fd5b843561413a81613ba4565b9350602085013561414a81613ba4565b925060408501356001600160401b0381111561416557600080fd5b61417187828801613dc7565b95989497509550505050565b6000806020838503121561419057600080fd5b82356001600160401b038111156141a657600080fd5b6141b285828601613bb9565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561421357603f19888603018452614201858351613cdb565b945092850192908501906001016141e5565b5092979650505050505050565b60008060006060848603121561423557600080fd5b833561424081613ba4565b9250602084013561425081613ba4565b915060408401356142608161408d565b809150509250925092565b64ffffffffff81168114613ba157600080fd5b60006020828403121561429057600080fd5b8135610af98161426b565b600080604083850312156142ae57600080fd5b823561410b81613ba4565b600080604083850312156142cc57600080fd5b6142d583613bfd565b946020939093013593505050565b600080600080606085870312156142f957600080fd5b843561430481613ba4565b935060208501356001600160401b0381111561431f57600080fd5b61432b87828801613dc7565b909450925050604085013565ffffffffffff8116811461434a57600080fd5b939692955090935050565b600181811c9082168061436957607f821691505b60208210810361201257634e487b7160e01b600052602260045260246000fd5b6000825161439b818460208701613cb7565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156143cd57600080fd5b8151610af981613d52565b6000602082840312156143ea57600080fd5b8151610af98161426b565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03858116825284166020820152606060408201819052600090611ad390830184866143f5565b6000808335601e1984360301811261446257600080fd5b8301803591506001600160401b0382111561447c57600080fd5b602001915036819003821315611a5057600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016144b9576144b9614491565b5060010190565b6000602082840312156144d257600080fd5b8135610af98161408d565b65ffffffffffff8181168382160190808211156116d7576116d7614491565b6001600160a01b03848116825283166020820152606060408201819052600090610cdc90830184613cdb565b601f821115610c5c57600081815260208120601f850160051c8101602086101561454f5750805b601f850160051c820191505b81811015610a735782815560010161455b565b81516001600160401b0381111561458757614587613f04565b61459b816145958454614355565b84614528565b602080601f8311600181146145d057600084156145b85750858301515b600019600386901b1c1916600185901b178555610a73565b600085815260208120601f198616915b828110156145ff578886015182559484019460019091019084016145e0565b508582101561461d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201819052600090610ef490830184613cdb565b60006001600160401b03808616835280851660208401525060606040830152610cdc6060830184613cdb565b6001600160401b0383168152604060208201526000610ef46040830184613cdb565b602081526000610ef46020830184866143f5565b6000602082840312156146c557600080fd5b8151610af98161408d565b65ffffffffffff861681526001600160a01b0385811660208301528416604082015260806060820181905260009061470b90830184866143f5565b979650505050505050565b6000808585111561472657600080fd5b8386111561473357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156147685780818660040360031b1b83161692505b505092915050565b818103818111156113a8576113a8614491565b634e487b7160e01b600052603160045260246000fd5b63ffffffff8281168282160390808211156116d7576116d761449156fe5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769006eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e6005bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876904a2646970667358221220d8f8e0e44c6cb84ecbee79ea15b03843d195415503310e4be4dabf1f92d5cd4164736f6c63430008140033",
1721
+ "deployedBytecode": "0x6080604052600436106102c95760003560e01c80636c57f5a911610175578063ac9650d8116100dc578063d1f856ee11610095578063d78a83b11161006f578063d78a83b114610964578063f801a69814610984578063fa2921a4146109be578063fe0776f5146109de57600080fd5b8063d1f856ee14610904578063d22b598914610924578063d6bb62c61461094457600080fd5b8063ac9650d814610825578063b700961314610852578063b780fedc1461088e578063b7d2b162146108ae578063b8c51067146108ce578063cc1b6c81146108ee57600080fd5b806394c7d7ee1161012e57806394c7d7ee14610770578063a166aa8914610790578063a3907d71146107b0578063a5808e2f146107c5578063a64d95ce146107e5578063abd9bd2a1461080557600080fd5b80636c57f5a9146106a85780636d5115bd146106bd57806371061398146106dd57806375b238fc1461071b5780637f1fb07d14610730578063853551b81461075057600080fd5b80633adc277a1161023457806352962952116101ed5780635bfa5027116101c75780635bfa50271461061b5780635fa8aad41461064857806360d60e511461066857806368ed5d2e1461068857600080fd5b806352962952146105ab578063530dd456146105cb5780635ae86e85146105eb57600080fd5b80633adc277a146104e35780633ca7c02a1461051a5780633fd85561146105355780634136a33c146105555780634665096d146105755780634c1da1e21461058b57600080fd5b806318ff183c1161028657806318ff183c146103de5780631cff79cd146103fe57806325c471a0146104115780633078f1141461043157806330cae1871461048b5780633656481c146104ab57600080fd5b806308d6122d146102ce5780630b0a93ba146102f05780630d8e6e2c1461032d57806312be87271461035c57806312e1ebc514610391578063167bd395146103be575b600080fd5b3480156102da57600080fd5b506102ee6102e9366004613c19565b6109fe565b005b3480156102fc57600080fd5b5061031061030b366004613c7f565b610a7b565b6040516001600160401b0390911681526020015b60405180910390f35b34801561033957600080fd5b506000805160206147d78339815191525460405160ff9091168152602001610324565b34801561036857600080fd5b5061037c610377366004613c7f565b610ab4565b60405163ffffffff9091168152602001610324565b34801561039d57600080fd5b506103b16103ac366004613c9a565b610b00565b6040516103249190613d07565b3480156103ca57600080fd5b506102ee6103d9366004613d60565b610c20565b3480156103ea57600080fd5b506102ee6103f9366004613d99565b610c61565b61037c61040c366004613e08565b610c9d565b34801561041d57600080fd5b506102ee61042c366004613e70565b610ce5565b34801561043d57600080fd5b5061045161044c366004613eb5565b610d69565b604051610324949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561049757600080fd5b506102ee6104a6366004613ed1565b610de0565b3480156104b757600080fd5b506104cb6104c6366004613fa6565b610e54565b6040516001600160a01b039091168152602001610324565b3480156104ef57600080fd5b506105036104fe366004613fda565b610eb7565b60405165ffffffffffff9091168152602001610324565b34801561052657600080fd5b506103106001600160401b0381565b34801561054157600080fd5b50610310610550366004613fda565b610efc565b34801561056157600080fd5b5061037c610570366004613fda565b610f73565b34801561058157600080fd5b5062093a8061037c565b34801561059757600080fd5b5061037c6105a6366004613c9a565b610fa0565b3480156105b757600080fd5b506102ee6105c6366004613ed1565b610fdc565b3480156105d757600080fd5b506103106105e6366004613c7f565b611018565b3480156105f757600080fd5b5061060b610606366004613c9a565b61104a565b6040519015158152602001610324565b34801561062757600080fd5b5061063b610636366004613c7f565b6110f1565b6040516103249190613ff3565b34801561065457600080fd5b506102ee610663366004614022565b611195565b34801561067457600080fd5b5061060b610683366004613fa6565b6111b7565b34801561069457600080fd5b506102ee6106a3366004614071565b61121e565b3480156106b457600080fd5b5061060b61123c565b3480156106c957600080fd5b506103106106d83660046140a3565b611365565b3480156106e957600080fd5b507f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906545b604051908152602001610324565b34801561072757600080fd5b50610310600081565b34801561073c57600080fd5b5061060b61074b366004613c7f565b6113ae565b34801561075c57600080fd5b506102ee61076b3660046140d1565b611438565b34801561077c57600080fd5b506102ee61078b366004613e08565b611475565b34801561079c57600080fd5b5061060b6107ab366004613c9a565b6114b2565b3480156107bc57600080fd5b506102ee6114eb565b3480156107d157600080fd5b5061070d6107e0366004613c7f565b611537565b3480156107f157600080fd5b506102ee6108003660046140ef565b611575565b34801561081157600080fd5b5061070d610820366004614119565b6115b1565b34801561083157600080fd5b5061084561084036600461417d565b6115ea565b60405161032491906141be565b34801561085e57600080fd5b5061087261086d366004614220565b6116de565b60408051921515835263ffffffff909116602083015201610324565b34801561089a57600080fd5b506102ee6108a936600461427e565b61172f565b3480156108ba57600080fd5b506102ee6108c9366004613eb5565b6118fb565b3480156108da57600080fd5b506103106108e9366004613fa6565b611977565b3480156108fa57600080fd5b506206978061037c565b34801561091057600080fd5b5061087261091f366004613eb5565b6119da565b34801561093057600080fd5b506102ee61093f36600461429b565b611a57565b34801561095057600080fd5b5061037c61095f366004614119565b611a93565b34801561097057600080fd5b506104cb61097f3660046142b9565b611add565b34801561099057600080fd5b506109a461099f3660046142e3565b611b1c565b6040805192835263ffffffff909116602083015201610324565b3480156109ca57600080fd5b5061060b6109d9366004613fa6565b611b6b565b3480156109ea57600080fd5b506102ee6109f9366004613eb5565b611bd0565b83610a088161104a565b610a3557604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a3f816113ae565b610a6757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610a7386868686611c4c565b505050505050565b600080610a86611ca0565b6001600160401b0393841660009081526001918201602052604090200154600160401b900490921692915050565b600080610abf611ca0565b6001600160401b0384166000908152600182810160205260409091200154909150610af990600160801b90046001600160701b0316611cc4565b9392505050565b610b34604051806060016040528060006001600160a01b0316815260200160608152602001600064ffffffffff1681525090565b6001600160a01b0382811660009081526000805160206147b783398151915260208181526040928390208351606081019094528054909416835260018401805492949291840191610b8490614355565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb090614355565b8015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610c2a8161104a565b610c5257604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383611ce3565b505050565b81610c6b8161104a565b610c9357604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383611cf5565b600083610ca98161104a565b610cd157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610cdc858585611d54565b95945050505050565b82610cef816113ae565b610d1757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03841660009081526000805160206147f7833981519152602052604090206000805160206147b783398151915290610d569085611e95565b50610d62858585611eaa565b5050505050565b6000806000806000610d79611ca0565b6001600160401b038816600090815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610dd190600160301b90046001600160701b0316611ec6565b979a9199509750945050505050565b81610dea816113ae565b610e1257604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b81610e1c816113ae565b610e4457604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610e4e8484611ee9565b50505050565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690190610e97908590614389565b908152604051908190036020019020546001600160a01b03169392505050565b600080610ec2611ca0565b600084815260028201602052604090205490915065ffffffffffff16610ee781611efb565b610ef15780610ef4565b60005b949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690680546000916000805160206147b78339815191529184908110610f4257610f426143a5565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b600080610f7e611ca0565b600093845260020160205250506040902054600160301b900463ffffffff1690565b600080610fab611ca0565b6001600160a01b038416600090815260208290526040902060010154909150610af9906001600160701b0316611cc4565b81610fe6816113ae565b61100e57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610c5c8383611f2a565b600080611023611ca0565b6001600160401b039384166000908152600191820160205260409020015490921692915050565b6001600160a01b03811660009081526000805160206147b783398151915260208190526040808320600201549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af41580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af991906143bb565b611125604051806060016040528060006001600160401b0316815260200160608152602001600064ffffffffff1681525090565b6001600160401b0382811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020908152604091829020825160608101909352805490931682526001830180546000805160206147b7833981519152949284019190610b8490614355565b61119d611f3c565b6111a78282611fbc565b90506111b38282612018565b5050565b6040516000906000805160206147b78339815191529082907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876901906111fc908690614389565b908152604051908190036020019020546001600160a01b031614159392505050565b611226611f3c565b611230828261224e565b90506111b382826122a7565b6000806000805160206147d78339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d291906143bb565b801561135f575061135f73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611325573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134991906143d8565b825464ffffffffff610100909104811691161190565b91505090565b600080611370611ca0565b6001600160a01b0385166000908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b6001600160401b03811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020526040808220600201549051638d38cd4b60e01b815264ffffffffff90911660048201526000805160206147b78339815191529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024016110b0565b82611442816113ae565b61146a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610e4e8484846124c8565b3361147f8161104a565b6114a757604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610e4e84848461255f565b6000806114bd611ca0565b6001600160a01b0390931660009081526020939093525050604090206001015460ff600160701b9091041690565b6114f3611f3c565b6000805160206147d783398151915261150a61123c565b1561152857604051632695f8ad60e01b815260040160405180910390fd5b805465ffffffffff0019169055565b6001600160401b03811660009081526000805160206147f7833981519152602052604081206000805160206147b783398151915290610af99061260b565b8161157f816113ae565b6115a757604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b610c5c8383612615565b6000848484846040516020016115ca949392919061441e565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561160457611604613f04565b60405190808252806020026020018201604052801561163757816020015b60608152602001906001900390816116225790505b50905060005b828110156116d7576116a73085858481811061165b5761165b6143a5565b905060200281019061166d919061444b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061262792505050565b8282815181106116b9576116b96143a5565b602002602001018190525080806116cf906144a7565b91505061163d565b5092915050565b6000806000805160206147d78339815191526116f861123c565b1561171657604051632695f8ad60e01b815260040160405180910390fd5b611721868686612694565b92509250505b935093915050565b611737611f3c565b60006000805160206147d78339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc91906143bb565b156117ea57604051632695f8ad60e01b815260040160405180910390fd5b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611833573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185791906143d8565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908316602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af41580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da91906143d8565b815464ffffffffff919091166101000265ffffffffff001990911617905550565b81611905816113ae565b61192d57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03831660009081526000805160206147f7833981519152602052604090206000805160206147b78339815191529061196c9084612717565b50610e4e848461272c565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876905906119ba908590614389565b908152604051908190036020019020546001600160401b03169392505050565b60008067fffffffffffffffe196001600160401b03851601611a025750600190506000611a50565b600080611a0f8686610d69565b5050915091508165ffffffffffff16600014158015611a455750611a3161273e565b65ffffffffffff168265ffffffffffff1611155b93509150611a509050565b9250929050565b81611a618161104a565b611a8957604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b610c5c8383612749565b600083611a9f8161104a565b611ac757604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b611ad38686868661275b565b9695505050505050565b6001600160401b03821660009081526000805160206147f7833981519152602052604081206000805160206147b783398151915290610ef490846128c6565b60008085611b298161104a565b611b5157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a2c565b611b5d878787876128d2565b909890975095505050505050565b6040516000906000805160206147b7833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690590611bae908590614389565b908152604051908190036020019020546001600160401b031615159392505050565b81611bda816113ae565b611c0257604051632a9def6d60e01b81526001600160401b0382166004820152602401610a2c565b6001600160401b03831660009081526000805160206147f7833981519152602052604090206000805160206147b783398151915290611c419033612717565b50610e4e8484612a7d565b611c54611f3c565b60005b82811015610d6257611c9085858584818110611c7557611c756143a5565b9050602002016020810190611c8a91906144c0565b84612aa6565b611c99816144a7565b9050611c57565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b600080611cd9836001600160701b0316611ec6565b5090949350505050565b611ceb611f3c565b6111b38282612b34565b611cfd611f3c565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b158015611d4057600080fd5b505af1158015610a73573d6000803e3d6000fd5b600080611d5f611ca0565b905033600080611d7183898989612bda565b9150915081158015611d87575063ffffffff8116155b15611dd5578288611d988989612c2d565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b0319166044820152606401610a2c565b6000611de3848a8a8a6115b1565b9050600063ffffffff8316151580611e0a5750611dff82610eb7565b65ffffffffffff1615155b15611e1b57611e1882612c45565b90505b6003860154611e338b611e2e8c8c612c2d565b612d59565b8760030181905550611e7d8b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612d9b915050565b50600390960195909555509293505050509392505050565b6000610af9836001600160a01b038416612e2e565b611eb2611f3c565b610e4e8383611ec086610ab4565b84612e7d565b6000806000611edc84611ed761273e565b6130dc565b9250925092509193909250565b611ef1611f3c565b6111b38282613131565b6000611f0561273e565b65ffffffffffff16611f1a62093a80846144dd565b65ffffffffffff16111592915050565b611f32611f3c565b6111b382826131e3565b33600080611f4b8382366132a3565b9150915081610c5c578063ffffffff16600003611fa7576000611f6e813661335b565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610a2c565b610e4e611fb784306000366115b1565b612c45565b60606001600160a01b038316611fe55760405163d2b391f360e01b815260040160405180910390fd5b815160000361201257604051636ff4782560e11b81526001600160a01b0384166004820152602401610a2c565b50919050565b6000805160206147b78339815191526120308361104a565b15612059576040516372f0861b60e01b81526001600160a01b0384166004820152602401610a2c565b612062826111b7565b156120af5782816001018360405161207a9190614389565b908152604051908190036020018120546351a5c05760e11b8252610a2c92916001600160a01b039091169085906004016144fc565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213c91906143d8565b64ffffffffff1690526001600160a01b03848116600090815260208481526040909120835181546001600160a01b03191693169290921782558201516001820190612187908261456e565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060018301906121c0908590614389565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b0395861617909155600285018054600181018255600091825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e90612241908590859061462d565b60405180910390a1505050565b6060826001600160401b031660000361227a57604051633aa1be8f60e21b815260040160405180910390fd5b81516000036120125760405163d47728d760e01b81526001600160401b0384166004820152602401610a2c565b6000805160206147b78339815191526122bf836113ae565b156122e8576040516310ed2a9160e11b81526001600160401b0384166004820152602401610a2c565b6122f182611b6b565b1561231d578261230083611977565b8360405163e6fbd51760e01b8152600401610a2c93929190614651565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123aa91906143d8565b64ffffffffff1690526001600160401b03848116600090815260038401602090815260409091208351815467ffffffffffffffff1916931692909217825582015160018201906123fa908261456e565b50604091820151600291909101805464ffffffffff191664ffffffffff9092169190911790555183906005830190612433908590614389565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b0394851617905560068401805460018101825560009182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d90612241908590859061467d565b6124d0611f3c565b6001600160401b03831615806124ee57506001600160401b03838116145b156125175760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a450838360405161255292919061469f565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa1580156125a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c491906146b3565b6001600160e01b031916146125f757604051630641fee960e31b81526001600160a01b0382166004820152602401610a2c565b610d62611fb7858386866115b1565b905090565b60006113a8825490565b61261d611f3c565b6111b3828261358f565b6060600080846001600160a01b0316846040516126449190614389565b600060405180830381855af49150503d806000811461267f576040519150601f19603f3d011682016040523d82523d6000602084013e612684565b606091505b5091509150610cdc8583836136bc565b6000806126a0846114b2565b156126b057506000905080611727565b306001600160a01b038616036126d5576126ca8484613718565b600091509150611727565b60006126e18585611365565b90506000806126f083896119da565b91509150816127015760008061270b565b63ffffffff811615815b94509450505050611727565b6000610af9836001600160a01b03841661373d565b612734611f3c565b610c5c8282613830565b60006126064261392f565b612751611f3c565b6111b38282613966565b600080612766611ca0565b90503360006127758686612c2d565b90506000612785898989896115b1565b600081815260028601602052604081205491925065ffffffffffff90911690036127c55760405163060a299b60e41b815260048101829052602401610a2c565b826001600160a01b0316896001600160a01b0316146128615760006127eb6000856119da565b509050600061280661280061030b8c87611365565b866119da565b50905081158015612815575080155b1561285e57604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b031985166064820152608401610a2c565b50505b6000818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b6000610af98383613a32565b60008060006128df611ca0565b90503360006128f0828a8a8a612bda565b91505060008163ffffffff1661290461273e565b61290e91906144dd565b905063ffffffff82161580612945575060008765ffffffffffff1611801561294557508065ffffffffffff168765ffffffffffff16105b1561295657828a611d988b8b612c2d565b6129708765ffffffffffff168265ffffffffffff16613a5c565b965061297e838b8b8b6115b1565b955061298986613a72565b83600201600087815260200190815260200160002060000160069054906101000a900463ffffffff1660010194508684600201600088815260200190815260200160002060000160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055508484600201600088815260200190815260200160002060000160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e604051612a689594939291906146d0565b60405180910390a35050505094509492505050565b6001600160a01b038116331461273457604051635f159e6360e01b815260040160405180910390fd5b6000612ab0611ca0565b6001600160a01b0385166000818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b6000612b3e611ca0565b9050306001600160a01b03841603612b7457604051630b40d17960e31b81526001600160a01b0384166004820152602401610a2c565b6001600160a01b038316600081815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061255290851515815260200190565b600080306001600160a01b03861603612c0157612bf88685856132a3565b91509150612c24565b60048310612c1d57612c18868661086d8787612c2d565b612bf8565b5060009050805b94509492505050565b6000612c3c6004828486614716565b610af991614740565b600080612c50611ca0565b600084815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612c9f5760405163060a299b60e41b815260048101869052602401610a2c565b612ca761273e565b65ffffffffffff168265ffffffffffff161115612cda57604051630c65b5bd60e11b815260048101869052602401610a2c565b612ce382611efb565b15612d0457604051631e2975b960e21b815260048101869052602401610a2c565b6000858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612dc05760405163cd78605960e01b8152306004820152602401610a2c565b600080856001600160a01b03168486604051612ddc9190614389565b60006040518083038185875af1925050503d8060008114612e19576040519150601f19603f3d011682016040523d82523d6000602084013e612e1e565b606091505b5091509150611ad38683836136bc565b6000818152600183016020526040812054612e75575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556113a8565b5060006113a8565b600080612e88611ca0565b905067fffffffffffffffe196001600160401b03871601612ec75760405163061c6a4360e21b81526001600160401b0387166004820152602401610a2c565b6001600160401b038616600090815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612fbd578563ffffffff16612f1561273e565b612f1f91906144dd565b905060405180604001604052808265ffffffffffff168152602001612f4d8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a16600090815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561306d565b6001600160401b038816600090815260018401602090815260408083206001600160a01b038b16845290915281205461300991600160301b9091046001600160701b0316908790613ace565b6001600160401b038a16600090815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b6000808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c811690871681111561311b57828282613120565b816000805b9550955095505050505b9250925092565b600061313b611ca0565b90506001600160401b038316158061315b57506001600160401b03838116145b156131845760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b03838116600081815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b60006131ed611ca0565b90506001600160401b038316158061320d57506001600160401b03838116145b156132365760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b0383811660008181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b60008060048310156132ba57506000905080611727565b306001600160a01b038616036132dd576126ca306132d88686612c2d565b613718565b60008060006132ec878761335b565b925092509250826133065760008094509450505050611727565b600080613313848b6119da565b915091508161332d57600080965096505050505050611727565b6133438363ffffffff168263ffffffff16613a5c565b63ffffffff8116159b909a5098505050505050505050565b6000808060048410156133765750600091508190508061312a565b60006133828686612c2d565b90506001600160e01b031981166310a6aa3760e31b14806133b357506001600160e01b031981166330cae18760e01b145b806133ce57506001600160e01b0319811663294b14a960e11b145b806133e957506001600160e01b03198116635326cae760e11b145b8061340457506001600160e01b0319811663d22b598960e01b145b8061341f57506001600160e01b03198116633476ae9760e11b145b8061343a57506001600160e01b031981166317ea2ab560e21b145b8061345557506001600160e01b0319811663a3907d7160e01b145b8061347057506001600160e01b03198116632de03fb760e21b145b156134865760016000809350935093505061312a565b6001600160e01b0319811663063fc60f60e21b14806134b557506001600160e01b0319811663167bd39560e01b145b806134d057506001600160e01b031981166308d6122d60e01b145b156135125760006134e560246004888a614716565b8101906134f29190613c9a565b905060006134ff82610fa0565b6001965060009550935061312a92505050565b6001600160e01b0319811663012e238d60e51b148061354157506001600160e01b03198116635be958b160e11b145b1561357f57600061355660246004888a614716565b8101906135639190613c7f565b9050600161357082611018565b6000945094509450505061312a565b5060009586955085945092505050565b6000613599611ca0565b905067fffffffffffffffe196001600160401b038416016135d85760405163061c6a4360e21b81526001600160401b0384166004820152602401610a2c565b6001600160401b0383166000908152600182810160205260408220015461361390600160801b90046001600160701b03168462069780613ace565b6001600160401b038616600081815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b48906136ae908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826136d1576136cc82613b78565b610af9565b81511580156136e857506001600160a01b0384163b155b1561371157604051639996b31560e01b81526001600160a01b0385166004820152602401610a2c565b5080610af9565b600080613723611ca0565b905061372f8484612d59565b600390910154149392505050565b60008181526001830160205260408120548015613826576000613761600183614770565b855490915060009061377590600190614770565b90508082146137da576000866000018281548110613795576137956143a5565b90600052602060002001549050808760000184815481106137b8576137b86143a5565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806137eb576137eb614783565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506113a8565b60009150506113a8565b60008061383b611ca0565b905067fffffffffffffffe196001600160401b0385160161387a5760405163061c6a4360e21b81526001600160401b0385166004820152602401610a2c565b6001600160401b038416600090815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff1690036138c15760009150506113a8565b6001600160401b038416600081815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b600065ffffffffffff821115613962576040516306dfcc6560e41b81526030600482015260248101839052604401610a2c565b5090565b6000613970611ca0565b905060006139a883620697806001600160a01b0387166000908152602086905260409020600101546001600160701b03169190613ace565b6001600160a01b0386166000818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c91016136ae565b6000826000018281548110613a4957613a496143a5565b9060005260206000200154905092915050565b6000818311613a6b5781610af9565b5090919050565b6000613a7c611ca0565b600083815260028201602052604090205490915065ffffffffffff168015801590613aad5750613aab81611efb565b155b15610c5c5760405163813e945960e01b815260048101849052602401610a2c565b6000806000613ae5866001600160701b0316611cc4565b90506000613b228563ffffffff168763ffffffff168463ffffffff1611613b0d576000613b17565b613b178885614799565b63ffffffff16613a5c565b90508063ffffffff16613b3361273e565b613b3d91906144dd565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b805115613b885780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114613ba157600080fd5b60008083601f840112613bcb57600080fd5b5081356001600160401b03811115613be257600080fd5b6020830191508360208260051b8501011115611a5057600080fd5b80356001600160401b0381168114613c1457600080fd5b919050565b60008060008060608587031215613c2f57600080fd5b8435613c3a81613ba4565b935060208501356001600160401b03811115613c5557600080fd5b613c6187828801613bb9565b9094509250613c74905060408601613bfd565b905092959194509250565b600060208284031215613c9157600080fd5b610af982613bfd565b600060208284031215613cac57600080fd5b8135610af981613ba4565b60005b83811015613cd2578181015183820152602001613cba565b50506000910152565b60008151808452613cf3816020860160208601613cb7565b601f01601f19169290920160200192915050565b602080825282516001600160a01b03168282015282015160606040830152600090613d356080840182613cdb565b905064ffffffffff60408501511660608401528091505092915050565b8015158114613ba157600080fd5b60008060408385031215613d7357600080fd5b8235613d7e81613ba4565b91506020830135613d8e81613d52565b809150509250929050565b60008060408385031215613dac57600080fd5b8235613db781613ba4565b91506020830135613d8e81613ba4565b60008083601f840112613dd957600080fd5b5081356001600160401b03811115613df057600080fd5b602083019150836020828501011115611a5057600080fd5b600080600060408486031215613e1d57600080fd5b8335613e2881613ba4565b925060208401356001600160401b03811115613e4357600080fd5b613e4f86828701613dc7565b9497909650939450505050565b803563ffffffff81168114613c1457600080fd5b600080600060608486031215613e8557600080fd5b613e8e84613bfd565b92506020840135613e9e81613ba4565b9150613eac60408501613e5c565b90509250925092565b60008060408385031215613ec857600080fd5b613db783613bfd565b60008060408385031215613ee457600080fd5b613eed83613bfd565b9150613efb60208401613bfd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613f2b57600080fd5b81356001600160401b0380821115613f4557613f45613f04565b604051601f8301601f19908116603f01168101908282118183101715613f6d57613f6d613f04565b81604052838152866020858801011115613f8657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215613fb857600080fd5b81356001600160401b03811115613fce57600080fd5b610ef484828501613f1a565b600060208284031215613fec57600080fd5b5035919050565b602081526001600160401b0382511660208201526000602083015160606040840152613d356080840182613cdb565b6000806040838503121561403557600080fd5b823561404081613ba4565b915060208301356001600160401b0381111561405b57600080fd5b61406785828601613f1a565b9150509250929050565b6000806040838503121561408457600080fd5b61404083613bfd565b6001600160e01b031981168114613ba157600080fd5b600080604083850312156140b657600080fd5b82356140c181613ba4565b91506020830135613d8e8161408d565b6000806000604084860312156140e657600080fd5b613e2884613bfd565b6000806040838503121561410257600080fd5b61410b83613bfd565b9150613efb60208401613e5c565b6000806000806060858703121561412f57600080fd5b843561413a81613ba4565b9350602085013561414a81613ba4565b925060408501356001600160401b0381111561416557600080fd5b61417187828801613dc7565b95989497509550505050565b6000806020838503121561419057600080fd5b82356001600160401b038111156141a657600080fd5b6141b285828601613bb9565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561421357603f19888603018452614201858351613cdb565b945092850192908501906001016141e5565b5092979650505050505050565b60008060006060848603121561423557600080fd5b833561424081613ba4565b9250602084013561425081613ba4565b915060408401356142608161408d565b809150509250925092565b64ffffffffff81168114613ba157600080fd5b60006020828403121561429057600080fd5b8135610af98161426b565b600080604083850312156142ae57600080fd5b823561410b81613ba4565b600080604083850312156142cc57600080fd5b6142d583613bfd565b946020939093013593505050565b600080600080606085870312156142f957600080fd5b843561430481613ba4565b935060208501356001600160401b0381111561431f57600080fd5b61432b87828801613dc7565b909450925050604085013565ffffffffffff8116811461434a57600080fd5b939692955090935050565b600181811c9082168061436957607f821691505b60208210810361201257634e487b7160e01b600052602260045260246000fd5b6000825161439b818460208701613cb7565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156143cd57600080fd5b8151610af981613d52565b6000602082840312156143ea57600080fd5b8151610af98161426b565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03858116825284166020820152606060408201819052600090611ad390830184866143f5565b6000808335601e1984360301811261446257600080fd5b8301803591506001600160401b0382111561447c57600080fd5b602001915036819003821315611a5057600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016144b9576144b9614491565b5060010190565b6000602082840312156144d257600080fd5b8135610af98161408d565b65ffffffffffff8181168382160190808211156116d7576116d7614491565b6001600160a01b03848116825283166020820152606060408201819052600090610cdc90830184613cdb565b601f821115610c5c57600081815260208120601f850160051c8101602086101561454f5750805b601f850160051c820191505b81811015610a735782815560010161455b565b81516001600160401b0381111561458757614587613f04565b61459b816145958454614355565b84614528565b602080601f8311600181146145d057600084156145b85750858301515b600019600386901b1c1916600185901b178555610a73565b600085815260208120601f198616915b828110156145ff578886015182559484019460019091019084016145e0565b508582101561461d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201819052600090610ef490830184613cdb565b60006001600160401b03808616835280851660208401525060606040830152610cdc6060830184613cdb565b6001600160401b0383168152604060208201526000610ef46040830184613cdb565b602081526000610ef46020830184866143f5565b6000602082840312156146c557600080fd5b8151610af98161408d565b65ffffffffffff861681526001600160a01b0385811660208301528416604082015260806060820181905260009061470b90830184866143f5565b979650505050505050565b6000808585111561472657600080fd5b8386111561473357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156147685780818660040360031b1b83161692505b505092915050565b818103818111156113a8576113a8614491565b634e487b7160e01b600052603160045260246000fd5b63ffffffff8281168282160390808211156116d7576116d761449156fe5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769006eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e6005bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876904a2646970667358221220d8f8e0e44c6cb84ecbee79ea15b03843d195415503310e4be4dabf1f92d5cd4164736f6c63430008140033",
1722
+ "linkReferences": {
1723
+ "contracts/type/Timestamp.sol": {
1724
+ "TimestampLib": [
1725
+ {
1726
+ "length": 20,
1727
+ "start": 4274
1728
+ },
1729
+ {
1730
+ "length": 20,
1731
+ "start": 4756
1732
+ },
1733
+ {
1734
+ "length": 20,
1735
+ "start": 4862
1736
+ },
1737
+ {
1738
+ "length": 20,
1739
+ "start": 5174
1740
+ },
1741
+ {
1742
+ "length": 20,
1743
+ "start": 6030
1744
+ },
1745
+ {
1746
+ "length": 20,
1747
+ "start": 6156
1748
+ },
1749
+ {
1750
+ "length": 20,
1751
+ "start": 6300
1752
+ },
1753
+ {
1754
+ "length": 20,
1755
+ "start": 8433
1756
+ },
1757
+ {
1758
+ "length": 20,
1759
+ "start": 9055
1760
+ }
1761
+ ]
1762
+ }
1763
+ },
1764
+ "deployedLinkReferences": {
1765
+ "contracts/type/Timestamp.sol": {
1766
+ "TimestampLib": [
1767
+ {
1768
+ "length": 20,
1769
+ "start": 4242
1770
+ },
1771
+ {
1772
+ "length": 20,
1773
+ "start": 4724
1774
+ },
1775
+ {
1776
+ "length": 20,
1777
+ "start": 4830
1778
+ },
1779
+ {
1780
+ "length": 20,
1781
+ "start": 5142
1782
+ },
1783
+ {
1784
+ "length": 20,
1785
+ "start": 5998
1786
+ },
1787
+ {
1788
+ "length": 20,
1789
+ "start": 6124
1790
+ },
1791
+ {
1792
+ "length": 20,
1793
+ "start": 6268
1794
+ },
1795
+ {
1796
+ "length": 20,
1797
+ "start": 8401
1798
+ },
1799
+ {
1800
+ "length": 20,
1801
+ "start": 9023
1802
+ }
1803
+ ]
1804
+ }
1805
+ }
1806
+ }