@etherisc/gif-next 0.0.2-f1e0c66-773 → 0.0.2-f1e6957-384
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -333
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +485 -26
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +588 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +183 -497
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -397
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -131
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -201
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +587 -64
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +405 -60
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +625 -182
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1645 -849
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -231
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1842
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -365
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -143
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -333
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -448
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +502 -364
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +212 -112
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +340 -112
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -246
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -426
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +266 -435
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +405 -102
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +511 -303
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +258 -427
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +495 -253
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -128
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -143
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -332
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +134 -79
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +401 -313
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +179 -207
- package/contracts/authorization/IAccess.sol +29 -11
- package/contracts/authorization/IAccessAdmin.sol +89 -83
- package/contracts/authorization/IAuthorization.sol +9 -37
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +235 -25
- package/contracts/distribution/BasicDistribution.sol +21 -19
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +46 -96
- package/contracts/distribution/DistributionService.sol +243 -132
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +4 -11
- package/contracts/distribution/IDistributionService.sol +47 -29
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +113 -43
- package/contracts/instance/IInstanceService.sol +61 -34
- package/contracts/instance/Instance.sol +201 -104
- package/contracts/instance/InstanceAdmin.sol +218 -177
- package/contracts/instance/InstanceAuthorizationV3.sol +154 -83
- package/contracts/instance/InstanceReader.sol +456 -255
- package/contracts/instance/InstanceService.sol +333 -262
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +153 -107
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +13 -10
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +29 -20
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +3 -7
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +11 -25
- package/contracts/oracle/OracleService.sol +119 -87
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +40 -43
- package/contracts/pool/BasicPoolAuthorization.sol +39 -13
- package/contracts/pool/BundleService.sol +200 -155
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +42 -46
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +97 -77
- package/contracts/pool/Pool.sol +145 -142
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +413 -233
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +144 -47
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -15
- package/contracts/product/BasicProductAuthorization.sol +32 -12
- package/contracts/product/ClaimService.sol +394 -185
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +29 -3
- package/contracts/product/IClaimService.sol +48 -11
- package/contracts/product/IPolicyService.sol +61 -39
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +434 -288
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +90 -84
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +198 -108
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +70 -32
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +367 -207
- package/contracts/registry/RegistryAdmin.sol +99 -291
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +38 -49
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +279 -239
- package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +72 -142
- package/contracts/shared/ComponentService.sol +428 -388
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +43 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +10 -2
- package/contracts/shared/InstanceLinkedComponent.sol +74 -54
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +31 -9
- package/contracts/shared/PolicyHolder.sol +18 -54
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -35
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +270 -71
- package/contracts/staking/IStakingService.sol +45 -78
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +526 -245
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +12 -9
- package/contracts/staking/StakingReader.sol +70 -82
- package/contracts/staking/StakingService.sol +62 -152
- package/contracts/staking/StakingServiceManager.sol +7 -5
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +73 -46
- package/contracts/type/Amount.sol +19 -0
- package/contracts/type/Blocknumber.sol +24 -23
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +73 -37
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +14 -7
- package/contracts/type/UFixed.sol +38 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +94 -46
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +8 -5
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/IProductService.sol +0 -33
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakeManagerLib.sol +0 -231
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -60,93 +60,108 @@ | |
| 60 60 | 
             
                {
         | 
| 61 61 | 
             
                  "inputs": [
         | 
| 62 62 | 
             
                    {
         | 
| 63 | 
            -
                      "internalType": " | 
| 64 | 
            -
                      "name": " | 
| 65 | 
            -
                      "type": " | 
| 66 | 
            -
                    },
         | 
| 67 | 
            -
                    {
         | 
| 68 | 
            -
                      "internalType": "StateId",
         | 
| 69 | 
            -
                      "name": "fromStateId",
         | 
| 70 | 
            -
                      "type": "uint8"
         | 
| 63 | 
            +
                      "internalType": "Seconds",
         | 
| 64 | 
            +
                      "name": "minLockingPeriod",
         | 
| 65 | 
            +
                      "type": "uint40"
         | 
| 71 66 | 
             
                    },
         | 
| 72 67 | 
             
                    {
         | 
| 73 | 
            -
                      "internalType": " | 
| 74 | 
            -
                      "name": " | 
| 75 | 
            -
                      "type": " | 
| 68 | 
            +
                      "internalType": "Seconds",
         | 
| 69 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 70 | 
            +
                      "type": "uint40"
         | 
| 76 71 | 
             
                    }
         | 
| 77 72 | 
             
                  ],
         | 
| 78 | 
            -
                  "name": " | 
| 73 | 
            +
                  "name": "ErrorStakingLockingPeriodsInvalid",
         | 
| 79 74 | 
             
                  "type": "error"
         | 
| 80 75 | 
             
                },
         | 
| 81 76 | 
             
                {
         | 
| 82 77 | 
             
                  "inputs": [
         | 
| 83 78 | 
             
                    {
         | 
| 84 | 
            -
                      "internalType": " | 
| 85 | 
            -
                      "name": " | 
| 86 | 
            -
                      "type": " | 
| 79 | 
            +
                      "internalType": "UFixed",
         | 
| 80 | 
            +
                      "name": "minRewardRate",
         | 
| 81 | 
            +
                      "type": "uint160"
         | 
| 87 82 | 
             
                    },
         | 
| 88 83 | 
             
                    {
         | 
| 89 | 
            -
                      "internalType": " | 
| 90 | 
            -
                      "name": " | 
| 91 | 
            -
                      "type": " | 
| 84 | 
            +
                      "internalType": "UFixed",
         | 
| 85 | 
            +
                      "name": "maxRewardRate",
         | 
| 86 | 
            +
                      "type": "uint160"
         | 
| 92 87 | 
             
                    }
         | 
| 93 88 | 
             
                  ],
         | 
| 94 | 
            -
                  "name": " | 
| 89 | 
            +
                  "name": "ErrorStakingRewardRatesInvalid",
         | 
| 95 90 | 
             
                  "type": "error"
         | 
| 96 91 | 
             
                },
         | 
| 97 92 | 
             
                {
         | 
| 98 93 | 
             
                  "inputs": [
         | 
| 99 94 | 
             
                    {
         | 
| 100 | 
            -
                      "internalType": " | 
| 101 | 
            -
                      "name": " | 
| 102 | 
            -
                      "type": " | 
| 95 | 
            +
                      "internalType": "NftId",
         | 
| 96 | 
            +
                      "name": "stakeNftId",
         | 
| 97 | 
            +
                      "type": "uint96"
         | 
| 98 | 
            +
                    },
         | 
| 99 | 
            +
                    {
         | 
| 100 | 
            +
                      "internalType": "Timestamp",
         | 
| 101 | 
            +
                      "name": "lockedUntil",
         | 
| 102 | 
            +
                      "type": "uint40"
         | 
| 103 103 | 
             
                    }
         | 
| 104 104 | 
             
                  ],
         | 
| 105 | 
            -
                  "name": " | 
| 105 | 
            +
                  "name": "ErrorStakingStakeLocked",
         | 
| 106 106 | 
             
                  "type": "error"
         | 
| 107 107 | 
             
                },
         | 
| 108 108 | 
             
                {
         | 
| 109 109 | 
             
                  "inputs": [
         | 
| 110 110 | 
             
                    {
         | 
| 111 | 
            -
                      "internalType": " | 
| 112 | 
            -
                      "name": " | 
| 113 | 
            -
                      "type": " | 
| 111 | 
            +
                      "internalType": "Amount",
         | 
| 112 | 
            +
                      "name": "minStakingAmount",
         | 
| 113 | 
            +
                      "type": "uint96"
         | 
| 114 | 
            +
                    },
         | 
| 115 | 
            +
                    {
         | 
| 116 | 
            +
                      "internalType": "Amount",
         | 
| 117 | 
            +
                      "name": "maxStakingAmount",
         | 
| 118 | 
            +
                      "type": "uint96"
         | 
| 114 119 | 
             
                    }
         | 
| 115 120 | 
             
                  ],
         | 
| 116 | 
            -
                  "name": " | 
| 121 | 
            +
                  "name": "ErrorStakingStakingAmountsInvalid",
         | 
| 117 122 | 
             
                  "type": "error"
         | 
| 118 123 | 
             
                },
         | 
| 119 124 | 
             
                {
         | 
| 120 125 | 
             
                  "inputs": [
         | 
| 121 126 | 
             
                    {
         | 
| 122 | 
            -
                      "internalType": " | 
| 123 | 
            -
                      "name": " | 
| 124 | 
            -
                      "type": " | 
| 127 | 
            +
                      "internalType": "NftId",
         | 
| 128 | 
            +
                      "name": "targetNftId",
         | 
| 129 | 
            +
                      "type": "uint96"
         | 
| 125 130 | 
             
                    }
         | 
| 126 131 | 
             
                  ],
         | 
| 127 | 
            -
                  "name": " | 
| 132 | 
            +
                  "name": "ErrorStakingStoreLimitNotInitialized",
         | 
| 128 133 | 
             
                  "type": "error"
         | 
| 129 134 | 
             
                },
         | 
| 130 135 | 
             
                {
         | 
| 131 136 | 
             
                  "inputs": [
         | 
| 132 137 | 
             
                    {
         | 
| 133 | 
            -
                      "internalType": " | 
| 134 | 
            -
                      "name": " | 
| 135 | 
            -
                      "type": " | 
| 138 | 
            +
                      "internalType": "NftId",
         | 
| 139 | 
            +
                      "name": "targetNftId",
         | 
| 140 | 
            +
                      "type": "uint96"
         | 
| 136 141 | 
             
                    }
         | 
| 137 142 | 
             
                  ],
         | 
| 138 | 
            -
                  "name": " | 
| 143 | 
            +
                  "name": "ErrorStakingStoreNotTarget",
         | 
| 139 144 | 
             
                  "type": "error"
         | 
| 140 145 | 
             
                },
         | 
| 141 146 | 
             
                {
         | 
| 142 147 | 
             
                  "inputs": [
         | 
| 143 148 | 
             
                    {
         | 
| 144 | 
            -
                      "internalType": " | 
| 145 | 
            -
                      "name": " | 
| 146 | 
            -
                      "type": " | 
| 149 | 
            +
                      "internalType": "NftId",
         | 
| 150 | 
            +
                      "name": "targetNftId",
         | 
| 151 | 
            +
                      "type": "uint96"
         | 
| 152 | 
            +
                    },
         | 
| 153 | 
            +
                    {
         | 
| 154 | 
            +
                      "internalType": "Amount",
         | 
| 155 | 
            +
                      "name": "reserveAmount",
         | 
| 156 | 
            +
                      "type": "uint96"
         | 
| 157 | 
            +
                    },
         | 
| 158 | 
            +
                    {
         | 
| 159 | 
            +
                      "internalType": "Amount",
         | 
| 160 | 
            +
                      "name": "claimedAmount",
         | 
| 161 | 
            +
                      "type": "uint96"
         | 
| 147 162 | 
             
                    }
         | 
| 148 163 | 
             
                  ],
         | 
| 149 | 
            -
                  "name": " | 
| 164 | 
            +
                  "name": "ErrorStakingStoreRewardReservesInsufficient",
         | 
| 150 165 | 
             
                  "type": "error"
         | 
| 151 166 | 
             
                },
         | 
| 152 167 | 
             
                {
         | 
| @@ -157,29 +172,29 @@ | |
| 157 172 | 
             
                      "type": "uint96"
         | 
| 158 173 | 
             
                    }
         | 
| 159 174 | 
             
                  ],
         | 
| 160 | 
            -
                  "name": " | 
| 175 | 
            +
                  "name": "ErrorStakingStoreStakeBalanceAlreadyInitialized",
         | 
| 161 176 | 
             
                  "type": "error"
         | 
| 162 177 | 
             
                },
         | 
| 163 178 | 
             
                {
         | 
| 164 179 | 
             
                  "inputs": [
         | 
| 165 180 | 
             
                    {
         | 
| 166 181 | 
             
                      "internalType": "NftId",
         | 
| 167 | 
            -
                      "name": " | 
| 182 | 
            +
                      "name": "nftI",
         | 
| 168 183 | 
             
                      "type": "uint96"
         | 
| 169 184 | 
             
                    }
         | 
| 170 185 | 
             
                  ],
         | 
| 171 | 
            -
                  "name": " | 
| 186 | 
            +
                  "name": "ErrorStakingStoreStakeBalanceNotInitialized",
         | 
| 172 187 | 
             
                  "type": "error"
         | 
| 173 188 | 
             
                },
         | 
| 174 189 | 
             
                {
         | 
| 175 190 | 
             
                  "inputs": [
         | 
| 176 191 | 
             
                    {
         | 
| 177 192 | 
             
                      "internalType": "NftId",
         | 
| 178 | 
            -
                      "name": " | 
| 193 | 
            +
                      "name": "nftId",
         | 
| 179 194 | 
             
                      "type": "uint96"
         | 
| 180 195 | 
             
                    }
         | 
| 181 196 | 
             
                  ],
         | 
| 182 | 
            -
                  "name": " | 
| 197 | 
            +
                  "name": "ErrorStakingStoreStakeNotInitialized",
         | 
| 183 198 | 
             
                  "type": "error"
         | 
| 184 199 | 
             
                },
         | 
| 185 200 | 
             
                {
         | 
| @@ -191,125 +206,175 @@ | |
| 191 206 | 
             
                    },
         | 
| 192 207 | 
             
                    {
         | 
| 193 208 | 
             
                      "internalType": "Amount",
         | 
| 194 | 
            -
                      "name": " | 
| 209 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 195 210 | 
             
                      "type": "uint96"
         | 
| 196 211 | 
             
                    },
         | 
| 197 212 | 
             
                    {
         | 
| 198 213 | 
             
                      "internalType": "Amount",
         | 
| 199 | 
            -
                      "name": " | 
| 214 | 
            +
                      "name": "newIStaking",
         | 
| 200 215 | 
             
                      "type": "uint96"
         | 
| 201 216 | 
             
                    }
         | 
| 202 217 | 
             
                  ],
         | 
| 203 | 
            -
                  "name": " | 
| 218 | 
            +
                  "name": "ErrorStakingStoreStakesExceedingTargetMaxAmount",
         | 
| 204 219 | 
             
                  "type": "error"
         | 
| 205 220 | 
             
                },
         | 
| 206 221 | 
             
                {
         | 
| 207 222 | 
             
                  "inputs": [
         | 
| 208 223 | 
             
                    {
         | 
| 209 224 | 
             
                      "internalType": "NftId",
         | 
| 210 | 
            -
                      "name": " | 
| 225 | 
            +
                      "name": "targetNftId",
         | 
| 211 226 | 
             
                      "type": "uint96"
         | 
| 212 227 | 
             
                    }
         | 
| 213 228 | 
             
                  ],
         | 
| 214 | 
            -
                  "name": " | 
| 229 | 
            +
                  "name": "ErrorStakingStoreTargetNotInitialized",
         | 
| 215 230 | 
             
                  "type": "error"
         | 
| 216 231 | 
             
                },
         | 
| 217 232 | 
             
                {
         | 
| 218 | 
            -
                  "inputs": [ | 
| 219 | 
            -
             | 
| 233 | 
            +
                  "inputs": [
         | 
| 234 | 
            +
                    {
         | 
| 235 | 
            +
                      "internalType": "ChainId",
         | 
| 236 | 
            +
                      "name": "chainId",
         | 
| 237 | 
            +
                      "type": "uint96"
         | 
| 238 | 
            +
                    },
         | 
| 239 | 
            +
                    {
         | 
| 240 | 
            +
                      "internalType": "address",
         | 
| 241 | 
            +
                      "name": "token",
         | 
| 242 | 
            +
                      "type": "address"
         | 
| 243 | 
            +
                    }
         | 
| 244 | 
            +
                  ],
         | 
| 245 | 
            +
                  "name": "ErrorStakingStoreTokenAlreadyAdded",
         | 
| 220 246 | 
             
                  "type": "error"
         | 
| 221 247 | 
             
                },
         | 
| 222 248 | 
             
                {
         | 
| 223 | 
            -
                  "anonymous": false,
         | 
| 224 249 | 
             
                  "inputs": [
         | 
| 225 250 | 
             
                    {
         | 
| 226 | 
            -
                      " | 
| 251 | 
            +
                      "internalType": "ChainId",
         | 
| 252 | 
            +
                      "name": "chainId",
         | 
| 253 | 
            +
                      "type": "uint96"
         | 
| 254 | 
            +
                    },
         | 
| 255 | 
            +
                    {
         | 
| 227 256 | 
             
                      "internalType": "address",
         | 
| 228 | 
            -
                      "name": " | 
| 257 | 
            +
                      "name": "token",
         | 
| 229 258 | 
             
                      "type": "address"
         | 
| 230 259 | 
             
                    }
         | 
| 231 260 | 
             
                  ],
         | 
| 232 | 
            -
                  "name": " | 
| 233 | 
            -
                  "type": " | 
| 261 | 
            +
                  "name": "ErrorStakingStoreTokenNotRegistered",
         | 
| 262 | 
            +
                  "type": "error"
         | 
| 234 263 | 
             
                },
         | 
| 235 264 | 
             
                {
         | 
| 236 | 
            -
                  "anonymous": false,
         | 
| 237 265 | 
             
                  "inputs": [
         | 
| 238 266 | 
             
                    {
         | 
| 239 | 
            -
                      " | 
| 240 | 
            -
                      " | 
| 241 | 
            -
                      " | 
| 242 | 
            -
                      "type": "uint8"
         | 
| 267 | 
            +
                      "internalType": "ChainId",
         | 
| 268 | 
            +
                      "name": "chainId",
         | 
| 269 | 
            +
                      "type": "uint96"
         | 
| 243 270 | 
             
                    },
         | 
| 244 271 | 
             
                    {
         | 
| 245 | 
            -
                      " | 
| 246 | 
            -
                      " | 
| 247 | 
            -
                      " | 
| 248 | 
            -
             | 
| 249 | 
            -
             | 
| 272 | 
            +
                      "internalType": "address",
         | 
| 273 | 
            +
                      "name": "token",
         | 
| 274 | 
            +
                      "type": "address"
         | 
| 275 | 
            +
                    }
         | 
| 276 | 
            +
                  ],
         | 
| 277 | 
            +
                  "name": "ErrorStakingStoreTokenUnknown",
         | 
| 278 | 
            +
                  "type": "error"
         | 
| 279 | 
            +
                },
         | 
| 280 | 
            +
                {
         | 
| 281 | 
            +
                  "inputs": [
         | 
| 250 282 | 
             
                    {
         | 
| 251 | 
            -
                      " | 
| 252 | 
            -
                      " | 
| 253 | 
            -
                      " | 
| 254 | 
            -
                      "type": "uint8"
         | 
| 283 | 
            +
                      "internalType": "NftId",
         | 
| 284 | 
            +
                      "name": "nftId",
         | 
| 285 | 
            +
                      "type": "uint96"
         | 
| 255 286 | 
             
                    },
         | 
| 256 287 | 
             
                    {
         | 
| 257 | 
            -
                      "indexed": false,
         | 
| 258 288 | 
             
                      "internalType": "address",
         | 
| 259 | 
            -
                      "name": " | 
| 289 | 
            +
                      "name": "token",
         | 
| 260 290 | 
             
                      "type": "address"
         | 
| 291 | 
            +
                    }
         | 
| 292 | 
            +
                  ],
         | 
| 293 | 
            +
                  "name": "ErrorStakingStoreTvlBalanceAlreadyInitialized",
         | 
| 294 | 
            +
                  "type": "error"
         | 
| 295 | 
            +
                },
         | 
| 296 | 
            +
                {
         | 
| 297 | 
            +
                  "inputs": [
         | 
| 298 | 
            +
                    {
         | 
| 299 | 
            +
                      "internalType": "NftId",
         | 
| 300 | 
            +
                      "name": "nftId",
         | 
| 301 | 
            +
                      "type": "uint96"
         | 
| 261 302 | 
             
                    },
         | 
| 262 303 | 
             
                    {
         | 
| 263 | 
            -
                      "indexed": false,
         | 
| 264 304 | 
             
                      "internalType": "address",
         | 
| 265 | 
            -
                      "name": " | 
| 305 | 
            +
                      "name": "token",
         | 
| 266 306 | 
             
                      "type": "address"
         | 
| 267 307 | 
             
                    }
         | 
| 268 308 | 
             
                  ],
         | 
| 269 | 
            -
                  "name": " | 
| 270 | 
            -
                  "type": " | 
| 309 | 
            +
                  "name": "ErrorStakingStoreTvlBalanceNotInitialized",
         | 
| 310 | 
            +
                  "type": "error"
         | 
| 271 311 | 
             
                },
         | 
| 272 312 | 
             
                {
         | 
| 273 | 
            -
                  "anonymous": false,
         | 
| 274 313 | 
             
                  "inputs": [
         | 
| 275 314 | 
             
                    {
         | 
| 276 | 
            -
                      "indexed": false,
         | 
| 277 315 | 
             
                      "internalType": "ObjectType",
         | 
| 278 | 
            -
                      "name": " | 
| 316 | 
            +
                      "name": "targetType",
         | 
| 279 317 | 
             
                      "type": "uint8"
         | 
| 280 | 
            -
                    } | 
| 318 | 
            +
                    }
         | 
| 319 | 
            +
                  ],
         | 
| 320 | 
            +
                  "name": "ErrorStakingSupportTypeInvalid",
         | 
| 321 | 
            +
                  "type": "error"
         | 
| 322 | 
            +
                },
         | 
| 323 | 
            +
                {
         | 
| 324 | 
            +
                  "inputs": [
         | 
| 281 325 | 
             
                    {
         | 
| 282 | 
            -
                      " | 
| 283 | 
            -
                      " | 
| 284 | 
            -
                      " | 
| 285 | 
            -
                      "type": "bytes31"
         | 
| 326 | 
            +
                      "internalType": "NftId",
         | 
| 327 | 
            +
                      "name": "targetNftId",
         | 
| 328 | 
            +
                      "type": "uint96"
         | 
| 286 329 | 
             
                    },
         | 
| 287 330 | 
             
                    {
         | 
| 288 | 
            -
                      " | 
| 289 | 
            -
                      " | 
| 290 | 
            -
                      " | 
| 291 | 
            -
                      "type": "uint8"
         | 
| 331 | 
            +
                      "internalType": "Amount",
         | 
| 332 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 333 | 
            +
                      "type": "uint96"
         | 
| 292 334 | 
             
                    },
         | 
| 293 335 | 
             
                    {
         | 
| 294 | 
            -
                      " | 
| 295 | 
            -
                      " | 
| 296 | 
            -
                      " | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 336 | 
            +
                      "internalType": "Amount",
         | 
| 337 | 
            +
                      "name": "stakedAmount",
         | 
| 338 | 
            +
                      "type": "uint96"
         | 
| 339 | 
            +
                    }
         | 
| 340 | 
            +
                  ],
         | 
| 341 | 
            +
                  "name": "ErrorStakingTargetMaxStakedAmountExceeded",
         | 
| 342 | 
            +
                  "type": "error"
         | 
| 343 | 
            +
                },
         | 
| 344 | 
            +
                {
         | 
| 345 | 
            +
                  "inputs": [],
         | 
| 346 | 
            +
                  "name": "InvalidInitialization",
         | 
| 347 | 
            +
                  "type": "error"
         | 
| 348 | 
            +
                },
         | 
| 349 | 
            +
                {
         | 
| 350 | 
            +
                  "inputs": [],
         | 
| 351 | 
            +
                  "name": "NotInitializing",
         | 
| 352 | 
            +
                  "type": "error"
         | 
| 353 | 
            +
                },
         | 
| 354 | 
            +
                {
         | 
| 355 | 
            +
                  "anonymous": false,
         | 
| 356 | 
            +
                  "inputs": [
         | 
| 299 357 | 
             
                    {
         | 
| 300 358 | 
             
                      "indexed": false,
         | 
| 301 359 | 
             
                      "internalType": "address",
         | 
| 302 | 
            -
                      "name": " | 
| 360 | 
            +
                      "name": "authority",
         | 
| 303 361 | 
             
                      "type": "address"
         | 
| 304 | 
            -
                    } | 
| 362 | 
            +
                    }
         | 
| 363 | 
            +
                  ],
         | 
| 364 | 
            +
                  "name": "AuthorityUpdated",
         | 
| 365 | 
            +
                  "type": "event"
         | 
| 366 | 
            +
                },
         | 
| 367 | 
            +
                {
         | 
| 368 | 
            +
                  "anonymous": false,
         | 
| 369 | 
            +
                  "inputs": [
         | 
| 305 370 | 
             
                    {
         | 
| 306 371 | 
             
                      "indexed": false,
         | 
| 307 | 
            -
                      "internalType": " | 
| 308 | 
            -
                      "name": " | 
| 309 | 
            -
                      "type": " | 
| 372 | 
            +
                      "internalType": "uint64",
         | 
| 373 | 
            +
                      "name": "version",
         | 
| 374 | 
            +
                      "type": "uint64"
         | 
| 310 375 | 
             
                    }
         | 
| 311 376 | 
             
                  ],
         | 
| 312 | 
            -
                  "name": " | 
| 377 | 
            +
                  "name": "Initialized",
         | 
| 313 378 | 
             
                  "type": "event"
         | 
| 314 379 | 
             
                },
         | 
| 315 380 | 
             
                {
         | 
| @@ -324,23 +389,23 @@ | |
| 324 389 | 
             
                    {
         | 
| 325 390 | 
             
                      "indexed": false,
         | 
| 326 391 | 
             
                      "internalType": "Amount",
         | 
| 327 | 
            -
                      "name": " | 
| 392 | 
            +
                      "name": "marginAmount",
         | 
| 328 393 | 
             
                      "type": "uint96"
         | 
| 329 394 | 
             
                    },
         | 
| 330 395 | 
             
                    {
         | 
| 331 396 | 
             
                      "indexed": false,
         | 
| 332 397 | 
             
                      "internalType": "Amount",
         | 
| 333 | 
            -
                      "name": " | 
| 398 | 
            +
                      "name": "hardLimitAmount",
         | 
| 334 399 | 
             
                      "type": "uint96"
         | 
| 335 400 | 
             
                    },
         | 
| 336 401 | 
             
                    {
         | 
| 337 402 | 
             
                      "indexed": false,
         | 
| 338 403 | 
             
                      "internalType": "Blocknumber",
         | 
| 339 | 
            -
                      "name": " | 
| 340 | 
            -
                      "type": " | 
| 404 | 
            +
                      "name": "lastUpdateIn",
         | 
| 405 | 
            +
                      "type": "uint40"
         | 
| 341 406 | 
             
                    }
         | 
| 342 407 | 
             
                  ],
         | 
| 343 | 
            -
                  "name": " | 
| 408 | 
            +
                  "name": "LogStakingLimitsSet",
         | 
| 344 409 | 
             
                  "type": "event"
         | 
| 345 410 | 
             
                },
         | 
| 346 411 | 
             
                {
         | 
| @@ -358,6 +423,12 @@ | |
| 358 423 | 
             
                      "name": "dipAmount",
         | 
| 359 424 | 
             
                      "type": "uint96"
         | 
| 360 425 | 
             
                    },
         | 
| 426 | 
            +
                    {
         | 
| 427 | 
            +
                      "indexed": false,
         | 
| 428 | 
            +
                      "internalType": "address",
         | 
| 429 | 
            +
                      "name": "targetOwner",
         | 
| 430 | 
            +
                      "type": "address"
         | 
| 431 | 
            +
                    },
         | 
| 361 432 | 
             
                    {
         | 
| 362 433 | 
             
                      "indexed": false,
         | 
| 363 434 | 
             
                      "internalType": "Amount",
         | 
| @@ -367,11 +438,11 @@ | |
| 367 438 | 
             
                    {
         | 
| 368 439 | 
             
                      "indexed": false,
         | 
| 369 440 | 
             
                      "internalType": "Blocknumber",
         | 
| 370 | 
            -
                      "name": " | 
| 371 | 
            -
                      "type": " | 
| 441 | 
            +
                      "name": "lastUpdateIn",
         | 
| 442 | 
            +
                      "type": "uint40"
         | 
| 372 443 | 
             
                    }
         | 
| 373 444 | 
             
                  ],
         | 
| 374 | 
            -
                  "name": " | 
| 445 | 
            +
                  "name": "LogStakingRewardReservesRefilled",
         | 
| 375 446 | 
             
                  "type": "event"
         | 
| 376 447 | 
             
                },
         | 
| 377 448 | 
             
                {
         | 
| @@ -380,29 +451,29 @@ | |
| 380 451 | 
             
                    {
         | 
| 381 452 | 
             
                      "indexed": false,
         | 
| 382 453 | 
             
                      "internalType": "NftId",
         | 
| 383 | 
            -
                      "name": " | 
| 454 | 
            +
                      "name": "targetNftId",
         | 
| 384 455 | 
             
                      "type": "uint96"
         | 
| 385 456 | 
             
                    },
         | 
| 386 457 | 
             
                    {
         | 
| 387 458 | 
             
                      "indexed": false,
         | 
| 388 459 | 
             
                      "internalType": "Amount",
         | 
| 389 | 
            -
                      "name": " | 
| 460 | 
            +
                      "name": "dipAmount",
         | 
| 390 461 | 
             
                      "type": "uint96"
         | 
| 391 462 | 
             
                    },
         | 
| 392 463 | 
             
                    {
         | 
| 393 464 | 
             
                      "indexed": false,
         | 
| 394 465 | 
             
                      "internalType": "Amount",
         | 
| 395 | 
            -
                      "name": " | 
| 466 | 
            +
                      "name": "reserveBalance",
         | 
| 396 467 | 
             
                      "type": "uint96"
         | 
| 397 468 | 
             
                    },
         | 
| 398 469 | 
             
                    {
         | 
| 399 470 | 
             
                      "indexed": false,
         | 
| 400 471 | 
             
                      "internalType": "Blocknumber",
         | 
| 401 | 
            -
                      "name": " | 
| 402 | 
            -
                      "type": " | 
| 472 | 
            +
                      "name": "lastUpdateIn",
         | 
| 473 | 
            +
                      "type": "uint40"
         | 
| 403 474 | 
             
                    }
         | 
| 404 475 | 
             
                  ],
         | 
| 405 | 
            -
                  "name": " | 
| 476 | 
            +
                  "name": "LogStakingRewardReservesSpent",
         | 
| 406 477 | 
             
                  "type": "event"
         | 
| 407 478 | 
             
                },
         | 
| 408 479 | 
             
                {
         | 
| @@ -411,29 +482,35 @@ | |
| 411 482 | 
             
                    {
         | 
| 412 483 | 
             
                      "indexed": false,
         | 
| 413 484 | 
             
                      "internalType": "NftId",
         | 
| 414 | 
            -
                      "name": " | 
| 485 | 
            +
                      "name": "targetNftId",
         | 
| 415 486 | 
             
                      "type": "uint96"
         | 
| 416 487 | 
             
                    },
         | 
| 417 488 | 
             
                    {
         | 
| 418 489 | 
             
                      "indexed": false,
         | 
| 419 490 | 
             
                      "internalType": "Amount",
         | 
| 420 | 
            -
                      "name": " | 
| 491 | 
            +
                      "name": "dipAmount",
         | 
| 421 492 | 
             
                      "type": "uint96"
         | 
| 422 493 | 
             
                    },
         | 
| 494 | 
            +
                    {
         | 
| 495 | 
            +
                      "indexed": false,
         | 
| 496 | 
            +
                      "internalType": "address",
         | 
| 497 | 
            +
                      "name": "targetOwner",
         | 
| 498 | 
            +
                      "type": "address"
         | 
| 499 | 
            +
                    },
         | 
| 423 500 | 
             
                    {
         | 
| 424 501 | 
             
                      "indexed": false,
         | 
| 425 502 | 
             
                      "internalType": "Amount",
         | 
| 426 | 
            -
                      "name": " | 
| 503 | 
            +
                      "name": "reserveBalance",
         | 
| 427 504 | 
             
                      "type": "uint96"
         | 
| 428 505 | 
             
                    },
         | 
| 429 506 | 
             
                    {
         | 
| 430 507 | 
             
                      "indexed": false,
         | 
| 431 508 | 
             
                      "internalType": "Blocknumber",
         | 
| 432 | 
            -
                      "name": " | 
| 433 | 
            -
                      "type": " | 
| 509 | 
            +
                      "name": "lastUpdateIn",
         | 
| 510 | 
            +
                      "type": "uint40"
         | 
| 434 511 | 
             
                    }
         | 
| 435 512 | 
             
                  ],
         | 
| 436 | 
            -
                  "name": " | 
| 513 | 
            +
                  "name": "LogStakingRewardReservesWithdrawn",
         | 
| 437 514 | 
             
                  "type": "event"
         | 
| 438 515 | 
             
                },
         | 
| 439 516 | 
             
                {
         | 
| @@ -442,41 +519,41 @@ | |
| 442 519 | 
             
                    {
         | 
| 443 520 | 
             
                      "indexed": false,
         | 
| 444 521 | 
             
                      "internalType": "NftId",
         | 
| 445 | 
            -
                      "name": " | 
| 522 | 
            +
                      "name": "stakeNftId",
         | 
| 446 523 | 
             
                      "type": "uint96"
         | 
| 447 524 | 
             
                    },
         | 
| 448 525 | 
             
                    {
         | 
| 449 526 | 
             
                      "indexed": false,
         | 
| 450 527 | 
             
                      "internalType": "Amount",
         | 
| 451 | 
            -
                      "name": " | 
| 528 | 
            +
                      "name": "claimedAmount",
         | 
| 452 529 | 
             
                      "type": "uint96"
         | 
| 453 530 | 
             
                    },
         | 
| 454 531 | 
             
                    {
         | 
| 455 532 | 
             
                      "indexed": false,
         | 
| 456 533 | 
             
                      "internalType": "Amount",
         | 
| 457 | 
            -
                      "name": " | 
| 534 | 
            +
                      "name": "stakeBalance",
         | 
| 458 535 | 
             
                      "type": "uint96"
         | 
| 459 536 | 
             
                    },
         | 
| 460 537 | 
             
                    {
         | 
| 461 538 | 
             
                      "indexed": false,
         | 
| 462 539 | 
             
                      "internalType": "Amount",
         | 
| 463 | 
            -
                      "name": " | 
| 540 | 
            +
                      "name": "rewardBalance",
         | 
| 464 541 | 
             
                      "type": "uint96"
         | 
| 465 542 | 
             
                    },
         | 
| 466 543 | 
             
                    {
         | 
| 467 544 | 
             
                      "indexed": false,
         | 
| 468 | 
            -
                      "internalType": " | 
| 469 | 
            -
                      "name": " | 
| 470 | 
            -
                      "type": " | 
| 545 | 
            +
                      "internalType": "Timestamp",
         | 
| 546 | 
            +
                      "name": "lockedUntil",
         | 
| 547 | 
            +
                      "type": "uint40"
         | 
| 471 548 | 
             
                    },
         | 
| 472 549 | 
             
                    {
         | 
| 473 550 | 
             
                      "indexed": false,
         | 
| 474 551 | 
             
                      "internalType": "Blocknumber",
         | 
| 475 | 
            -
                      "name": " | 
| 476 | 
            -
                      "type": " | 
| 552 | 
            +
                      "name": "lastUpdateIn",
         | 
| 553 | 
            +
                      "type": "uint40"
         | 
| 477 554 | 
             
                    }
         | 
| 478 555 | 
             
                  ],
         | 
| 479 | 
            -
                  "name": " | 
| 556 | 
            +
                  "name": "LogStakingRewardsClaimed",
         | 
| 480 557 | 
             
                  "type": "event"
         | 
| 481 558 | 
             
                },
         | 
| 482 559 | 
             
                {
         | 
| @@ -485,29 +562,41 @@ | |
| 485 562 | 
             
                    {
         | 
| 486 563 | 
             
                      "indexed": false,
         | 
| 487 564 | 
             
                      "internalType": "NftId",
         | 
| 488 | 
            -
                      "name": " | 
| 565 | 
            +
                      "name": "stakeNftId",
         | 
| 489 566 | 
             
                      "type": "uint96"
         | 
| 490 567 | 
             
                    },
         | 
| 491 568 | 
             
                    {
         | 
| 492 569 | 
             
                      "indexed": false,
         | 
| 493 570 | 
             
                      "internalType": "Amount",
         | 
| 494 | 
            -
                      "name": " | 
| 571 | 
            +
                      "name": "restakedAmount",
         | 
| 495 572 | 
             
                      "type": "uint96"
         | 
| 496 573 | 
             
                    },
         | 
| 497 574 | 
             
                    {
         | 
| 498 575 | 
             
                      "indexed": false,
         | 
| 499 576 | 
             
                      "internalType": "Amount",
         | 
| 500 | 
            -
                      "name": " | 
| 577 | 
            +
                      "name": "stakeBalance",
         | 
| 578 | 
            +
                      "type": "uint96"
         | 
| 579 | 
            +
                    },
         | 
| 580 | 
            +
                    {
         | 
| 581 | 
            +
                      "indexed": false,
         | 
| 582 | 
            +
                      "internalType": "Amount",
         | 
| 583 | 
            +
                      "name": "rewardBalance",
         | 
| 501 584 | 
             
                      "type": "uint96"
         | 
| 502 585 | 
             
                    },
         | 
| 586 | 
            +
                    {
         | 
| 587 | 
            +
                      "indexed": false,
         | 
| 588 | 
            +
                      "internalType": "Timestamp",
         | 
| 589 | 
            +
                      "name": "lockedUntil",
         | 
| 590 | 
            +
                      "type": "uint40"
         | 
| 591 | 
            +
                    },
         | 
| 503 592 | 
             
                    {
         | 
| 504 593 | 
             
                      "indexed": false,
         | 
| 505 594 | 
             
                      "internalType": "Blocknumber",
         | 
| 506 | 
            -
                      "name": " | 
| 507 | 
            -
                      "type": " | 
| 595 | 
            +
                      "name": "lastUpdateIn",
         | 
| 596 | 
            +
                      "type": "uint40"
         | 
| 508 597 | 
             
                    }
         | 
| 509 598 | 
             
                  ],
         | 
| 510 | 
            -
                  "name": " | 
| 599 | 
            +
                  "name": "LogStakingRewardsRestaked",
         | 
| 511 600 | 
             
                  "type": "event"
         | 
| 512 601 | 
             
                },
         | 
| 513 602 | 
             
                {
         | 
| @@ -516,29 +605,443 @@ | |
| 516 605 | 
             
                    {
         | 
| 517 606 | 
             
                      "indexed": false,
         | 
| 518 607 | 
             
                      "internalType": "NftId",
         | 
| 519 | 
            -
                      "name": " | 
| 608 | 
            +
                      "name": "stakeNftId",
         | 
| 520 609 | 
             
                      "type": "uint96"
         | 
| 521 610 | 
             
                    },
         | 
| 522 611 | 
             
                    {
         | 
| 523 612 | 
             
                      "indexed": false,
         | 
| 524 | 
            -
                      "internalType": " | 
| 525 | 
            -
                      "name": " | 
| 613 | 
            +
                      "internalType": "NftId",
         | 
| 614 | 
            +
                      "name": "targetNftId",
         | 
| 526 615 | 
             
                      "type": "uint96"
         | 
| 527 616 | 
             
                    },
         | 
| 528 617 | 
             
                    {
         | 
| 529 618 | 
             
                      "indexed": false,
         | 
| 530 619 | 
             
                      "internalType": "Amount",
         | 
| 531 | 
            -
                      "name": " | 
| 620 | 
            +
                      "name": "stakeAmount",
         | 
| 532 621 | 
             
                      "type": "uint96"
         | 
| 533 622 | 
             
                    },
         | 
| 534 623 | 
             
                    {
         | 
| 535 624 | 
             
                      "indexed": false,
         | 
| 536 | 
            -
                      "internalType": " | 
| 537 | 
            -
                      "name": " | 
| 538 | 
            -
                      "type": " | 
| 625 | 
            +
                      "internalType": "Timestamp",
         | 
| 626 | 
            +
                      "name": "lockedUntil",
         | 
| 627 | 
            +
                      "type": "uint40"
         | 
| 628 | 
            +
                    },
         | 
| 629 | 
            +
                    {
         | 
| 630 | 
            +
                      "indexed": false,
         | 
| 631 | 
            +
                      "internalType": "address",
         | 
| 632 | 
            +
                      "name": "stakeOwner",
         | 
| 633 | 
            +
                      "type": "address"
         | 
| 634 | 
            +
                    }
         | 
| 635 | 
            +
                  ],
         | 
| 636 | 
            +
                  "name": "LogStakingStakeCreated",
         | 
| 637 | 
            +
                  "type": "event"
         | 
| 638 | 
            +
                },
         | 
| 639 | 
            +
                {
         | 
| 640 | 
            +
                  "anonymous": false,
         | 
| 641 | 
            +
                  "inputs": [
         | 
| 642 | 
            +
                    {
         | 
| 643 | 
            +
                      "indexed": false,
         | 
| 644 | 
            +
                      "internalType": "NftId",
         | 
| 645 | 
            +
                      "name": "stakeNftId",
         | 
| 646 | 
            +
                      "type": "uint96"
         | 
| 647 | 
            +
                    },
         | 
| 648 | 
            +
                    {
         | 
| 649 | 
            +
                      "indexed": false,
         | 
| 650 | 
            +
                      "internalType": "Amount",
         | 
| 651 | 
            +
                      "name": "rewardIncrementAmount",
         | 
| 652 | 
            +
                      "type": "uint96"
         | 
| 653 | 
            +
                    },
         | 
| 654 | 
            +
                    {
         | 
| 655 | 
            +
                      "indexed": false,
         | 
| 656 | 
            +
                      "internalType": "Amount",
         | 
| 657 | 
            +
                      "name": "stakeBalance",
         | 
| 658 | 
            +
                      "type": "uint96"
         | 
| 659 | 
            +
                    },
         | 
| 660 | 
            +
                    {
         | 
| 661 | 
            +
                      "indexed": false,
         | 
| 662 | 
            +
                      "internalType": "Amount",
         | 
| 663 | 
            +
                      "name": "rewardBalance",
         | 
| 664 | 
            +
                      "type": "uint96"
         | 
| 665 | 
            +
                    },
         | 
| 666 | 
            +
                    {
         | 
| 667 | 
            +
                      "indexed": false,
         | 
| 668 | 
            +
                      "internalType": "Timestamp",
         | 
| 669 | 
            +
                      "name": "lockedUntil",
         | 
| 670 | 
            +
                      "type": "uint40"
         | 
| 671 | 
            +
                    },
         | 
| 672 | 
            +
                    {
         | 
| 673 | 
            +
                      "indexed": false,
         | 
| 674 | 
            +
                      "internalType": "Blocknumber",
         | 
| 675 | 
            +
                      "name": "lastUpdateIn",
         | 
| 676 | 
            +
                      "type": "uint40"
         | 
| 677 | 
            +
                    }
         | 
| 678 | 
            +
                  ],
         | 
| 679 | 
            +
                  "name": "LogStakingStakeRewardsUpdated",
         | 
| 680 | 
            +
                  "type": "event"
         | 
| 681 | 
            +
                },
         | 
| 682 | 
            +
                {
         | 
| 683 | 
            +
                  "anonymous": false,
         | 
| 684 | 
            +
                  "inputs": [
         | 
| 685 | 
            +
                    {
         | 
| 686 | 
            +
                      "indexed": false,
         | 
| 687 | 
            +
                      "internalType": "NftId",
         | 
| 688 | 
            +
                      "name": "stakeNftId",
         | 
| 689 | 
            +
                      "type": "uint96"
         | 
| 690 | 
            +
                    },
         | 
| 691 | 
            +
                    {
         | 
| 692 | 
            +
                      "indexed": false,
         | 
| 693 | 
            +
                      "internalType": "Amount",
         | 
| 694 | 
            +
                      "name": "stakedAmount",
         | 
| 695 | 
            +
                      "type": "uint96"
         | 
| 696 | 
            +
                    },
         | 
| 697 | 
            +
                    {
         | 
| 698 | 
            +
                      "indexed": false,
         | 
| 699 | 
            +
                      "internalType": "Amount",
         | 
| 700 | 
            +
                      "name": "stakeBalance",
         | 
| 701 | 
            +
                      "type": "uint96"
         | 
| 702 | 
            +
                    },
         | 
| 703 | 
            +
                    {
         | 
| 704 | 
            +
                      "indexed": false,
         | 
| 705 | 
            +
                      "internalType": "Amount",
         | 
| 706 | 
            +
                      "name": "rewardBalance",
         | 
| 707 | 
            +
                      "type": "uint96"
         | 
| 708 | 
            +
                    },
         | 
| 709 | 
            +
                    {
         | 
| 710 | 
            +
                      "indexed": false,
         | 
| 711 | 
            +
                      "internalType": "Timestamp",
         | 
| 712 | 
            +
                      "name": "lockedUntil",
         | 
| 713 | 
            +
                      "type": "uint40"
         | 
| 714 | 
            +
                    },
         | 
| 715 | 
            +
                    {
         | 
| 716 | 
            +
                      "indexed": false,
         | 
| 717 | 
            +
                      "internalType": "Blocknumber",
         | 
| 718 | 
            +
                      "name": "lastUpdateIn",
         | 
| 719 | 
            +
                      "type": "uint40"
         | 
| 720 | 
            +
                    }
         | 
| 721 | 
            +
                  ],
         | 
| 722 | 
            +
                  "name": "LogStakingStaked",
         | 
| 723 | 
            +
                  "type": "event"
         | 
| 724 | 
            +
                },
         | 
| 725 | 
            +
                {
         | 
| 726 | 
            +
                  "anonymous": false,
         | 
| 727 | 
            +
                  "inputs": [
         | 
| 728 | 
            +
                    {
         | 
| 729 | 
            +
                      "indexed": false,
         | 
| 730 | 
            +
                      "internalType": "address",
         | 
| 731 | 
            +
                      "name": "stakingReader",
         | 
| 732 | 
            +
                      "type": "address"
         | 
| 733 | 
            +
                    },
         | 
| 734 | 
            +
                    {
         | 
| 735 | 
            +
                      "indexed": false,
         | 
| 736 | 
            +
                      "internalType": "address",
         | 
| 737 | 
            +
                      "name": "oldStakingReader",
         | 
| 738 | 
            +
                      "type": "address"
         | 
| 739 | 
            +
                    }
         | 
| 740 | 
            +
                  ],
         | 
| 741 | 
            +
                  "name": "LogStakingStakingReaderSet",
         | 
| 742 | 
            +
                  "type": "event"
         | 
| 743 | 
            +
                },
         | 
| 744 | 
            +
                {
         | 
| 745 | 
            +
                  "anonymous": false,
         | 
| 746 | 
            +
                  "inputs": [
         | 
| 747 | 
            +
                    {
         | 
| 748 | 
            +
                      "indexed": false,
         | 
| 749 | 
            +
                      "internalType": "ObjectType",
         | 
| 750 | 
            +
                      "name": "objectType",
         | 
| 751 | 
            +
                      "type": "uint8"
         | 
| 752 | 
            +
                    },
         | 
| 753 | 
            +
                    {
         | 
| 754 | 
            +
                      "indexed": false,
         | 
| 755 | 
            +
                      "internalType": "bool",
         | 
| 756 | 
            +
                      "name": "isSupported",
         | 
| 757 | 
            +
                      "type": "bool"
         | 
| 758 | 
            +
                    },
         | 
| 759 | 
            +
                    {
         | 
| 760 | 
            +
                      "indexed": false,
         | 
| 761 | 
            +
                      "internalType": "bool",
         | 
| 762 | 
            +
                      "name": "allowNewTargets",
         | 
| 763 | 
            +
                      "type": "bool"
         | 
| 764 | 
            +
                    },
         | 
| 765 | 
            +
                    {
         | 
| 766 | 
            +
                      "indexed": false,
         | 
| 767 | 
            +
                      "internalType": "bool",
         | 
| 768 | 
            +
                      "name": "allowCrossChain",
         | 
| 769 | 
            +
                      "type": "bool"
         | 
| 770 | 
            +
                    },
         | 
| 771 | 
            +
                    {
         | 
| 772 | 
            +
                      "indexed": false,
         | 
| 773 | 
            +
                      "internalType": "Amount",
         | 
| 774 | 
            +
                      "name": "minStakingAmount",
         | 
| 775 | 
            +
                      "type": "uint96"
         | 
| 776 | 
            +
                    },
         | 
| 777 | 
            +
                    {
         | 
| 778 | 
            +
                      "indexed": false,
         | 
| 779 | 
            +
                      "internalType": "Amount",
         | 
| 780 | 
            +
                      "name": "maxStakingAmount",
         | 
| 781 | 
            +
                      "type": "uint96"
         | 
| 782 | 
            +
                    },
         | 
| 783 | 
            +
                    {
         | 
| 784 | 
            +
                      "indexed": false,
         | 
| 785 | 
            +
                      "internalType": "Seconds",
         | 
| 786 | 
            +
                      "name": "minLockingPeriod",
         | 
| 787 | 
            +
                      "type": "uint40"
         | 
| 788 | 
            +
                    },
         | 
| 789 | 
            +
                    {
         | 
| 790 | 
            +
                      "indexed": false,
         | 
| 791 | 
            +
                      "internalType": "Seconds",
         | 
| 792 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 793 | 
            +
                      "type": "uint40"
         | 
| 794 | 
            +
                    },
         | 
| 795 | 
            +
                    {
         | 
| 796 | 
            +
                      "indexed": false,
         | 
| 797 | 
            +
                      "internalType": "UFixed",
         | 
| 798 | 
            +
                      "name": "minRewardRate",
         | 
| 799 | 
            +
                      "type": "uint160"
         | 
| 800 | 
            +
                    },
         | 
| 801 | 
            +
                    {
         | 
| 802 | 
            +
                      "indexed": false,
         | 
| 803 | 
            +
                      "internalType": "UFixed",
         | 
| 804 | 
            +
                      "name": "maxRewardRate",
         | 
| 805 | 
            +
                      "type": "uint160"
         | 
| 806 | 
            +
                    },
         | 
| 807 | 
            +
                    {
         | 
| 808 | 
            +
                      "indexed": false,
         | 
| 809 | 
            +
                      "internalType": "Blocknumber",
         | 
| 810 | 
            +
                      "name": "lastUpdateIn",
         | 
| 811 | 
            +
                      "type": "uint40"
         | 
| 812 | 
            +
                    }
         | 
| 813 | 
            +
                  ],
         | 
| 814 | 
            +
                  "name": "LogStakingSupportInfoSet",
         | 
| 815 | 
            +
                  "type": "event"
         | 
| 816 | 
            +
                },
         | 
| 817 | 
            +
                {
         | 
| 818 | 
            +
                  "anonymous": false,
         | 
| 819 | 
            +
                  "inputs": [
         | 
| 820 | 
            +
                    {
         | 
| 821 | 
            +
                      "indexed": false,
         | 
| 822 | 
            +
                      "internalType": "NftId",
         | 
| 823 | 
            +
                      "name": "targetNftId",
         | 
| 824 | 
            +
                      "type": "uint96"
         | 
| 825 | 
            +
                    },
         | 
| 826 | 
            +
                    {
         | 
| 827 | 
            +
                      "indexed": false,
         | 
| 828 | 
            +
                      "internalType": "ObjectType",
         | 
| 829 | 
            +
                      "name": "objectType",
         | 
| 830 | 
            +
                      "type": "uint8"
         | 
| 831 | 
            +
                    },
         | 
| 832 | 
            +
                    {
         | 
| 833 | 
            +
                      "indexed": false,
         | 
| 834 | 
            +
                      "internalType": "Seconds",
         | 
| 835 | 
            +
                      "name": "lockingPeriod",
         | 
| 836 | 
            +
                      "type": "uint40"
         | 
| 837 | 
            +
                    },
         | 
| 838 | 
            +
                    {
         | 
| 839 | 
            +
                      "indexed": false,
         | 
| 840 | 
            +
                      "internalType": "UFixed",
         | 
| 841 | 
            +
                      "name": "rewardRate",
         | 
| 842 | 
            +
                      "type": "uint160"
         | 
| 843 | 
            +
                    }
         | 
| 844 | 
            +
                  ],
         | 
| 845 | 
            +
                  "name": "LogStakingTargetCreated",
         | 
| 846 | 
            +
                  "type": "event"
         | 
| 847 | 
            +
                },
         | 
| 848 | 
            +
                {
         | 
| 849 | 
            +
                  "anonymous": false,
         | 
| 850 | 
            +
                  "inputs": [
         | 
| 851 | 
            +
                    {
         | 
| 852 | 
            +
                      "indexed": false,
         | 
| 853 | 
            +
                      "internalType": "address",
         | 
| 854 | 
            +
                      "name": "targetManager",
         | 
| 855 | 
            +
                      "type": "address"
         | 
| 856 | 
            +
                    },
         | 
| 857 | 
            +
                    {
         | 
| 858 | 
            +
                      "indexed": false,
         | 
| 859 | 
            +
                      "internalType": "address",
         | 
| 860 | 
            +
                      "name": "oldTargetHandler",
         | 
| 861 | 
            +
                      "type": "address"
         | 
| 862 | 
            +
                    }
         | 
| 863 | 
            +
                  ],
         | 
| 864 | 
            +
                  "name": "LogStakingTargetHandlerSet",
         | 
| 865 | 
            +
                  "type": "event"
         | 
| 866 | 
            +
                },
         | 
| 867 | 
            +
                {
         | 
| 868 | 
            +
                  "anonymous": false,
         | 
| 869 | 
            +
                  "inputs": [
         | 
| 870 | 
            +
                    {
         | 
| 871 | 
            +
                      "indexed": false,
         | 
| 872 | 
            +
                      "internalType": "NftId",
         | 
| 873 | 
            +
                      "name": "targetNftId",
         | 
| 874 | 
            +
                      "type": "uint96"
         | 
| 875 | 
            +
                    },
         | 
| 876 | 
            +
                    {
         | 
| 877 | 
            +
                      "indexed": false,
         | 
| 878 | 
            +
                      "internalType": "Amount",
         | 
| 879 | 
            +
                      "name": "limitAmount",
         | 
| 880 | 
            +
                      "type": "uint96"
         | 
| 881 | 
            +
                    },
         | 
| 882 | 
            +
                    {
         | 
| 883 | 
            +
                      "indexed": false,
         | 
| 884 | 
            +
                      "internalType": "Amount",
         | 
| 885 | 
            +
                      "name": "hardLimitAmount",
         | 
| 886 | 
            +
                      "type": "uint96"
         | 
| 887 | 
            +
                    },
         | 
| 888 | 
            +
                    {
         | 
| 889 | 
            +
                      "indexed": false,
         | 
| 890 | 
            +
                      "internalType": "Amount",
         | 
| 891 | 
            +
                      "name": "requiredStakeAmount",
         | 
| 892 | 
            +
                      "type": "uint96"
         | 
| 893 | 
            +
                    },
         | 
| 894 | 
            +
                    {
         | 
| 895 | 
            +
                      "indexed": false,
         | 
| 896 | 
            +
                      "internalType": "Amount",
         | 
| 897 | 
            +
                      "name": "actualStakeAmount",
         | 
| 898 | 
            +
                      "type": "uint96"
         | 
| 899 | 
            +
                    },
         | 
| 900 | 
            +
                    {
         | 
| 901 | 
            +
                      "indexed": false,
         | 
| 902 | 
            +
                      "internalType": "Blocknumber",
         | 
| 903 | 
            +
                      "name": "lastUpdateIn",
         | 
| 904 | 
            +
                      "type": "uint40"
         | 
| 905 | 
            +
                    }
         | 
| 906 | 
            +
                  ],
         | 
| 907 | 
            +
                  "name": "LogStakingTargetLimitUpdated",
         | 
| 908 | 
            +
                  "type": "event"
         | 
| 909 | 
            +
                },
         | 
| 910 | 
            +
                {
         | 
| 911 | 
            +
                  "anonymous": false,
         | 
| 912 | 
            +
                  "inputs": [
         | 
| 913 | 
            +
                    {
         | 
| 914 | 
            +
                      "indexed": false,
         | 
| 915 | 
            +
                      "internalType": "NftId",
         | 
| 916 | 
            +
                      "name": "targetNftId",
         | 
| 917 | 
            +
                      "type": "uint96"
         | 
| 918 | 
            +
                    },
         | 
| 919 | 
            +
                    {
         | 
| 920 | 
            +
                      "indexed": false,
         | 
| 921 | 
            +
                      "internalType": "Amount",
         | 
| 922 | 
            +
                      "name": "marginAmount",
         | 
| 923 | 
            +
                      "type": "uint96"
         | 
| 924 | 
            +
                    },
         | 
| 925 | 
            +
                    {
         | 
| 926 | 
            +
                      "indexed": false,
         | 
| 927 | 
            +
                      "internalType": "Amount",
         | 
| 928 | 
            +
                      "name": "hardLimitAmount",
         | 
| 929 | 
            +
                      "type": "uint96"
         | 
| 930 | 
            +
                    },
         | 
| 931 | 
            +
                    {
         | 
| 932 | 
            +
                      "indexed": false,
         | 
| 933 | 
            +
                      "internalType": "Blocknumber",
         | 
| 934 | 
            +
                      "name": "lastUpdateIn",
         | 
| 935 | 
            +
                      "type": "uint40"
         | 
| 936 | 
            +
                    }
         | 
| 937 | 
            +
                  ],
         | 
| 938 | 
            +
                  "name": "LogStakingTargetLimitsUpdated",
         | 
| 939 | 
            +
                  "type": "event"
         | 
| 940 | 
            +
                },
         | 
| 941 | 
            +
                {
         | 
| 942 | 
            +
                  "anonymous": false,
         | 
| 943 | 
            +
                  "inputs": [
         | 
| 944 | 
            +
                    {
         | 
| 945 | 
            +
                      "indexed": false,
         | 
| 946 | 
            +
                      "internalType": "NftId",
         | 
| 947 | 
            +
                      "name": "targetNftId",
         | 
| 948 | 
            +
                      "type": "uint96"
         | 
| 949 | 
            +
                    },
         | 
| 950 | 
            +
                    {
         | 
| 951 | 
            +
                      "indexed": false,
         | 
| 952 | 
            +
                      "internalType": "Seconds",
         | 
| 953 | 
            +
                      "name": "oldLockingPeriod",
         | 
| 954 | 
            +
                      "type": "uint40"
         | 
| 955 | 
            +
                    },
         | 
| 956 | 
            +
                    {
         | 
| 957 | 
            +
                      "indexed": false,
         | 
| 958 | 
            +
                      "internalType": "Seconds",
         | 
| 959 | 
            +
                      "name": "lockingPeriod",
         | 
| 960 | 
            +
                      "type": "uint40"
         | 
| 961 | 
            +
                    },
         | 
| 962 | 
            +
                    {
         | 
| 963 | 
            +
                      "indexed": false,
         | 
| 964 | 
            +
                      "internalType": "Blocknumber",
         | 
| 965 | 
            +
                      "name": "lastUpdateIn",
         | 
| 966 | 
            +
                      "type": "uint40"
         | 
| 967 | 
            +
                    }
         | 
| 968 | 
            +
                  ],
         | 
| 969 | 
            +
                  "name": "LogStakingTargetLockingPeriodSet",
         | 
| 970 | 
            +
                  "type": "event"
         | 
| 971 | 
            +
                },
         | 
| 972 | 
            +
                {
         | 
| 973 | 
            +
                  "anonymous": false,
         | 
| 974 | 
            +
                  "inputs": [
         | 
| 975 | 
            +
                    {
         | 
| 976 | 
            +
                      "indexed": false,
         | 
| 977 | 
            +
                      "internalType": "NftId",
         | 
| 978 | 
            +
                      "name": "targetNftId",
         | 
| 979 | 
            +
                      "type": "uint96"
         | 
| 980 | 
            +
                    },
         | 
| 981 | 
            +
                    {
         | 
| 982 | 
            +
                      "indexed": false,
         | 
| 983 | 
            +
                      "internalType": "Amount",
         | 
| 984 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 985 | 
            +
                      "type": "uint96"
         | 
| 986 | 
            +
                    },
         | 
| 987 | 
            +
                    {
         | 
| 988 | 
            +
                      "indexed": false,
         | 
| 989 | 
            +
                      "internalType": "Blocknumber",
         | 
| 990 | 
            +
                      "name": "lastUpdateIn",
         | 
| 991 | 
            +
                      "type": "uint40"
         | 
| 992 | 
            +
                    }
         | 
| 993 | 
            +
                  ],
         | 
| 994 | 
            +
                  "name": "LogStakingTargetMaxStakedAmountSet",
         | 
| 995 | 
            +
                  "type": "event"
         | 
| 996 | 
            +
                },
         | 
| 997 | 
            +
                {
         | 
| 998 | 
            +
                  "anonymous": false,
         | 
| 999 | 
            +
                  "inputs": [
         | 
| 1000 | 
            +
                    {
         | 
| 1001 | 
            +
                      "indexed": false,
         | 
| 1002 | 
            +
                      "internalType": "NftId",
         | 
| 1003 | 
            +
                      "name": "targetNftId",
         | 
| 1004 | 
            +
                      "type": "uint96"
         | 
| 1005 | 
            +
                    },
         | 
| 1006 | 
            +
                    {
         | 
| 1007 | 
            +
                      "indexed": false,
         | 
| 1008 | 
            +
                      "internalType": "UFixed",
         | 
| 1009 | 
            +
                      "name": "rewardRate",
         | 
| 1010 | 
            +
                      "type": "uint160"
         | 
| 1011 | 
            +
                    },
         | 
| 1012 | 
            +
                    {
         | 
| 1013 | 
            +
                      "indexed": false,
         | 
| 1014 | 
            +
                      "internalType": "UFixed",
         | 
| 1015 | 
            +
                      "name": "oldRewardRate",
         | 
| 1016 | 
            +
                      "type": "uint160"
         | 
| 1017 | 
            +
                    },
         | 
| 1018 | 
            +
                    {
         | 
| 1019 | 
            +
                      "indexed": false,
         | 
| 1020 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1021 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1022 | 
            +
                      "type": "uint40"
         | 
| 1023 | 
            +
                    }
         | 
| 1024 | 
            +
                  ],
         | 
| 1025 | 
            +
                  "name": "LogStakingTargetRewardRateSet",
         | 
| 1026 | 
            +
                  "type": "event"
         | 
| 1027 | 
            +
                },
         | 
| 1028 | 
            +
                {
         | 
| 1029 | 
            +
                  "anonymous": false,
         | 
| 1030 | 
            +
                  "inputs": [
         | 
| 1031 | 
            +
                    {
         | 
| 1032 | 
            +
                      "indexed": false,
         | 
| 1033 | 
            +
                      "internalType": "ChainId",
         | 
| 1034 | 
            +
                      "name": "chainId",
         | 
| 1035 | 
            +
                      "type": "uint96"
         | 
| 1036 | 
            +
                    },
         | 
| 1037 | 
            +
                    {
         | 
| 1038 | 
            +
                      "indexed": false,
         | 
| 1039 | 
            +
                      "internalType": "address",
         | 
| 1040 | 
            +
                      "name": "token",
         | 
| 1041 | 
            +
                      "type": "address"
         | 
| 539 1042 | 
             
                    }
         | 
| 540 1043 | 
             
                  ],
         | 
| 541 | 
            -
                  "name": " | 
| 1044 | 
            +
                  "name": "LogStakingTokenAdded",
         | 
| 542 1045 | 
             
                  "type": "event"
         | 
| 543 1046 | 
             
                },
         | 
| 544 1047 | 
             
                {
         | 
| @@ -571,11 +1074,11 @@ | |
| 571 1074 | 
             
                    {
         | 
| 572 1075 | 
             
                      "indexed": false,
         | 
| 573 1076 | 
             
                      "internalType": "Blocknumber",
         | 
| 574 | 
            -
                      "name": " | 
| 575 | 
            -
                      "type": " | 
| 1077 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1078 | 
            +
                      "type": "uint40"
         | 
| 576 1079 | 
             
                    }
         | 
| 577 1080 | 
             
                  ],
         | 
| 578 | 
            -
                  "name": " | 
| 1081 | 
            +
                  "name": "LogStakingTvlDecreased",
         | 
| 579 1082 | 
             
                  "type": "event"
         | 
| 580 1083 | 
             
                },
         | 
| 581 1084 | 
             
                {
         | 
| @@ -608,11 +1111,11 @@ | |
| 608 1111 | 
             
                    {
         | 
| 609 1112 | 
             
                      "indexed": false,
         | 
| 610 1113 | 
             
                      "internalType": "Blocknumber",
         | 
| 611 | 
            -
                      "name": " | 
| 612 | 
            -
                      "type": " | 
| 1114 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1115 | 
            +
                      "type": "uint40"
         | 
| 613 1116 | 
             
                    }
         | 
| 614 1117 | 
             
                  ],
         | 
| 615 | 
            -
                  "name": " | 
| 1118 | 
            +
                  "name": "LogStakingTvlIncreased",
         | 
| 616 1119 | 
             
                  "type": "event"
         | 
| 617 1120 | 
             
                },
         | 
| 618 1121 | 
             
                {
         | 
| @@ -620,83 +1123,90 @@ | |
| 620 1123 | 
             
                  "inputs": [
         | 
| 621 1124 | 
             
                    {
         | 
| 622 1125 | 
             
                      "indexed": false,
         | 
| 623 | 
            -
                      "internalType": " | 
| 624 | 
            -
                      "name": " | 
| 625 | 
            -
                      "type": " | 
| 626 | 
            -
                    },
         | 
| 627 | 
            -
                    {
         | 
| 628 | 
            -
                      "indexed": false,
         | 
| 629 | 
            -
                      "internalType": "KeyId",
         | 
| 630 | 
            -
                      "name": "keyId",
         | 
| 631 | 
            -
                      "type": "bytes31"
         | 
| 1126 | 
            +
                      "internalType": "NftId",
         | 
| 1127 | 
            +
                      "name": "stakeNftId",
         | 
| 1128 | 
            +
                      "type": "uint96"
         | 
| 632 1129 | 
             
                    },
         | 
| 633 1130 | 
             
                    {
         | 
| 634 1131 | 
             
                      "indexed": false,
         | 
| 635 | 
            -
                      "internalType": " | 
| 636 | 
            -
                      "name": " | 
| 637 | 
            -
                      "type": " | 
| 1132 | 
            +
                      "internalType": "Amount",
         | 
| 1133 | 
            +
                      "name": "unstakedAmount",
         | 
| 1134 | 
            +
                      "type": "uint96"
         | 
| 638 1135 | 
             
                    },
         | 
| 639 1136 | 
             
                    {
         | 
| 640 1137 | 
             
                      "indexed": false,
         | 
| 641 | 
            -
                      "internalType": " | 
| 642 | 
            -
                      "name": " | 
| 643 | 
            -
                      "type": " | 
| 1138 | 
            +
                      "internalType": "Amount",
         | 
| 1139 | 
            +
                      "name": "stakeBalance",
         | 
| 1140 | 
            +
                      "type": "uint96"
         | 
| 644 1141 | 
             
                    },
         | 
| 645 1142 | 
             
                    {
         | 
| 646 1143 | 
             
                      "indexed": false,
         | 
| 647 | 
            -
                      "internalType": " | 
| 648 | 
            -
                      "name": " | 
| 649 | 
            -
                      "type": " | 
| 1144 | 
            +
                      "internalType": "Amount",
         | 
| 1145 | 
            +
                      "name": "rewardBalance",
         | 
| 1146 | 
            +
                      "type": "uint96"
         | 
| 650 1147 | 
             
                    },
         | 
| 651 1148 | 
             
                    {
         | 
| 652 1149 | 
             
                      "indexed": false,
         | 
| 653 | 
            -
                      "internalType": " | 
| 654 | 
            -
                      "name": " | 
| 655 | 
            -
                      "type": " | 
| 1150 | 
            +
                      "internalType": "Timestamp",
         | 
| 1151 | 
            +
                      "name": "lockedUntil",
         | 
| 1152 | 
            +
                      "type": "uint40"
         | 
| 656 1153 | 
             
                    },
         | 
| 657 1154 | 
             
                    {
         | 
| 658 1155 | 
             
                      "indexed": false,
         | 
| 659 1156 | 
             
                      "internalType": "Blocknumber",
         | 
| 660 | 
            -
                      "name": " | 
| 661 | 
            -
                      "type": " | 
| 1157 | 
            +
                      "name": "lastUpdateIn",
         | 
| 1158 | 
            +
                      "type": "uint40"
         | 
| 662 1159 | 
             
                    }
         | 
| 663 1160 | 
             
                  ],
         | 
| 664 | 
            -
                  "name": " | 
| 1161 | 
            +
                  "name": "LogStakingUnstaked",
         | 
| 665 1162 | 
             
                  "type": "event"
         | 
| 666 1163 | 
             
                },
         | 
| 667 1164 | 
             
                {
         | 
| 668 | 
            -
                  "inputs": [ | 
| 669 | 
            -
             | 
| 670 | 
            -
             | 
| 1165 | 
            +
                  "inputs": [
         | 
| 1166 | 
            +
                    {
         | 
| 1167 | 
            +
                      "internalType": "NftId",
         | 
| 1168 | 
            +
                      "name": "targetNftId",
         | 
| 1169 | 
            +
                      "type": "uint96"
         | 
| 1170 | 
            +
                    },
         | 
| 671 1171 | 
             
                    {
         | 
| 672 1172 | 
             
                      "internalType": "address",
         | 
| 673 | 
            -
                      "name": "",
         | 
| 1173 | 
            +
                      "name": "token",
         | 
| 674 1174 | 
             
                      "type": "address"
         | 
| 675 1175 | 
             
                    }
         | 
| 676 1176 | 
             
                  ],
         | 
| 677 | 
            -
                  " | 
| 1177 | 
            +
                  "name": "addTargetToken",
         | 
| 1178 | 
            +
                  "outputs": [],
         | 
| 1179 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 678 1180 | 
             
                  "type": "function"
         | 
| 679 1181 | 
             
                },
         | 
| 680 1182 | 
             
                {
         | 
| 681 1183 | 
             
                  "inputs": [
         | 
| 682 1184 | 
             
                    {
         | 
| 683 | 
            -
                      "internalType": " | 
| 684 | 
            -
                      "name": " | 
| 685 | 
            -
                      "type": " | 
| 686 | 
            -
                    },
         | 
| 687 | 
            -
                    {
         | 
| 688 | 
            -
                      "internalType": "StateId",
         | 
| 689 | 
            -
                      "name": "fromId",
         | 
| 690 | 
            -
                      "type": "uint8"
         | 
| 1185 | 
            +
                      "internalType": "ChainId",
         | 
| 1186 | 
            +
                      "name": "chainId",
         | 
| 1187 | 
            +
                      "type": "uint96"
         | 
| 691 1188 | 
             
                    },
         | 
| 692 1189 | 
             
                    {
         | 
| 693 | 
            -
                      "internalType": " | 
| 694 | 
            -
                      "name": " | 
| 695 | 
            -
                      "type": " | 
| 1190 | 
            +
                      "internalType": "address",
         | 
| 1191 | 
            +
                      "name": "token",
         | 
| 1192 | 
            +
                      "type": "address"
         | 
| 696 1193 | 
             
                    }
         | 
| 697 1194 | 
             
                  ],
         | 
| 698 | 
            -
                  "name": " | 
| 1195 | 
            +
                  "name": "addToken",
         | 
| 699 1196 | 
             
                  "outputs": [],
         | 
| 1197 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1198 | 
            +
                  "type": "function"
         | 
| 1199 | 
            +
                },
         | 
| 1200 | 
            +
                {
         | 
| 1201 | 
            +
                  "inputs": [],
         | 
| 1202 | 
            +
                  "name": "authority",
         | 
| 1203 | 
            +
                  "outputs": [
         | 
| 1204 | 
            +
                    {
         | 
| 1205 | 
            +
                      "internalType": "address",
         | 
| 1206 | 
            +
                      "name": "",
         | 
| 1207 | 
            +
                      "type": "address"
         | 
| 1208 | 
            +
                    }
         | 
| 1209 | 
            +
                  ],
         | 
| 700 1210 | 
             
                  "stateMutability": "view",
         | 
| 701 1211 | 
             
                  "type": "function"
         | 
| 702 1212 | 
             
                },
         | 
| @@ -704,13 +1214,13 @@ | |
| 704 1214 | 
             
                  "inputs": [
         | 
| 705 1215 | 
             
                    {
         | 
| 706 1216 | 
             
                      "internalType": "NftId",
         | 
| 707 | 
            -
                      "name": " | 
| 1217 | 
            +
                      "name": "stakeNftId",
         | 
| 708 1218 | 
             
                      "type": "uint96"
         | 
| 709 1219 | 
             
                    },
         | 
| 710 1220 | 
             
                    {
         | 
| 711 | 
            -
                      "internalType": " | 
| 712 | 
            -
                      "name": " | 
| 713 | 
            -
                      "type": " | 
| 1221 | 
            +
                      "internalType": "bool",
         | 
| 1222 | 
            +
                      "name": "updateRewards",
         | 
| 1223 | 
            +
                      "type": "bool"
         | 
| 714 1224 | 
             
                    },
         | 
| 715 1225 | 
             
                    {
         | 
| 716 1226 | 
             
                      "internalType": "Amount",
         | 
| @@ -718,7 +1228,7 @@ | |
| 718 1228 | 
             
                      "type": "uint96"
         | 
| 719 1229 | 
             
                    }
         | 
| 720 1230 | 
             
                  ],
         | 
| 721 | 
            -
                  "name": " | 
| 1231 | 
            +
                  "name": "claimRewards",
         | 
| 722 1232 | 
             
                  "outputs": [
         | 
| 723 1233 | 
             
                    {
         | 
| 724 1234 | 
             
                      "internalType": "Amount",
         | 
| @@ -736,61 +1246,30 @@ | |
| 736 1246 | 
             
                      "name": "stakeNftId",
         | 
| 737 1247 | 
             
                      "type": "uint96"
         | 
| 738 1248 | 
             
                    },
         | 
| 739 | 
            -
                    {
         | 
| 740 | 
            -
                      "components": [
         | 
| 741 | 
            -
                        {
         | 
| 742 | 
            -
                          "internalType": "Timestamp",
         | 
| 743 | 
            -
                          "name": "lockedUntil",
         | 
| 744 | 
            -
                          "type": "uint40"
         | 
| 745 | 
            -
                        }
         | 
| 746 | 
            -
                      ],
         | 
| 747 | 
            -
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 748 | 
            -
                      "name": "stakeInfo",
         | 
| 749 | 
            -
                      "type": "tuple"
         | 
| 750 | 
            -
                    }
         | 
| 751 | 
            -
                  ],
         | 
| 752 | 
            -
                  "name": "create",
         | 
| 753 | 
            -
                  "outputs": [],
         | 
| 754 | 
            -
                  "stateMutability": "nonpayable",
         | 
| 755 | 
            -
                  "type": "function"
         | 
| 756 | 
            -
                },
         | 
| 757 | 
            -
                {
         | 
| 758 | 
            -
                  "inputs": [
         | 
| 759 1249 | 
             
                    {
         | 
| 760 1250 | 
             
                      "internalType": "NftId",
         | 
| 761 1251 | 
             
                      "name": "targetNftId",
         | 
| 762 1252 | 
             
                      "type": "uint96"
         | 
| 763 1253 | 
             
                    },
         | 
| 764 1254 | 
             
                    {
         | 
| 765 | 
            -
                      " | 
| 766 | 
            -
             | 
| 767 | 
            -
             | 
| 768 | 
            -
             | 
| 769 | 
            -
             | 
| 770 | 
            -
             | 
| 771 | 
            -
             | 
| 772 | 
            -
             | 
| 773 | 
            -
             | 
| 774 | 
            -
             | 
| 775 | 
            -
             | 
| 776 | 
            -
             | 
| 777 | 
            -
             | 
| 778 | 
            -
             | 
| 779 | 
            -
             | 
| 780 | 
            -
             | 
| 781 | 
            -
                        {
         | 
| 782 | 
            -
                          "internalType": "UFixed",
         | 
| 783 | 
            -
                          "name": "rewardRate",
         | 
| 784 | 
            -
                          "type": "uint256"
         | 
| 785 | 
            -
                        }
         | 
| 786 | 
            -
                      ],
         | 
| 787 | 
            -
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 788 | 
            -
                      "name": "targetInfo",
         | 
| 789 | 
            -
                      "type": "tuple"
         | 
| 1255 | 
            +
                      "internalType": "address",
         | 
| 1256 | 
            +
                      "name": "stakeOwner",
         | 
| 1257 | 
            +
                      "type": "address"
         | 
| 1258 | 
            +
                    },
         | 
| 1259 | 
            +
                    {
         | 
| 1260 | 
            +
                      "internalType": "Amount",
         | 
| 1261 | 
            +
                      "name": "stakeAmount",
         | 
| 1262 | 
            +
                      "type": "uint96"
         | 
| 1263 | 
            +
                    }
         | 
| 1264 | 
            +
                  ],
         | 
| 1265 | 
            +
                  "name": "createStake",
         | 
| 1266 | 
            +
                  "outputs": [
         | 
| 1267 | 
            +
                    {
         | 
| 1268 | 
            +
                      "internalType": "Timestamp",
         | 
| 1269 | 
            +
                      "name": "lockedUntil",
         | 
| 1270 | 
            +
                      "type": "uint40"
         | 
| 790 1271 | 
             
                    }
         | 
| 791 1272 | 
             
                  ],
         | 
| 792 | 
            -
                  "name": "createTarget",
         | 
| 793 | 
            -
                  "outputs": [],
         | 
| 794 1273 | 
             
                  "stateMutability": "nonpayable",
         | 
| 795 1274 | 
             
                  "type": "function"
         | 
| 796 1275 | 
             
                },
         | 
| @@ -802,19 +1281,23 @@ | |
| 802 1281 | 
             
                      "type": "uint96"
         | 
| 803 1282 | 
             
                    },
         | 
| 804 1283 | 
             
                    {
         | 
| 805 | 
            -
                      "internalType": " | 
| 806 | 
            -
                      "name": " | 
| 807 | 
            -
                      "type": " | 
| 808 | 
            -
                    }
         | 
| 809 | 
            -
                  ],
         | 
| 810 | 
            -
                  "name": "decreaseReserves",
         | 
| 811 | 
            -
                  "outputs": [
         | 
| 1284 | 
            +
                      "internalType": "ObjectType",
         | 
| 1285 | 
            +
                      "name": "objectType",
         | 
| 1286 | 
            +
                      "type": "uint8"
         | 
| 1287 | 
            +
                    },
         | 
| 812 1288 | 
             
                    {
         | 
| 813 | 
            -
                      "internalType": " | 
| 814 | 
            -
                      "name": " | 
| 815 | 
            -
                      "type": " | 
| 1289 | 
            +
                      "internalType": "Seconds",
         | 
| 1290 | 
            +
                      "name": "lockingPeriod",
         | 
| 1291 | 
            +
                      "type": "uint40"
         | 
| 1292 | 
            +
                    },
         | 
| 1293 | 
            +
                    {
         | 
| 1294 | 
            +
                      "internalType": "UFixed",
         | 
| 1295 | 
            +
                      "name": "rewardRate",
         | 
| 1296 | 
            +
                      "type": "uint160"
         | 
| 816 1297 | 
             
                    }
         | 
| 817 1298 | 
             
                  ],
         | 
| 1299 | 
            +
                  "name": "createTarget",
         | 
| 1300 | 
            +
                  "outputs": [],
         | 
| 818 1301 | 
             
                  "stateMutability": "nonpayable",
         | 
| 819 1302 | 
             
                  "type": "function"
         | 
| 820 1303 | 
             
                },
         | 
| @@ -825,11 +1308,6 @@ | |
| 825 1308 | 
             
                      "name": "targetNftId",
         | 
| 826 1309 | 
             
                      "type": "uint96"
         | 
| 827 1310 | 
             
                    },
         | 
| 828 | 
            -
                    {
         | 
| 829 | 
            -
                      "internalType": "UFixed",
         | 
| 830 | 
            -
                      "name": "stakingRate",
         | 
| 831 | 
            -
                      "type": "uint256"
         | 
| 832 | 
            -
                    },
         | 
| 833 1311 | 
             
                    {
         | 
| 834 1312 | 
             
                      "internalType": "address",
         | 
| 835 1313 | 
             
                      "name": "token",
         | 
| @@ -852,25 +1330,6 @@ | |
| 852 1330 | 
             
                  "stateMutability": "nonpayable",
         | 
| 853 1331 | 
             
                  "type": "function"
         | 
| 854 1332 | 
             
                },
         | 
| 855 | 
            -
                {
         | 
| 856 | 
            -
                  "inputs": [
         | 
| 857 | 
            -
                    {
         | 
| 858 | 
            -
                      "internalType": "Key32",
         | 
| 859 | 
            -
                      "name": "key32",
         | 
| 860 | 
            -
                      "type": "bytes32"
         | 
| 861 | 
            -
                    }
         | 
| 862 | 
            -
                  ],
         | 
| 863 | 
            -
                  "name": "exists",
         | 
| 864 | 
            -
                  "outputs": [
         | 
| 865 | 
            -
                    {
         | 
| 866 | 
            -
                      "internalType": "bool",
         | 
| 867 | 
            -
                      "name": "",
         | 
| 868 | 
            -
                      "type": "bool"
         | 
| 869 | 
            -
                    }
         | 
| 870 | 
            -
                  ],
         | 
| 871 | 
            -
                  "stateMutability": "view",
         | 
| 872 | 
            -
                  "type": "function"
         | 
| 873 | 
            -
                },
         | 
| 874 1333 | 
             
                {
         | 
| 875 1334 | 
             
                  "inputs": [
         | 
| 876 1335 | 
             
                    {
         | 
| @@ -893,50 +1352,33 @@ | |
| 893 1352 | 
             
                {
         | 
| 894 1353 | 
             
                  "inputs": [
         | 
| 895 1354 | 
             
                    {
         | 
| 896 | 
            -
                      "internalType": " | 
| 897 | 
            -
                      "name": " | 
| 898 | 
            -
                      "type": " | 
| 1355 | 
            +
                      "internalType": "NftId",
         | 
| 1356 | 
            +
                      "name": "targetNftId",
         | 
| 1357 | 
            +
                      "type": "uint96"
         | 
| 899 1358 | 
             
                    }
         | 
| 900 1359 | 
             
                  ],
         | 
| 901 | 
            -
                  "name": " | 
| 1360 | 
            +
                  "name": "getLimitInfo",
         | 
| 902 1361 | 
             
                  "outputs": [
         | 
| 903 1362 | 
             
                    {
         | 
| 904 1363 | 
             
                      "components": [
         | 
| 905 1364 | 
             
                        {
         | 
| 906 | 
            -
                          " | 
| 907 | 
            -
             | 
| 908 | 
            -
             | 
| 909 | 
            -
             | 
| 910 | 
            -
             | 
| 911 | 
            -
             | 
| 912 | 
            -
             | 
| 913 | 
            -
             | 
| 914 | 
            -
                              "name": "state",
         | 
| 915 | 
            -
                              "type": "uint8"
         | 
| 916 | 
            -
                            },
         | 
| 917 | 
            -
                            {
         | 
| 918 | 
            -
                              "internalType": "Blocknumber",
         | 
| 919 | 
            -
                              "name": "updatedIn",
         | 
| 920 | 
            -
                              "type": "uint32"
         | 
| 921 | 
            -
                            },
         | 
| 922 | 
            -
                            {
         | 
| 923 | 
            -
                              "internalType": "Blocknumber",
         | 
| 924 | 
            -
                              "name": "createdIn",
         | 
| 925 | 
            -
                              "type": "uint32"
         | 
| 926 | 
            -
                            }
         | 
| 927 | 
            -
                          ],
         | 
| 928 | 
            -
                          "internalType": "struct IKeyValueStore.Metadata",
         | 
| 929 | 
            -
                          "name": "metadata",
         | 
| 930 | 
            -
                          "type": "tuple"
         | 
| 1365 | 
            +
                          "internalType": "Amount",
         | 
| 1366 | 
            +
                          "name": "marginAmount",
         | 
| 1367 | 
            +
                          "type": "uint96"
         | 
| 1368 | 
            +
                        },
         | 
| 1369 | 
            +
                        {
         | 
| 1370 | 
            +
                          "internalType": "Amount",
         | 
| 1371 | 
            +
                          "name": "hardLimitAmount",
         | 
| 1372 | 
            +
                          "type": "uint96"
         | 
| 931 1373 | 
             
                        },
         | 
| 932 1374 | 
             
                        {
         | 
| 933 | 
            -
                          "internalType": " | 
| 934 | 
            -
                          "name": " | 
| 935 | 
            -
                          "type": " | 
| 1375 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1376 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1377 | 
            +
                          "type": "uint40"
         | 
| 936 1378 | 
             
                        }
         | 
| 937 1379 | 
             
                      ],
         | 
| 938 | 
            -
                      "internalType": "struct  | 
| 939 | 
            -
                      "name": " | 
| 1380 | 
            +
                      "internalType": "struct IStaking.LimitInfo",
         | 
| 1381 | 
            +
                      "name": "limitInfo",
         | 
| 940 1382 | 
             
                      "type": "tuple"
         | 
| 941 1383 | 
             
                    }
         | 
| 942 1384 | 
             
                  ],
         | 
| @@ -947,73 +1389,21 @@ | |
| 947 1389 | 
             
                  "inputs": [
         | 
| 948 1390 | 
             
                    {
         | 
| 949 1391 | 
             
                      "internalType": "NftId",
         | 
| 950 | 
            -
                      "name": " | 
| 951 | 
            -
                      "type": "uint96"
         | 
| 952 | 
            -
                    }
         | 
| 953 | 
            -
                  ],
         | 
| 954 | 
            -
                  "name": "getBalanceUpdatedAt",
         | 
| 955 | 
            -
                  "outputs": [
         | 
| 956 | 
            -
                    {
         | 
| 957 | 
            -
                      "internalType": "Timestamp",
         | 
| 958 | 
            -
                      "name": "updatedAt",
         | 
| 959 | 
            -
                      "type": "uint40"
         | 
| 960 | 
            -
                    }
         | 
| 961 | 
            -
                  ],
         | 
| 962 | 
            -
                  "stateMutability": "view",
         | 
| 963 | 
            -
                  "type": "function"
         | 
| 964 | 
            -
                },
         | 
| 965 | 
            -
                {
         | 
| 966 | 
            -
                  "inputs": [
         | 
| 967 | 
            -
                    {
         | 
| 968 | 
            -
                      "internalType": "NftId",
         | 
| 969 | 
            -
                      "name": "nftId",
         | 
| 1392 | 
            +
                      "name": "targetNftId",
         | 
| 970 1393 | 
             
                      "type": "uint96"
         | 
| 1394 | 
            +
                    },
         | 
| 1395 | 
            +
                    {
         | 
| 1396 | 
            +
                      "internalType": "bool",
         | 
| 1397 | 
            +
                      "name": "includeTargetTypeRequirements",
         | 
| 1398 | 
            +
                      "type": "bool"
         | 
| 971 1399 | 
             
                    }
         | 
| 972 1400 | 
             
                  ],
         | 
| 973 | 
            -
                  "name": " | 
| 974 | 
            -
                  "outputs": [
         | 
| 975 | 
            -
                    {
         | 
| 976 | 
            -
                      "internalType": "Blocknumber",
         | 
| 977 | 
            -
                      "name": "blocknumber",
         | 
| 978 | 
            -
                      "type": "uint32"
         | 
| 979 | 
            -
                    }
         | 
| 980 | 
            -
                  ],
         | 
| 981 | 
            -
                  "stateMutability": "view",
         | 
| 982 | 
            -
                  "type": "function"
         | 
| 983 | 
            -
                },
         | 
| 984 | 
            -
                {
         | 
| 985 | 
            -
                  "inputs": [
         | 
| 986 | 
            -
                    {
         | 
| 987 | 
            -
                      "internalType": "Key32",
         | 
| 988 | 
            -
                      "name": "key32",
         | 
| 989 | 
            -
                      "type": "bytes32"
         | 
| 990 | 
            -
                    }
         | 
| 991 | 
            -
                  ],
         | 
| 992 | 
            -
                  "name": "getData",
         | 
| 993 | 
            -
                  "outputs": [
         | 
| 994 | 
            -
                    {
         | 
| 995 | 
            -
                      "internalType": "bytes",
         | 
| 996 | 
            -
                      "name": "data",
         | 
| 997 | 
            -
                      "type": "bytes"
         | 
| 998 | 
            -
                    }
         | 
| 999 | 
            -
                  ],
         | 
| 1000 | 
            -
                  "stateMutability": "view",
         | 
| 1001 | 
            -
                  "type": "function"
         | 
| 1002 | 
            -
                },
         | 
| 1003 | 
            -
                {
         | 
| 1004 | 
            -
                  "inputs": [
         | 
| 1005 | 
            -
                    {
         | 
| 1006 | 
            -
                      "internalType": "ObjectType",
         | 
| 1007 | 
            -
                      "name": "objectType",
         | 
| 1008 | 
            -
                      "type": "uint8"
         | 
| 1009 | 
            -
                    }
         | 
| 1010 | 
            -
                  ],
         | 
| 1011 | 
            -
                  "name": "getInitialState",
         | 
| 1401 | 
            +
                  "name": "getRequiredStakeBalance",
         | 
| 1012 1402 | 
             
                  "outputs": [
         | 
| 1013 1403 | 
             
                    {
         | 
| 1014 | 
            -
                      "internalType": " | 
| 1015 | 
            -
                      "name": "",
         | 
| 1016 | 
            -
                      "type": " | 
| 1404 | 
            +
                      "internalType": "Amount",
         | 
| 1405 | 
            +
                      "name": "requiredStakeAmount",
         | 
| 1406 | 
            +
                      "type": "uint96"
         | 
| 1017 1407 | 
             
                    }
         | 
| 1018 1408 | 
             
                  ],
         | 
| 1019 1409 | 
             
                  "stateMutability": "view",
         | 
| @@ -1022,38 +1412,48 @@ | |
| 1022 1412 | 
             
                {
         | 
| 1023 1413 | 
             
                  "inputs": [
         | 
| 1024 1414 | 
             
                    {
         | 
| 1025 | 
            -
                      "internalType": " | 
| 1026 | 
            -
                      "name": " | 
| 1027 | 
            -
                      "type": " | 
| 1415 | 
            +
                      "internalType": "NftId",
         | 
| 1416 | 
            +
                      "name": "stakeNftId",
         | 
| 1417 | 
            +
                      "type": "uint96"
         | 
| 1028 1418 | 
             
                    }
         | 
| 1029 1419 | 
             
                  ],
         | 
| 1030 | 
            -
                  "name": " | 
| 1420 | 
            +
                  "name": "getStakeInfo",
         | 
| 1031 1421 | 
             
                  "outputs": [
         | 
| 1032 1422 | 
             
                    {
         | 
| 1033 1423 | 
             
                      "components": [
         | 
| 1034 1424 | 
             
                        {
         | 
| 1035 | 
            -
                          "internalType": " | 
| 1036 | 
            -
                          "name": " | 
| 1037 | 
            -
                          "type": " | 
| 1425 | 
            +
                          "internalType": "Amount",
         | 
| 1426 | 
            +
                          "name": "stakedAmount",
         | 
| 1427 | 
            +
                          "type": "uint96"
         | 
| 1038 1428 | 
             
                        },
         | 
| 1039 1429 | 
             
                        {
         | 
| 1040 | 
            -
                          "internalType": " | 
| 1041 | 
            -
                          "name": " | 
| 1042 | 
            -
                          "type": " | 
| 1430 | 
            +
                          "internalType": "Amount",
         | 
| 1431 | 
            +
                          "name": "rewardAmount",
         | 
| 1432 | 
            +
                          "type": "uint96"
         | 
| 1043 1433 | 
             
                        },
         | 
| 1044 1434 | 
             
                        {
         | 
| 1045 | 
            -
                          "internalType": " | 
| 1046 | 
            -
                          "name": " | 
| 1047 | 
            -
                          "type": " | 
| 1435 | 
            +
                          "internalType": "Timestamp",
         | 
| 1436 | 
            +
                          "name": "lockedUntil",
         | 
| 1437 | 
            +
                          "type": "uint40"
         | 
| 1438 | 
            +
                        },
         | 
| 1439 | 
            +
                        {
         | 
| 1440 | 
            +
                          "internalType": "NftId",
         | 
| 1441 | 
            +
                          "name": "targetNftId",
         | 
| 1442 | 
            +
                          "type": "uint96"
         | 
| 1443 | 
            +
                        },
         | 
| 1444 | 
            +
                        {
         | 
| 1445 | 
            +
                          "internalType": "Timestamp",
         | 
| 1446 | 
            +
                          "name": "lastUpdateAt",
         | 
| 1447 | 
            +
                          "type": "uint40"
         | 
| 1048 1448 | 
             
                        },
         | 
| 1049 1449 | 
             
                        {
         | 
| 1050 1450 | 
             
                          "internalType": "Blocknumber",
         | 
| 1051 | 
            -
                          "name": " | 
| 1052 | 
            -
                          "type": " | 
| 1451 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1452 | 
            +
                          "type": "uint40"
         | 
| 1053 1453 | 
             
                        }
         | 
| 1054 1454 | 
             
                      ],
         | 
| 1055 | 
            -
                      "internalType": "struct  | 
| 1056 | 
            -
                      "name": " | 
| 1455 | 
            +
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 1456 | 
            +
                      "name": "stakeInfo",
         | 
| 1057 1457 | 
             
                      "type": "tuple"
         | 
| 1058 1458 | 
             
                    }
         | 
| 1059 1459 | 
             
                  ],
         | 
| @@ -1064,15 +1464,15 @@ | |
| 1064 1464 | 
             
                  "inputs": [
         | 
| 1065 1465 | 
             
                    {
         | 
| 1066 1466 | 
             
                      "internalType": "NftId",
         | 
| 1067 | 
            -
                      "name": " | 
| 1467 | 
            +
                      "name": "stakeNftId",
         | 
| 1068 1468 | 
             
                      "type": "uint96"
         | 
| 1069 1469 | 
             
                    }
         | 
| 1070 1470 | 
             
                  ],
         | 
| 1071 | 
            -
                  "name": " | 
| 1471 | 
            +
                  "name": "getStakeTarget",
         | 
| 1072 1472 | 
             
                  "outputs": [
         | 
| 1073 1473 | 
             
                    {
         | 
| 1074 | 
            -
                      "internalType": " | 
| 1075 | 
            -
                      "name": " | 
| 1474 | 
            +
                      "internalType": "NftId",
         | 
| 1475 | 
            +
                      "name": "targetNftId",
         | 
| 1076 1476 | 
             
                      "type": "uint96"
         | 
| 1077 1477 | 
             
                    }
         | 
| 1078 1478 | 
             
                  ],
         | 
| @@ -1080,19 +1480,13 @@ | |
| 1080 1480 | 
             
                  "type": "function"
         | 
| 1081 1481 | 
             
                },
         | 
| 1082 1482 | 
             
                {
         | 
| 1083 | 
            -
                  "inputs": [
         | 
| 1084 | 
            -
             | 
| 1085 | 
            -
                      "internalType": "NftId",
         | 
| 1086 | 
            -
                      "name": "nftId",
         | 
| 1087 | 
            -
                      "type": "uint96"
         | 
| 1088 | 
            -
                    }
         | 
| 1089 | 
            -
                  ],
         | 
| 1090 | 
            -
                  "name": "getReserveBalance",
         | 
| 1483 | 
            +
                  "inputs": [],
         | 
| 1484 | 
            +
                  "name": "getStakingReader",
         | 
| 1091 1485 | 
             
                  "outputs": [
         | 
| 1092 1486 | 
             
                    {
         | 
| 1093 | 
            -
                      "internalType": " | 
| 1094 | 
            -
                      "name": " | 
| 1095 | 
            -
                      "type": " | 
| 1487 | 
            +
                      "internalType": "contract StakingReader",
         | 
| 1488 | 
            +
                      "name": "stakingReader",
         | 
| 1489 | 
            +
                      "type": "address"
         | 
| 1096 1490 | 
             
                    }
         | 
| 1097 1491 | 
             
                  ],
         | 
| 1098 1492 | 
             
                  "stateMutability": "view",
         | 
| @@ -1101,17 +1495,69 @@ | |
| 1101 1495 | 
             
                {
         | 
| 1102 1496 | 
             
                  "inputs": [
         | 
| 1103 1497 | 
             
                    {
         | 
| 1104 | 
            -
                      "internalType": " | 
| 1105 | 
            -
                      "name": " | 
| 1106 | 
            -
                      "type": " | 
| 1498 | 
            +
                      "internalType": "ObjectType",
         | 
| 1499 | 
            +
                      "name": "targetType",
         | 
| 1500 | 
            +
                      "type": "uint8"
         | 
| 1107 1501 | 
             
                    }
         | 
| 1108 1502 | 
             
                  ],
         | 
| 1109 | 
            -
                  "name": " | 
| 1503 | 
            +
                  "name": "getSupportInfo",
         | 
| 1110 1504 | 
             
                  "outputs": [
         | 
| 1111 1505 | 
             
                    {
         | 
| 1112 | 
            -
                      " | 
| 1113 | 
            -
             | 
| 1114 | 
            -
             | 
| 1506 | 
            +
                      "components": [
         | 
| 1507 | 
            +
                        {
         | 
| 1508 | 
            +
                          "internalType": "bool",
         | 
| 1509 | 
            +
                          "name": "isSupported",
         | 
| 1510 | 
            +
                          "type": "bool"
         | 
| 1511 | 
            +
                        },
         | 
| 1512 | 
            +
                        {
         | 
| 1513 | 
            +
                          "internalType": "bool",
         | 
| 1514 | 
            +
                          "name": "allowNewTargets",
         | 
| 1515 | 
            +
                          "type": "bool"
         | 
| 1516 | 
            +
                        },
         | 
| 1517 | 
            +
                        {
         | 
| 1518 | 
            +
                          "internalType": "bool",
         | 
| 1519 | 
            +
                          "name": "allowCrossChain",
         | 
| 1520 | 
            +
                          "type": "bool"
         | 
| 1521 | 
            +
                        },
         | 
| 1522 | 
            +
                        {
         | 
| 1523 | 
            +
                          "internalType": "Amount",
         | 
| 1524 | 
            +
                          "name": "minStakingAmount",
         | 
| 1525 | 
            +
                          "type": "uint96"
         | 
| 1526 | 
            +
                        },
         | 
| 1527 | 
            +
                        {
         | 
| 1528 | 
            +
                          "internalType": "Amount",
         | 
| 1529 | 
            +
                          "name": "maxStakingAmount",
         | 
| 1530 | 
            +
                          "type": "uint96"
         | 
| 1531 | 
            +
                        },
         | 
| 1532 | 
            +
                        {
         | 
| 1533 | 
            +
                          "internalType": "Seconds",
         | 
| 1534 | 
            +
                          "name": "minLockingPeriod",
         | 
| 1535 | 
            +
                          "type": "uint40"
         | 
| 1536 | 
            +
                        },
         | 
| 1537 | 
            +
                        {
         | 
| 1538 | 
            +
                          "internalType": "Seconds",
         | 
| 1539 | 
            +
                          "name": "maxLockingPeriod",
         | 
| 1540 | 
            +
                          "type": "uint40"
         | 
| 1541 | 
            +
                        },
         | 
| 1542 | 
            +
                        {
         | 
| 1543 | 
            +
                          "internalType": "UFixed",
         | 
| 1544 | 
            +
                          "name": "minRewardRate",
         | 
| 1545 | 
            +
                          "type": "uint160"
         | 
| 1546 | 
            +
                        },
         | 
| 1547 | 
            +
                        {
         | 
| 1548 | 
            +
                          "internalType": "UFixed",
         | 
| 1549 | 
            +
                          "name": "maxRewardRate",
         | 
| 1550 | 
            +
                          "type": "uint160"
         | 
| 1551 | 
            +
                        },
         | 
| 1552 | 
            +
                        {
         | 
| 1553 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1554 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1555 | 
            +
                          "type": "uint40"
         | 
| 1556 | 
            +
                        }
         | 
| 1557 | 
            +
                      ],
         | 
| 1558 | 
            +
                      "internalType": "struct IStaking.SupportInfo",
         | 
| 1559 | 
            +
                      "name": "supportInfo",
         | 
| 1560 | 
            +
                      "type": "tuple"
         | 
| 1115 1561 | 
             
                    }
         | 
| 1116 1562 | 
             
                  ],
         | 
| 1117 1563 | 
             
                  "stateMutability": "view",
         | 
| @@ -1121,45 +1567,89 @@ | |
| 1121 1567 | 
             
                  "inputs": [
         | 
| 1122 1568 | 
             
                    {
         | 
| 1123 1569 | 
             
                      "internalType": "NftId",
         | 
| 1124 | 
            -
                      "name": " | 
| 1570 | 
            +
                      "name": "targetNftId",
         | 
| 1125 1571 | 
             
                      "type": "uint96"
         | 
| 1126 1572 | 
             
                    }
         | 
| 1127 1573 | 
             
                  ],
         | 
| 1128 | 
            -
                  "name": " | 
| 1574 | 
            +
                  "name": "getTargetInfo",
         | 
| 1129 1575 | 
             
                  "outputs": [
         | 
| 1130 1576 | 
             
                    {
         | 
| 1131 | 
            -
                      " | 
| 1132 | 
            -
             | 
| 1133 | 
            -
             | 
| 1577 | 
            +
                      "components": [
         | 
| 1578 | 
            +
                        {
         | 
| 1579 | 
            +
                          "internalType": "Amount",
         | 
| 1580 | 
            +
                          "name": "stakedAmount",
         | 
| 1581 | 
            +
                          "type": "uint96"
         | 
| 1582 | 
            +
                        },
         | 
| 1583 | 
            +
                        {
         | 
| 1584 | 
            +
                          "internalType": "Amount",
         | 
| 1585 | 
            +
                          "name": "rewardAmount",
         | 
| 1586 | 
            +
                          "type": "uint96"
         | 
| 1587 | 
            +
                        },
         | 
| 1588 | 
            +
                        {
         | 
| 1589 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1590 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1591 | 
            +
                          "type": "uint40"
         | 
| 1592 | 
            +
                        },
         | 
| 1593 | 
            +
                        {
         | 
| 1594 | 
            +
                          "internalType": "Amount",
         | 
| 1595 | 
            +
                          "name": "reserveAmount",
         | 
| 1596 | 
            +
                          "type": "uint96"
         | 
| 1597 | 
            +
                        },
         | 
| 1598 | 
            +
                        {
         | 
| 1599 | 
            +
                          "internalType": "Amount",
         | 
| 1600 | 
            +
                          "name": "limitAmount",
         | 
| 1601 | 
            +
                          "type": "uint96"
         | 
| 1602 | 
            +
                        },
         | 
| 1603 | 
            +
                        {
         | 
| 1604 | 
            +
                          "internalType": "Seconds",
         | 
| 1605 | 
            +
                          "name": "lockingPeriod",
         | 
| 1606 | 
            +
                          "type": "uint40"
         | 
| 1607 | 
            +
                        },
         | 
| 1608 | 
            +
                        {
         | 
| 1609 | 
            +
                          "internalType": "ObjectType",
         | 
| 1610 | 
            +
                          "name": "objectType",
         | 
| 1611 | 
            +
                          "type": "uint8"
         | 
| 1612 | 
            +
                        },
         | 
| 1613 | 
            +
                        {
         | 
| 1614 | 
            +
                          "internalType": "UFixed",
         | 
| 1615 | 
            +
                          "name": "rewardRate",
         | 
| 1616 | 
            +
                          "type": "uint160"
         | 
| 1617 | 
            +
                        },
         | 
| 1618 | 
            +
                        {
         | 
| 1619 | 
            +
                          "internalType": "ChainId",
         | 
| 1620 | 
            +
                          "name": "chainId",
         | 
| 1621 | 
            +
                          "type": "uint96"
         | 
| 1622 | 
            +
                        }
         | 
| 1623 | 
            +
                      ],
         | 
| 1624 | 
            +
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 1625 | 
            +
                      "name": "targetInfo",
         | 
| 1626 | 
            +
                      "type": "tuple"
         | 
| 1134 1627 | 
             
                    }
         | 
| 1135 1628 | 
             
                  ],
         | 
| 1136 1629 | 
             
                  "stateMutability": "view",
         | 
| 1137 1630 | 
             
                  "type": "function"
         | 
| 1138 1631 | 
             
                },
         | 
| 1139 1632 | 
             
                {
         | 
| 1140 | 
            -
                  "inputs": [
         | 
| 1633 | 
            +
                  "inputs": [],
         | 
| 1634 | 
            +
                  "name": "getTargetManager",
         | 
| 1635 | 
            +
                  "outputs": [
         | 
| 1141 1636 | 
             
                    {
         | 
| 1142 | 
            -
                      "internalType": " | 
| 1143 | 
            -
                      "name": " | 
| 1144 | 
            -
                      "type": " | 
| 1637 | 
            +
                      "internalType": "contract ITargetLimitHandler",
         | 
| 1638 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1639 | 
            +
                      "type": "address"
         | 
| 1145 1640 | 
             
                    }
         | 
| 1146 1641 | 
             
                  ],
         | 
| 1147 | 
            -
                  " | 
| 1642 | 
            +
                  "stateMutability": "view",
         | 
| 1643 | 
            +
                  "type": "function"
         | 
| 1644 | 
            +
                },
         | 
| 1645 | 
            +
                {
         | 
| 1646 | 
            +
                  "inputs": [],
         | 
| 1647 | 
            +
                  "name": "getTargetSet",
         | 
| 1148 1648 | 
             
                  "outputs": [
         | 
| 1149 1649 | 
             
                    {
         | 
| 1150 | 
            -
                      "internalType": " | 
| 1151 | 
            -
                      "name": " | 
| 1152 | 
            -
                      "type": " | 
| 1153 | 
            -
                    },
         | 
| 1154 | 
            -
                    {
         | 
| 1155 | 
            -
                      "internalType": "Amount",
         | 
| 1156 | 
            -
                      "name": "rewardBalance",
         | 
| 1157 | 
            -
                      "type": "uint96"
         | 
| 1158 | 
            -
                    },
         | 
| 1159 | 
            -
                    {
         | 
| 1160 | 
            -
                      "internalType": "Timestamp",
         | 
| 1161 | 
            -
                      "name": "lastUpdatedAt",
         | 
| 1162 | 
            -
                      "type": "uint40"
         | 
| 1650 | 
            +
                      "internalType": "contract NftIdSet",
         | 
| 1651 | 
            +
                      "name": "targetNftIdSet",
         | 
| 1652 | 
            +
                      "type": "address"
         | 
| 1163 1653 | 
             
                    }
         | 
| 1164 1654 | 
             
                  ],
         | 
| 1165 1655 | 
             
                  "stateMutability": "view",
         | 
| @@ -1168,9 +1658,9 @@ | |
| 1168 1658 | 
             
                {
         | 
| 1169 1659 | 
             
                  "inputs": [
         | 
| 1170 1660 | 
             
                    {
         | 
| 1171 | 
            -
                      "internalType": " | 
| 1661 | 
            +
                      "internalType": "ChainId",
         | 
| 1172 1662 | 
             
                      "name": "chainId",
         | 
| 1173 | 
            -
                      "type": " | 
| 1663 | 
            +
                      "type": "uint96"
         | 
| 1174 1664 | 
             
                    },
         | 
| 1175 1665 | 
             
                    {
         | 
| 1176 1666 | 
             
                      "internalType": "address",
         | 
| @@ -1178,44 +1668,94 @@ | |
| 1178 1668 | 
             
                      "type": "address"
         | 
| 1179 1669 | 
             
                    }
         | 
| 1180 1670 | 
             
                  ],
         | 
| 1181 | 
            -
                  "name": " | 
| 1671 | 
            +
                  "name": "getTokenInfo",
         | 
| 1182 1672 | 
             
                  "outputs": [
         | 
| 1183 1673 | 
             
                    {
         | 
| 1184 | 
            -
                      " | 
| 1185 | 
            -
             | 
| 1186 | 
            -
             | 
| 1674 | 
            +
                      "components": [
         | 
| 1675 | 
            +
                        {
         | 
| 1676 | 
            +
                          "internalType": "UFixed",
         | 
| 1677 | 
            +
                          "name": "stakingRate",
         | 
| 1678 | 
            +
                          "type": "uint160"
         | 
| 1679 | 
            +
                        },
         | 
| 1680 | 
            +
                        {
         | 
| 1681 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1682 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1683 | 
            +
                          "type": "uint40"
         | 
| 1684 | 
            +
                        }
         | 
| 1685 | 
            +
                      ],
         | 
| 1686 | 
            +
                      "internalType": "struct IStaking.TokenInfo",
         | 
| 1687 | 
            +
                      "name": "tokenInfo",
         | 
| 1688 | 
            +
                      "type": "tuple"
         | 
| 1187 1689 | 
             
                    }
         | 
| 1188 1690 | 
             
                  ],
         | 
| 1189 1691 | 
             
                  "stateMutability": "view",
         | 
| 1190 1692 | 
             
                  "type": "function"
         | 
| 1191 1693 | 
             
                },
         | 
| 1192 1694 | 
             
                {
         | 
| 1193 | 
            -
                  "inputs": [ | 
| 1194 | 
            -
                  "name": "getStakingReader",
         | 
| 1195 | 
            -
                  "outputs": [
         | 
| 1695 | 
            +
                  "inputs": [
         | 
| 1196 1696 | 
             
                    {
         | 
| 1197 | 
            -
                      "internalType": " | 
| 1198 | 
            -
                      "name": " | 
| 1697 | 
            +
                      "internalType": "NftId",
         | 
| 1698 | 
            +
                      "name": "targetNftId",
         | 
| 1699 | 
            +
                      "type": "uint96"
         | 
| 1700 | 
            +
                    },
         | 
| 1701 | 
            +
                    {
         | 
| 1702 | 
            +
                      "internalType": "address",
         | 
| 1703 | 
            +
                      "name": "token",
         | 
| 1199 1704 | 
             
                      "type": "address"
         | 
| 1200 1705 | 
             
                    }
         | 
| 1201 1706 | 
             
                  ],
         | 
| 1707 | 
            +
                  "name": "getTvlInfo",
         | 
| 1708 | 
            +
                  "outputs": [
         | 
| 1709 | 
            +
                    {
         | 
| 1710 | 
            +
                      "components": [
         | 
| 1711 | 
            +
                        {
         | 
| 1712 | 
            +
                          "internalType": "Amount",
         | 
| 1713 | 
            +
                          "name": "tvlAmount",
         | 
| 1714 | 
            +
                          "type": "uint96"
         | 
| 1715 | 
            +
                        },
         | 
| 1716 | 
            +
                        {
         | 
| 1717 | 
            +
                          "internalType": "Amount",
         | 
| 1718 | 
            +
                          "name": "tvlBaselineAmount",
         | 
| 1719 | 
            +
                          "type": "uint96"
         | 
| 1720 | 
            +
                        },
         | 
| 1721 | 
            +
                        {
         | 
| 1722 | 
            +
                          "internalType": "uint16",
         | 
| 1723 | 
            +
                          "name": "updatesCounter",
         | 
| 1724 | 
            +
                          "type": "uint16"
         | 
| 1725 | 
            +
                        },
         | 
| 1726 | 
            +
                        {
         | 
| 1727 | 
            +
                          "internalType": "Blocknumber",
         | 
| 1728 | 
            +
                          "name": "lastUpdateIn",
         | 
| 1729 | 
            +
                          "type": "uint40"
         | 
| 1730 | 
            +
                        }
         | 
| 1731 | 
            +
                      ],
         | 
| 1732 | 
            +
                      "internalType": "struct IStaking.TvlInfo",
         | 
| 1733 | 
            +
                      "name": "tvlInfo",
         | 
| 1734 | 
            +
                      "type": "tuple"
         | 
| 1735 | 
            +
                    }
         | 
| 1736 | 
            +
                  ],
         | 
| 1202 1737 | 
             
                  "stateMutability": "view",
         | 
| 1203 1738 | 
             
                  "type": "function"
         | 
| 1204 1739 | 
             
                },
         | 
| 1205 1740 | 
             
                {
         | 
| 1206 1741 | 
             
                  "inputs": [
         | 
| 1207 1742 | 
             
                    {
         | 
| 1208 | 
            -
                      "internalType": " | 
| 1209 | 
            -
                      "name": " | 
| 1210 | 
            -
                      "type": " | 
| 1743 | 
            +
                      "internalType": "ChainId",
         | 
| 1744 | 
            +
                      "name": "chainId",
         | 
| 1745 | 
            +
                      "type": "uint96"
         | 
| 1746 | 
            +
                    },
         | 
| 1747 | 
            +
                    {
         | 
| 1748 | 
            +
                      "internalType": "address",
         | 
| 1749 | 
            +
                      "name": "token",
         | 
| 1750 | 
            +
                      "type": "address"
         | 
| 1211 1751 | 
             
                    }
         | 
| 1212 1752 | 
             
                  ],
         | 
| 1213 | 
            -
                  "name": " | 
| 1753 | 
            +
                  "name": "hasTokenInfo",
         | 
| 1214 1754 | 
             
                  "outputs": [
         | 
| 1215 1755 | 
             
                    {
         | 
| 1216 | 
            -
                      "internalType": " | 
| 1217 | 
            -
                      "name": " | 
| 1218 | 
            -
                      "type": " | 
| 1756 | 
            +
                      "internalType": "bool",
         | 
| 1757 | 
            +
                      "name": "",
         | 
| 1758 | 
            +
                      "type": "bool"
         | 
| 1219 1759 | 
             
                    }
         | 
| 1220 1760 | 
             
                  ],
         | 
| 1221 1761 | 
             
                  "stateMutability": "view",
         | 
| @@ -1225,68 +1765,52 @@ | |
| 1225 1765 | 
             
                  "inputs": [
         | 
| 1226 1766 | 
             
                    {
         | 
| 1227 1767 | 
             
                      "internalType": "NftId",
         | 
| 1228 | 
            -
                      "name": " | 
| 1229 | 
            -
                      "type": "uint96"
         | 
| 1230 | 
            -
                    }
         | 
| 1231 | 
            -
                  ],
         | 
| 1232 | 
            -
                  "name": "getTargetBalances",
         | 
| 1233 | 
            -
                  "outputs": [
         | 
| 1234 | 
            -
                    {
         | 
| 1235 | 
            -
                      "internalType": "Amount",
         | 
| 1236 | 
            -
                      "name": "stakeBalance",
         | 
| 1768 | 
            +
                      "name": "targetNftId",
         | 
| 1237 1769 | 
             
                      "type": "uint96"
         | 
| 1238 1770 | 
             
                    },
         | 
| 1239 1771 | 
             
                    {
         | 
| 1240 | 
            -
                      "internalType": " | 
| 1241 | 
            -
                      "name": " | 
| 1242 | 
            -
                      "type": " | 
| 1772 | 
            +
                      "internalType": "address",
         | 
| 1773 | 
            +
                      "name": "token",
         | 
| 1774 | 
            +
                      "type": "address"
         | 
| 1243 1775 | 
             
                    },
         | 
| 1244 1776 | 
             
                    {
         | 
| 1245 1777 | 
             
                      "internalType": "Amount",
         | 
| 1246 | 
            -
                      "name": " | 
| 1778 | 
            +
                      "name": "amount",
         | 
| 1247 1779 | 
             
                      "type": "uint96"
         | 
| 1248 | 
            -
                    },
         | 
| 1249 | 
            -
                    {
         | 
| 1250 | 
            -
                      "internalType": "Blocknumber",
         | 
| 1251 | 
            -
                      "name": "lastUpdatedIn",
         | 
| 1252 | 
            -
                      "type": "uint32"
         | 
| 1253 1780 | 
             
                    }
         | 
| 1254 1781 | 
             
                  ],
         | 
| 1255 | 
            -
                  " | 
| 1256 | 
            -
                  "type": "function"
         | 
| 1257 | 
            -
                },
         | 
| 1258 | 
            -
                {
         | 
| 1259 | 
            -
                  "inputs": [],
         | 
| 1260 | 
            -
                  "name": "getTargetNftIdSet",
         | 
| 1782 | 
            +
                  "name": "increaseTotalValueLocked",
         | 
| 1261 1783 | 
             
                  "outputs": [
         | 
| 1262 1784 | 
             
                    {
         | 
| 1263 | 
            -
                      "internalType": " | 
| 1264 | 
            -
                      "name": " | 
| 1265 | 
            -
                      "type": " | 
| 1785 | 
            +
                      "internalType": "Amount",
         | 
| 1786 | 
            +
                      "name": "newBalance",
         | 
| 1787 | 
            +
                      "type": "uint96"
         | 
| 1266 1788 | 
             
                    }
         | 
| 1267 1789 | 
             
                  ],
         | 
| 1268 | 
            -
                  "stateMutability": " | 
| 1790 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1269 1791 | 
             
                  "type": "function"
         | 
| 1270 1792 | 
             
                },
         | 
| 1271 1793 | 
             
                {
         | 
| 1272 1794 | 
             
                  "inputs": [
         | 
| 1273 | 
            -
                    {
         | 
| 1274 | 
            -
                      "internalType": "NftId",
         | 
| 1275 | 
            -
                      "name": "nftId",
         | 
| 1276 | 
            -
                      "type": "uint96"
         | 
| 1277 | 
            -
                    },
         | 
| 1278 1795 | 
             
                    {
         | 
| 1279 1796 | 
             
                      "internalType": "address",
         | 
| 1280 | 
            -
                      "name": " | 
| 1797 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1281 1798 | 
             
                      "type": "address"
         | 
| 1282 1799 | 
             
                    }
         | 
| 1283 1800 | 
             
                  ],
         | 
| 1284 | 
            -
                  "name": " | 
| 1801 | 
            +
                  "name": "initialize",
         | 
| 1802 | 
            +
                  "outputs": [],
         | 
| 1803 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1804 | 
            +
                  "type": "function"
         | 
| 1805 | 
            +
                },
         | 
| 1806 | 
            +
                {
         | 
| 1807 | 
            +
                  "inputs": [],
         | 
| 1808 | 
            +
                  "name": "isConsumingScheduledOp",
         | 
| 1285 1809 | 
             
                  "outputs": [
         | 
| 1286 1810 | 
             
                    {
         | 
| 1287 | 
            -
                      "internalType": " | 
| 1288 | 
            -
                      "name": " | 
| 1289 | 
            -
                      "type": " | 
| 1811 | 
            +
                      "internalType": "bytes4",
         | 
| 1812 | 
            +
                      "name": "",
         | 
| 1813 | 
            +
                      "type": "bytes4"
         | 
| 1290 1814 | 
             
                    }
         | 
| 1291 1815 | 
             
                  ],
         | 
| 1292 1816 | 
             
                  "stateMutability": "view",
         | 
| @@ -1295,12 +1819,12 @@ | |
| 1295 1819 | 
             
                {
         | 
| 1296 1820 | 
             
                  "inputs": [
         | 
| 1297 1821 | 
             
                    {
         | 
| 1298 | 
            -
                      "internalType": " | 
| 1299 | 
            -
                      "name": " | 
| 1300 | 
            -
                      "type": " | 
| 1822 | 
            +
                      "internalType": "NftId",
         | 
| 1823 | 
            +
                      "name": "stakeNftId",
         | 
| 1824 | 
            +
                      "type": "uint96"
         | 
| 1301 1825 | 
             
                    }
         | 
| 1302 1826 | 
             
                  ],
         | 
| 1303 | 
            -
                  "name": " | 
| 1827 | 
            +
                  "name": "isStakeLocked",
         | 
| 1304 1828 | 
             
                  "outputs": [
         | 
| 1305 1829 | 
             
                    {
         | 
| 1306 1830 | 
             
                      "internalType": "bool",
         | 
| @@ -1324,7 +1848,7 @@ | |
| 1324 1848 | 
             
                      "type": "uint96"
         | 
| 1325 1849 | 
             
                    }
         | 
| 1326 1850 | 
             
                  ],
         | 
| 1327 | 
            -
                  "name": " | 
| 1851 | 
            +
                  "name": "refillRewardReserves",
         | 
| 1328 1852 | 
             
                  "outputs": [
         | 
| 1329 1853 | 
             
                    {
         | 
| 1330 1854 | 
             
                      "internalType": "Amount",
         | 
| @@ -1339,21 +1863,47 @@ | |
| 1339 1863 | 
             
                  "inputs": [
         | 
| 1340 1864 | 
             
                    {
         | 
| 1341 1865 | 
             
                      "internalType": "NftId",
         | 
| 1342 | 
            -
                      "name": " | 
| 1866 | 
            +
                      "name": "stakeNftId",
         | 
| 1343 1867 | 
             
                      "type": "uint96"
         | 
| 1344 1868 | 
             
                    },
         | 
| 1869 | 
            +
                    {
         | 
| 1870 | 
            +
                      "internalType": "bool",
         | 
| 1871 | 
            +
                      "name": "updateRewards",
         | 
| 1872 | 
            +
                      "type": "bool"
         | 
| 1873 | 
            +
                    }
         | 
| 1874 | 
            +
                  ],
         | 
| 1875 | 
            +
                  "name": "restakeRewards",
         | 
| 1876 | 
            +
                  "outputs": [],
         | 
| 1877 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1878 | 
            +
                  "type": "function"
         | 
| 1879 | 
            +
                },
         | 
| 1880 | 
            +
                {
         | 
| 1881 | 
            +
                  "inputs": [
         | 
| 1882 | 
            +
                    {
         | 
| 1883 | 
            +
                      "internalType": "address",
         | 
| 1884 | 
            +
                      "name": "newAuthority",
         | 
| 1885 | 
            +
                      "type": "address"
         | 
| 1886 | 
            +
                    }
         | 
| 1887 | 
            +
                  ],
         | 
| 1888 | 
            +
                  "name": "setAuthority",
         | 
| 1889 | 
            +
                  "outputs": [],
         | 
| 1890 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1891 | 
            +
                  "type": "function"
         | 
| 1892 | 
            +
                },
         | 
| 1893 | 
            +
                {
         | 
| 1894 | 
            +
                  "inputs": [
         | 
| 1345 1895 | 
             
                    {
         | 
| 1346 1896 | 
             
                      "internalType": "NftId",
         | 
| 1347 1897 | 
             
                      "name": "targetNftId",
         | 
| 1348 1898 | 
             
                      "type": "uint96"
         | 
| 1349 1899 | 
             
                    },
         | 
| 1350 1900 | 
             
                    {
         | 
| 1351 | 
            -
                      "internalType": " | 
| 1352 | 
            -
                      "name": " | 
| 1353 | 
            -
                      "type": " | 
| 1901 | 
            +
                      "internalType": "Seconds",
         | 
| 1902 | 
            +
                      "name": "lockingPeriod",
         | 
| 1903 | 
            +
                      "type": "uint40"
         | 
| 1354 1904 | 
             
                    }
         | 
| 1355 1905 | 
             
                  ],
         | 
| 1356 | 
            -
                  "name": " | 
| 1906 | 
            +
                  "name": "setLockingPeriod",
         | 
| 1357 1907 | 
             
                  "outputs": [],
         | 
| 1358 1908 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1359 1909 | 
             
                  "type": "function"
         | 
| @@ -1365,94 +1915,147 @@ | |
| 1365 1915 | 
             
                      "name": "targetNftId",
         | 
| 1366 1916 | 
             
                      "type": "uint96"
         | 
| 1367 1917 | 
             
                    },
         | 
| 1368 | 
            -
                    {
         | 
| 1369 | 
            -
                      "internalType": "UFixed",
         | 
| 1370 | 
            -
                      "name": "stakingRate",
         | 
| 1371 | 
            -
                      "type": "uint256"
         | 
| 1372 | 
            -
                    },
         | 
| 1373 | 
            -
                    {
         | 
| 1374 | 
            -
                      "internalType": "address",
         | 
| 1375 | 
            -
                      "name": "token",
         | 
| 1376 | 
            -
                      "type": "address"
         | 
| 1377 | 
            -
                    },
         | 
| 1378 1918 | 
             
                    {
         | 
| 1379 1919 | 
             
                      "internalType": "Amount",
         | 
| 1380 | 
            -
                      "name": " | 
| 1920 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 1381 1921 | 
             
                      "type": "uint96"
         | 
| 1382 1922 | 
             
                    }
         | 
| 1383 1923 | 
             
                  ],
         | 
| 1384 | 
            -
                  "name": " | 
| 1924 | 
            +
                  "name": "setMaxStakedAmount",
         | 
| 1385 1925 | 
             
                  "outputs": [
         | 
| 1386 1926 | 
             
                    {
         | 
| 1387 1927 | 
             
                      "internalType": "Amount",
         | 
| 1388 | 
            -
                      "name": " | 
| 1928 | 
            +
                      "name": "oldLimitAmount",
         | 
| 1389 1929 | 
             
                      "type": "uint96"
         | 
| 1930 | 
            +
                    },
         | 
| 1931 | 
            +
                    {
         | 
| 1932 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1933 | 
            +
                      "name": "lastUpdatedIn",
         | 
| 1934 | 
            +
                      "type": "uint40"
         | 
| 1390 1935 | 
             
                    }
         | 
| 1391 1936 | 
             
                  ],
         | 
| 1392 1937 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1393 1938 | 
             
                  "type": "function"
         | 
| 1394 1939 | 
             
                },
         | 
| 1395 1940 | 
             
                {
         | 
| 1396 | 
            -
                  "inputs": [ | 
| 1397 | 
            -
                  "name": "isConsumingScheduledOp",
         | 
| 1398 | 
            -
                  "outputs": [
         | 
| 1941 | 
            +
                  "inputs": [
         | 
| 1399 1942 | 
             
                    {
         | 
| 1400 | 
            -
                      "internalType": " | 
| 1401 | 
            -
                      "name": "",
         | 
| 1402 | 
            -
                      "type": " | 
| 1943 | 
            +
                      "internalType": "NftId",
         | 
| 1944 | 
            +
                      "name": "targetNftId",
         | 
| 1945 | 
            +
                      "type": "uint96"
         | 
| 1946 | 
            +
                    },
         | 
| 1947 | 
            +
                    {
         | 
| 1948 | 
            +
                      "internalType": "UFixed",
         | 
| 1949 | 
            +
                      "name": "rewardRate",
         | 
| 1950 | 
            +
                      "type": "uint160"
         | 
| 1403 1951 | 
             
                    }
         | 
| 1404 1952 | 
             
                  ],
         | 
| 1405 | 
            -
                  " | 
| 1953 | 
            +
                  "name": "setRewardRate",
         | 
| 1954 | 
            +
                  "outputs": [],
         | 
| 1955 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1406 1956 | 
             
                  "type": "function"
         | 
| 1407 1957 | 
             
                },
         | 
| 1408 1958 | 
             
                {
         | 
| 1409 1959 | 
             
                  "inputs": [
         | 
| 1410 1960 | 
             
                    {
         | 
| 1411 | 
            -
                      "internalType": " | 
| 1412 | 
            -
                      "name": " | 
| 1413 | 
            -
                      "type": " | 
| 1961 | 
            +
                      "internalType": "ChainId",
         | 
| 1962 | 
            +
                      "name": "chainId",
         | 
| 1963 | 
            +
                      "type": "uint96"
         | 
| 1414 1964 | 
             
                    },
         | 
| 1415 1965 | 
             
                    {
         | 
| 1416 | 
            -
                      "internalType": " | 
| 1417 | 
            -
                      "name": " | 
| 1418 | 
            -
                      "type": " | 
| 1966 | 
            +
                      "internalType": "address",
         | 
| 1967 | 
            +
                      "name": "token",
         | 
| 1968 | 
            +
                      "type": "address"
         | 
| 1419 1969 | 
             
                    },
         | 
| 1420 1970 | 
             
                    {
         | 
| 1421 | 
            -
                      "internalType": " | 
| 1422 | 
            -
                      "name": " | 
| 1423 | 
            -
                      "type": " | 
| 1971 | 
            +
                      "internalType": "UFixed",
         | 
| 1972 | 
            +
                      "name": "stakingRate",
         | 
| 1973 | 
            +
                      "type": "uint160"
         | 
| 1424 1974 | 
             
                    }
         | 
| 1425 1975 | 
             
                  ],
         | 
| 1426 | 
            -
                  "name": " | 
| 1976 | 
            +
                  "name": "setStakingRate",
         | 
| 1427 1977 | 
             
                  "outputs": [
         | 
| 1428 1978 | 
             
                    {
         | 
| 1429 | 
            -
                      "internalType": " | 
| 1430 | 
            -
                      "name": "",
         | 
| 1431 | 
            -
                      "type": " | 
| 1979 | 
            +
                      "internalType": "UFixed",
         | 
| 1980 | 
            +
                      "name": "oldStakingRate",
         | 
| 1981 | 
            +
                      "type": "uint160"
         | 
| 1982 | 
            +
                    },
         | 
| 1983 | 
            +
                    {
         | 
| 1984 | 
            +
                      "internalType": "Blocknumber",
         | 
| 1985 | 
            +
                      "name": "lastUpdatedIn",
         | 
| 1986 | 
            +
                      "type": "uint40"
         | 
| 1432 1987 | 
             
                    }
         | 
| 1433 1988 | 
             
                  ],
         | 
| 1434 | 
            -
                  "stateMutability": " | 
| 1989 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1435 1990 | 
             
                  "type": "function"
         | 
| 1436 1991 | 
             
                },
         | 
| 1437 1992 | 
             
                {
         | 
| 1438 1993 | 
             
                  "inputs": [
         | 
| 1439 1994 | 
             
                    {
         | 
| 1440 | 
            -
                      "internalType": " | 
| 1441 | 
            -
                      "name": " | 
| 1442 | 
            -
                      "type": " | 
| 1995 | 
            +
                      "internalType": "address",
         | 
| 1996 | 
            +
                      "name": "reader",
         | 
| 1997 | 
            +
                      "type": "address"
         | 
| 1998 | 
            +
                    }
         | 
| 1999 | 
            +
                  ],
         | 
| 2000 | 
            +
                  "name": "setStakingReader",
         | 
| 2001 | 
            +
                  "outputs": [],
         | 
| 2002 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 2003 | 
            +
                  "type": "function"
         | 
| 2004 | 
            +
                },
         | 
| 2005 | 
            +
                {
         | 
| 2006 | 
            +
                  "inputs": [
         | 
| 2007 | 
            +
                    {
         | 
| 2008 | 
            +
                      "internalType": "ObjectType",
         | 
| 2009 | 
            +
                      "name": "targetType",
         | 
| 2010 | 
            +
                      "type": "uint8"
         | 
| 1443 2011 | 
             
                    },
         | 
| 1444 2012 | 
             
                    {
         | 
| 1445 | 
            -
                      "internalType": " | 
| 1446 | 
            -
                      "name": " | 
| 2013 | 
            +
                      "internalType": "bool",
         | 
| 2014 | 
            +
                      "name": "isSupported",
         | 
| 2015 | 
            +
                      "type": "bool"
         | 
| 2016 | 
            +
                    },
         | 
| 2017 | 
            +
                    {
         | 
| 2018 | 
            +
                      "internalType": "bool",
         | 
| 2019 | 
            +
                      "name": "allowNewTargets",
         | 
| 2020 | 
            +
                      "type": "bool"
         | 
| 2021 | 
            +
                    },
         | 
| 2022 | 
            +
                    {
         | 
| 2023 | 
            +
                      "internalType": "bool",
         | 
| 2024 | 
            +
                      "name": "allowCrossChain",
         | 
| 2025 | 
            +
                      "type": "bool"
         | 
| 2026 | 
            +
                    },
         | 
| 2027 | 
            +
                    {
         | 
| 2028 | 
            +
                      "internalType": "Amount",
         | 
| 2029 | 
            +
                      "name": "minStakingAmount",
         | 
| 1447 2030 | 
             
                      "type": "uint96"
         | 
| 1448 2031 | 
             
                    },
         | 
| 1449 2032 | 
             
                    {
         | 
| 1450 2033 | 
             
                      "internalType": "Amount",
         | 
| 1451 | 
            -
                      "name": " | 
| 2034 | 
            +
                      "name": "maxStakingAmount",
         | 
| 1452 2035 | 
             
                      "type": "uint96"
         | 
| 2036 | 
            +
                    },
         | 
| 2037 | 
            +
                    {
         | 
| 2038 | 
            +
                      "internalType": "Seconds",
         | 
| 2039 | 
            +
                      "name": "minLockingPeriod",
         | 
| 2040 | 
            +
                      "type": "uint40"
         | 
| 2041 | 
            +
                    },
         | 
| 2042 | 
            +
                    {
         | 
| 2043 | 
            +
                      "internalType": "Seconds",
         | 
| 2044 | 
            +
                      "name": "maxLockingPeriod",
         | 
| 2045 | 
            +
                      "type": "uint40"
         | 
| 2046 | 
            +
                    },
         | 
| 2047 | 
            +
                    {
         | 
| 2048 | 
            +
                      "internalType": "UFixed",
         | 
| 2049 | 
            +
                      "name": "minRewardRate",
         | 
| 2050 | 
            +
                      "type": "uint160"
         | 
| 2051 | 
            +
                    },
         | 
| 2052 | 
            +
                    {
         | 
| 2053 | 
            +
                      "internalType": "UFixed",
         | 
| 2054 | 
            +
                      "name": "maxRewardRate",
         | 
| 2055 | 
            +
                      "type": "uint160"
         | 
| 1453 2056 | 
             
                    }
         | 
| 1454 2057 | 
             
                  ],
         | 
| 1455 | 
            -
                  "name": " | 
| 2058 | 
            +
                  "name": "setSupportInfo",
         | 
| 1456 2059 | 
             
                  "outputs": [],
         | 
| 1457 2060 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1458 2061 | 
             
                  "type": "function"
         | 
| @@ -1461,11 +2064,11 @@ | |
| 1461 2064 | 
             
                  "inputs": [
         | 
| 1462 2065 | 
             
                    {
         | 
| 1463 2066 | 
             
                      "internalType": "address",
         | 
| 1464 | 
            -
                      "name": " | 
| 2067 | 
            +
                      "name": "targetLimitHandler",
         | 
| 1465 2068 | 
             
                      "type": "address"
         | 
| 1466 2069 | 
             
                    }
         | 
| 1467 2070 | 
             
                  ],
         | 
| 1468 | 
            -
                  "name": " | 
| 2071 | 
            +
                  "name": "setTargetLimitHandler",
         | 
| 1469 2072 | 
             
                  "outputs": [],
         | 
| 1470 2073 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1471 2074 | 
             
                  "type": "function"
         | 
| @@ -1473,22 +2076,22 @@ | |
| 1473 2076 | 
             
                {
         | 
| 1474 2077 | 
             
                  "inputs": [
         | 
| 1475 2078 | 
             
                    {
         | 
| 1476 | 
            -
                      "internalType": " | 
| 1477 | 
            -
                      "name": " | 
| 1478 | 
            -
                      "type": " | 
| 2079 | 
            +
                      "internalType": "NftId",
         | 
| 2080 | 
            +
                      "name": "targetNftId",
         | 
| 2081 | 
            +
                      "type": "uint96"
         | 
| 1479 2082 | 
             
                    },
         | 
| 1480 2083 | 
             
                    {
         | 
| 1481 | 
            -
                      "internalType": " | 
| 1482 | 
            -
                      "name": " | 
| 1483 | 
            -
                      "type": " | 
| 2084 | 
            +
                      "internalType": "Amount",
         | 
| 2085 | 
            +
                      "name": "marginAmount",
         | 
| 2086 | 
            +
                      "type": "uint96"
         | 
| 1484 2087 | 
             
                    },
         | 
| 1485 2088 | 
             
                    {
         | 
| 1486 | 
            -
                      "internalType": " | 
| 1487 | 
            -
                      "name": " | 
| 1488 | 
            -
                      "type": " | 
| 2089 | 
            +
                      "internalType": "Amount",
         | 
| 2090 | 
            +
                      "name": "hardLimitAmount",
         | 
| 2091 | 
            +
                      "type": "uint96"
         | 
| 1489 2092 | 
             
                    }
         | 
| 1490 2093 | 
             
                  ],
         | 
| 1491 | 
            -
                  "name": " | 
| 2094 | 
            +
                  "name": "setTargetLimits",
         | 
| 1492 2095 | 
             
                  "outputs": [],
         | 
| 1493 2096 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1494 2097 | 
             
                  "type": "function"
         | 
| @@ -1496,61 +2099,65 @@ | |
| 1496 2099 | 
             
                {
         | 
| 1497 2100 | 
             
                  "inputs": [
         | 
| 1498 2101 | 
             
                    {
         | 
| 1499 | 
            -
                      "internalType": " | 
| 1500 | 
            -
                      "name": " | 
| 1501 | 
            -
                      "type": " | 
| 2102 | 
            +
                      "internalType": "NftId",
         | 
| 2103 | 
            +
                      "name": "stakeNftId",
         | 
| 2104 | 
            +
                      "type": "uint96"
         | 
| 1502 2105 | 
             
                    },
         | 
| 1503 2106 | 
             
                    {
         | 
| 1504 | 
            -
                      "internalType": " | 
| 1505 | 
            -
                      "name": " | 
| 1506 | 
            -
                      "type": " | 
| 1507 | 
            -
                    }
         | 
| 1508 | 
            -
                  ],
         | 
| 1509 | 
            -
                  "name": "toKey32",
         | 
| 1510 | 
            -
                  "outputs": [
         | 
| 2107 | 
            +
                      "internalType": "bool",
         | 
| 2108 | 
            +
                      "name": "updateRewards",
         | 
| 2109 | 
            +
                      "type": "bool"
         | 
| 2110 | 
            +
                    },
         | 
| 1511 2111 | 
             
                    {
         | 
| 1512 | 
            -
                      "internalType": " | 
| 1513 | 
            -
                      "name": "",
         | 
| 1514 | 
            -
                      "type": " | 
| 2112 | 
            +
                      "internalType": "bool",
         | 
| 2113 | 
            +
                      "name": "restakeRewards",
         | 
| 2114 | 
            +
                      "type": "bool"
         | 
| 2115 | 
            +
                    },
         | 
| 2116 | 
            +
                    {
         | 
| 2117 | 
            +
                      "internalType": "Seconds",
         | 
| 2118 | 
            +
                      "name": "additionalLockingPeriod",
         | 
| 2119 | 
            +
                      "type": "uint40"
         | 
| 2120 | 
            +
                    },
         | 
| 2121 | 
            +
                    {
         | 
| 2122 | 
            +
                      "internalType": "Amount",
         | 
| 2123 | 
            +
                      "name": "stakeAmount",
         | 
| 2124 | 
            +
                      "type": "uint96"
         | 
| 1515 2125 | 
             
                    }
         | 
| 1516 2126 | 
             
                  ],
         | 
| 1517 | 
            -
                  " | 
| 2127 | 
            +
                  "name": "stake",
         | 
| 2128 | 
            +
                  "outputs": [],
         | 
| 2129 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 1518 2130 | 
             
                  "type": "function"
         | 
| 1519 2131 | 
             
                },
         | 
| 1520 2132 | 
             
                {
         | 
| 1521 2133 | 
             
                  "inputs": [
         | 
| 1522 2134 | 
             
                    {
         | 
| 1523 2135 | 
             
                      "internalType": "NftId",
         | 
| 1524 | 
            -
                      "name": " | 
| 2136 | 
            +
                      "name": "stakeNftId",
         | 
| 1525 2137 | 
             
                      "type": "uint96"
         | 
| 1526 2138 | 
             
                    },
         | 
| 1527 2139 | 
             
                    {
         | 
| 1528 | 
            -
                      "internalType": " | 
| 1529 | 
            -
                      "name": " | 
| 1530 | 
            -
                      "type": " | 
| 2140 | 
            +
                      "internalType": "bool",
         | 
| 2141 | 
            +
                      "name": "updateRewards",
         | 
| 2142 | 
            +
                      "type": "bool"
         | 
| 1531 2143 | 
             
                    },
         | 
| 1532 2144 | 
             
                    {
         | 
| 1533 | 
            -
                      "internalType": " | 
| 1534 | 
            -
                      "name": " | 
| 1535 | 
            -
                      "type": " | 
| 2145 | 
            +
                      "internalType": "bool",
         | 
| 2146 | 
            +
                      "name": "restakeRewards",
         | 
| 2147 | 
            +
                      "type": "bool"
         | 
| 1536 2148 | 
             
                    },
         | 
| 1537 2149 | 
             
                    {
         | 
| 1538 2150 | 
             
                      "internalType": "Amount",
         | 
| 1539 | 
            -
                      "name": " | 
| 2151 | 
            +
                      "name": "maxUnstakeAmount",
         | 
| 1540 2152 | 
             
                      "type": "uint96"
         | 
| 1541 2153 | 
             
                    }
         | 
| 1542 2154 | 
             
                  ],
         | 
| 1543 | 
            -
                  "name": " | 
| 2155 | 
            +
                  "name": "unstake",
         | 
| 1544 2156 | 
             
                  "outputs": [
         | 
| 1545 2157 | 
             
                    {
         | 
| 1546 2158 | 
             
                      "internalType": "Amount",
         | 
| 1547 2159 | 
             
                      "name": "unstakedAmount",
         | 
| 1548 2160 | 
             
                      "type": "uint96"
         | 
| 1549 | 
            -
                    },
         | 
| 1550 | 
            -
                    {
         | 
| 1551 | 
            -
                      "internalType": "Amount",
         | 
| 1552 | 
            -
                      "name": "claimedAmount",
         | 
| 1553 | 
            -
                      "type": "uint96"
         | 
| 1554 2161 | 
             
                    }
         | 
| 1555 2162 | 
             
                  ],
         | 
| 1556 2163 | 
             
                  "stateMutability": "nonpayable",
         | 
| @@ -1562,45 +2169,29 @@ | |
| 1562 2169 | 
             
                      "internalType": "NftId",
         | 
| 1563 2170 | 
             
                      "name": "stakeNftId",
         | 
| 1564 2171 | 
             
                      "type": "uint96"
         | 
| 1565 | 
            -
                    },
         | 
| 1566 | 
            -
                    {
         | 
| 1567 | 
            -
                      "components": [
         | 
| 1568 | 
            -
                        {
         | 
| 1569 | 
            -
                          "internalType": "Timestamp",
         | 
| 1570 | 
            -
                          "name": "lockedUntil",
         | 
| 1571 | 
            -
                          "type": "uint40"
         | 
| 1572 | 
            -
                        }
         | 
| 1573 | 
            -
                      ],
         | 
| 1574 | 
            -
                      "internalType": "struct IStaking.StakeInfo",
         | 
| 1575 | 
            -
                      "name": "stakeInfo",
         | 
| 1576 | 
            -
                      "type": "tuple"
         | 
| 1577 2172 | 
             
                    }
         | 
| 1578 2173 | 
             
                  ],
         | 
| 1579 | 
            -
                  "name": " | 
| 2174 | 
            +
                  "name": "updateRewards",
         | 
| 1580 2175 | 
             
                  "outputs": [],
         | 
| 1581 2176 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1582 2177 | 
             
                  "type": "function"
         | 
| 1583 2178 | 
             
                },
         | 
| 1584 2179 | 
             
                {
         | 
| 1585 2180 | 
             
                  "inputs": [
         | 
| 1586 | 
            -
                    {
         | 
| 1587 | 
            -
                      "internalType": "NftId",
         | 
| 1588 | 
            -
                      "name": "nftId",
         | 
| 1589 | 
            -
                      "type": "uint96"
         | 
| 1590 | 
            -
                    },
         | 
| 1591 2181 | 
             
                    {
         | 
| 1592 2182 | 
             
                      "internalType": "NftId",
         | 
| 1593 2183 | 
             
                      "name": "targetNftId",
         | 
| 1594 2184 | 
             
                      "type": "uint96"
         | 
| 1595 | 
            -
                    } | 
| 2185 | 
            +
                    }
         | 
| 2186 | 
            +
                  ],
         | 
| 2187 | 
            +
                  "name": "updateTargetLimit",
         | 
| 2188 | 
            +
                  "outputs": [
         | 
| 1596 2189 | 
             
                    {
         | 
| 1597 2190 | 
             
                      "internalType": "Amount",
         | 
| 1598 | 
            -
                      "name": " | 
| 2191 | 
            +
                      "name": "stakeLimitAmount",
         | 
| 1599 2192 | 
             
                      "type": "uint96"
         | 
| 1600 2193 | 
             
                    }
         | 
| 1601 2194 | 
             
                  ],
         | 
| 1602 | 
            -
                  "name": "updateRewards",
         | 
| 1603 | 
            -
                  "outputs": [],
         | 
| 1604 2195 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1605 2196 | 
             
                  "type": "function"
         | 
| 1606 2197 | 
             
                },
         | 
| @@ -1612,51 +2203,59 @@ | |
| 1612 2203 | 
             
                      "type": "uint96"
         | 
| 1613 2204 | 
             
                    },
         | 
| 1614 2205 | 
             
                    {
         | 
| 1615 | 
            -
                      " | 
| 1616 | 
            -
             | 
| 1617 | 
            -
             | 
| 1618 | 
            -
             | 
| 1619 | 
            -
             | 
| 1620 | 
            -
             | 
| 1621 | 
            -
             | 
| 1622 | 
            -
             | 
| 1623 | 
            -
             | 
| 1624 | 
            -
             | 
| 1625 | 
            -
             | 
| 1626 | 
            -
                        {
         | 
| 1627 | 
            -
                          "internalType": "Seconds",
         | 
| 1628 | 
            -
                          "name": "lockingPeriod",
         | 
| 1629 | 
            -
                          "type": "uint40"
         | 
| 1630 | 
            -
                        },
         | 
| 1631 | 
            -
                        {
         | 
| 1632 | 
            -
                          "internalType": "UFixed",
         | 
| 1633 | 
            -
                          "name": "rewardRate",
         | 
| 1634 | 
            -
                          "type": "uint256"
         | 
| 1635 | 
            -
                        }
         | 
| 1636 | 
            -
                      ],
         | 
| 1637 | 
            -
                      "internalType": "struct IStaking.TargetInfo",
         | 
| 1638 | 
            -
                      "name": "targetInfo",
         | 
| 1639 | 
            -
                      "type": "tuple"
         | 
| 2206 | 
            +
                      "internalType": "Amount",
         | 
| 2207 | 
            +
                      "name": "dipAmount",
         | 
| 2208 | 
            +
                      "type": "uint96"
         | 
| 2209 | 
            +
                    }
         | 
| 2210 | 
            +
                  ],
         | 
| 2211 | 
            +
                  "name": "withdrawRewardReserves",
         | 
| 2212 | 
            +
                  "outputs": [
         | 
| 2213 | 
            +
                    {
         | 
| 2214 | 
            +
                      "internalType": "Amount",
         | 
| 2215 | 
            +
                      "name": "newReserveBalance",
         | 
| 2216 | 
            +
                      "type": "uint96"
         | 
| 1640 2217 | 
             
                    }
         | 
| 1641 2218 | 
             
                  ],
         | 
| 1642 | 
            -
                  "name": "updateTarget",
         | 
| 1643 | 
            -
                  "outputs": [],
         | 
| 1644 2219 | 
             
                  "stateMutability": "nonpayable",
         | 
| 1645 2220 | 
             
                  "type": "function"
         | 
| 1646 2221 | 
             
                }
         | 
| 1647 2222 | 
             
              ],
         | 
| 1648 | 
            -
              "bytecode": "0x608060405234801561000f575f80fd5b50604051615a96380380615a9683398101604081905261002e91610e22565b33610038816102ae565b50610041610301565b6100a9826001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a49190610e5a565b610324565b600480546001600160a01b038085166001600160a01b03199283161790925560068054928416929091169190911790556040516100e590610dfe565b604051809103905ff0801580156100fe573d5f803e3d5ffd5b50600580546001600160a01b0319166001600160a01b039290921691909117905560405163efac97cf60e01b815261044d60048201526102a79073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015610172573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101969190610e90565b60405180608001604052806101af6103a160201b60201c565b60ff1681526020016001815260200173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610205573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102299190610eab565b64ffffffffff16815260200173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af415801561027c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a09190610ecf565b90526103a6565b50506110cf565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b61030e601f5b6001610597565b610318600b610307565b6103226020610307565b565b5f5433906001600160a01b0316811461035f5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610394576040516361798f2f60e11b81526001600160a01b0383166004820152602401610356565b61039d826102ae565b5050565b600190565b61048a73__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038516601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015610419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043d9190610ecf565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a00160408051601f198184030181529190526105d9565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af41580156104d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f59190610ee6565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff9290921691909117905561052d8261099c565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b158015610578575f80fd5b505af115801561058a573d5f803e3d5ffd5b505050505050565b905090565b60ff8281165f9081526001602052604090205416156105b8576105b8610f09565b60ff9182165f908152600160205260409020805460ff191691909216179055565b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af4158015610629573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064d9190610f1d565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156106a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c49190610f3d565b156106e7576040516307014a8d60e51b815260ff82166004820152602401610356565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af415801561074d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107719190610f3d565b1561079b57604051633f92eac960e21b81526004810185905260ff83166024820152604401610356565b6107a482610d06565b6107c657604051636cb0978b60e11b815260ff83166004820152602401610356565b5f6107cf610d92565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021762010000600160501b0319166201000063ffffffff851690810263ffffffff60301b1916919091176601000000000000919091021784555f8781526003602052604090209091506001016108588682610ff4565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156108c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ed9190610f1d565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f91906110ae565b6040805160ff938416815260ff199290921660208301529184168183015233606082015232608082015290519081900360a00190a1505050505050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015610a09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2d9190610f3d565b15610a56576040516366d785a360e11b81526001600160601b0382166004820152602401610356565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac19190610e90565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b729190610e90565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610bff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c239190610e90565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610cb0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd49190610ee6565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015610d68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8c9190610f3d565b92915050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610dda573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105929190610ee6565b61074c8061534a83390190565b6001600160a01b0381168114610e1f575f80fd5b50565b5f8060408385031215610e33575f80fd5b8251610e3e81610e0b565b6020840151909250610e4f81610e0b565b809150509250929050565b5f60208284031215610e6a575f80fd5b8151610e7581610e0b565b9392505050565b6001600160601b0381168114610e1f575f80fd5b5f60208284031215610ea0575f80fd5b8151610e7581610e7c565b5f60208284031215610ebb575f80fd5b815164ffffffffff81168114610e75575f80fd5b5f60208284031215610edf575f80fd5b5051919050565b5f60208284031215610ef6575f80fd5b815163ffffffff81168114610e75575f80fd5b634e487b7160e01b5f52600160045260245ffd5b5f60208284031215610f2d575f80fd5b815160ff81168114610e75575f80fd5b5f60208284031215610f4d575f80fd5b81518015158114610e75575f80fd5b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610f8457607f821691505b602082108103610fa257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610fef57805f5260205f20601f840160051c81016020851015610fcd5750805b601f840160051c820191505b81811015610fec575f8155600101610fd9565b50505b505050565b81516001600160401b0381111561100d5761100d610f5c565b6110218161101b8454610f70565b84610fa8565b6020601f821160018114611053575f831561103c5750848201515b5f19600385901b1c1916600184901b178455610fec565b5f84815260208120601f198516915b828110156110825787850151825560209485019460019092019101611062565b508482101561109f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156110be575f80fd5b815160ff1981168114610e75575f80fd5b61426e806110dc5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c8063828227de11610135578063bf7e214f116100b4578063eb98e8a011610079578063eb98e8a01461074f578063f48016ce14610782578063fb14543214610795578063fb39549c146107c0578063ff86054d146107d3575f80fd5b8063bf7e214f146106a9578063d7537c37146106b9578063dfb7e337146106cc578063e067350f14610711578063e9e96c701461073c575f80fd5b8063a5961b4c116100fa578063a5961b4c14610562578063a8989675146105ee578063b04fa50614610601578063beba11201461066b578063bf1db3f914610696575f80fd5b8063828227de1461048b5780638eaa6ac0146104ce5780638fb36037146104ee57806391a2059f1461050f5780639a7263641461054f575f80fd5b80634b51da0c116101c15780636291423a116101865780636291423a146103e6578063717f1b98146103f757806377f91851146104225780637a9e5e4b146104355780637b21556114610448575f80fd5b80634b51da0c146103685780634f9c1c091461037b57806354f6127f1461038e5780635cce3fa1146103ae57806362841be2146103d3575f80fd5b806330f441991161020757806330f44199146102f95780633861317f1461030c57806338a699a41461031f5780633fbdfe32146103425780634a2101d114610355575f80fd5b806309648a9d146102435780630d35818114610281578063136cfef7146102a65780631807a488146102d15780632df8be9b146102e6575b5f80fd5b61026a610251366004613a07565b5f90815260036020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61026a61028f366004613a2f565b60ff9081165f908152600160205260409020541690565b6102b96102b4366004613a5e565b61084d565b6040516001600160601b039091168152602001610278565b6102e46102df366004613abb565b610934565b005b6102e46102f4366004613abb565b610a2d565b6102e4610307366004613b52565b610a40565b6102e461031a366004613b52565b610be5565b61033261032d366004613a07565b610cee565b6040519015158152602001610278565b6102b9610350366004613b52565b610d7c565b6102e4610363366004613b52565b610f00565b6102e4610376366004613b9a565b610fdc565b610332610389366004613c0c565b611087565b6103a161039c366004613a07565b61111f565b6040516102789190613c55565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610278565b6102e46103e1366004613b9a565b6111c1565b6006546001600160a01b03166103bb565b6102b9610405366004613c0c565b6001600160601b039081165f908152600960205260409020541690565b6102b9610430366004613c7d565b611285565b6102e4610443366004613ccb565b6114e1565b61047d610456366004613ce4565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205490565b604051908152602001610278565b6104b9610499366004613c0c565b6001600160601b03165f908152600c602052604090205463ffffffff1690565b60405163ffffffff9091168152602001610278565b6104e16104dc366004613a07565b611555565b6040516102789190613d0e565b6104f6611676565b6040516001600160e01b03199091168152602001610278565b6102b961051d366004613d74565b6001600160601b039182165f908152600d602090815260408083206001600160a01b0394909416835292905220541690565b6102e461055d366004613d9e565b61169a565b6105e1610570366004613a07565b60408051608080820183525f8083526020808401829052838501829052606093840182905294815260038552839020835191820184525460ff80821683526101008204169482019490945263ffffffff620100008504811693820193909352600160301b9093049091169082015290565b6040516102789190613dd1565b6102e46105fc366004613e12565b6116c8565b61065b61060f366004613c0c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600a845282852054600c90945291909320549284169490841693919091169163ffffffff1690565b6040516102789493929190613e4f565b6102b9610679366004613c0c565b6001600160601b039081165f908152600f60205260409020541690565b6103326106a4366004613a2f565b6117d3565b5f546001600160a01b03166103bb565b6102b96106c7366004613a5e565b61181f565b6106fb6106da366004613c0c565b6001600160601b03165f908152600b602052604090205464ffffffffff1690565b60405164ffffffffff9091168152602001610278565b6102b961071f366004613c0c565b6001600160601b039081165f908152600a60205260409020541690565b61033261074a366004613e12565b6118a0565b61076261075d366004613e7e565b6118d3565b604080516001600160601b03938416815292909116602083015201610278565b61047d610790366004613ecb565b611b75565b6102b96107a3366004613c0c565b6001600160601b039081165f908152600860205260409020541690565b6102b96107ce366004613c7d565b611bf5565b6108206107e1366004613c0c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600b9093529220549183169392169164ffffffffff90911690565b604080516001600160601b03948516815293909216602084015264ffffffffff1690820152606001610278565b5f61085a335b5f36611f13565b6001600160601b038084165f908152600a60205260409020541661087e8382612009565b156108bc576040516301a4b29960e11b81526001600160601b0380861660048301528085166024830152821660448201526064015b60405180910390fd5b6001600160601b038085165f908152600a60205260409020546108e091168461208d565b91505f6108ed8584612112565b90507fd3383e52279373b5cfb83f1b6d4bd83e415313626f418a63a24251420d4b96df858585846040516109249493929190613e4f565b60405180910390a1505092915050565b61093d33610853565b610a2973__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038516601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156109b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d49190613ef7565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0015b604051602081830303815290604052610a2460ff90565b6122b2565b5050565b610a3633610853565b610a298282612421565b610a4933610853565b5f610a53846125fd565b6001600160601b038086165f9081526008602090815260408083205460099092529091205492935081169116610b0686610a96610a9085856126bf565b876126bf565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190613f0e565b612709565b6001600160601b038086165f90815260086020526040902054610b5d918791610b3491610a909116856126bf565b6001600160601b038089165f90815260096020526040902054610b5891168561208d565b61289f565b6001600160601b038681165f8181526008602090815260409182902054825193845286851691840191909152848416918301919091528683166060830152909116608082015263ffffffff841660a08201527ff3a6a30356c886f04fc20380e987b6e55a1e83a7926e1a21ee6001faced599c99060c0015b60405180910390a1505050505050565b610bee33610853565b5f610bf8846125fd565b6001600160601b038086165f90815260086020526040902054919250610c44918691610c259116856126bf565b6001600160601b038088165f9081526009602052604090205416612709565b6001600160601b038084165f90815260086020526040902054610c8d918591610c6e9116856126bf565b6001600160601b038087165f908152600960205260409020541661289f565b6001600160601b038085165f90815260086020526040908190205490517fa206257df4168139cff2e8dea9c50f2226429e81d904d5ee2b14e4f4656f30f592610ce0928892879291909116908690613e4f565b60405180910390a150505050565b5f8181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015610d52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d769190613f38565b92915050565b5f610d8633610853565b5f610d90856125fd565b6001600160601b038681165f9081526009602052604090819020549051637931c81160e01b815286831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015610e03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e279190613f0e565b6001600160601b038087165f90815260086020908152604080832054600990925290912054929450610e6492889291821691610b0191168661208d565b6001600160601b038085165f90815260086020908152604080832054600990925290912054610e9d928792811691610b5891168661208d565b6001600160601b038086165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92610ef0928992879291909116908690613e4f565b60405180910390a1509392505050565b610f0933610853565b5f610f13846125fd565b6001600160601b038086165f90815260086020908152604080832054600990925290912054929350610f5092879291821691610b019116866126bf565b6001600160601b038084165f90815260086020908152604080832054600990925290912054610f89928692811691610b589116866126bf565b6001600160601b038085165f90815260096020526040908190205490517f9824c1941460e3f3dca0007309b88a95f4fb73bd9628ee7ad0a528b100983c7992610ce0928892879291909116908690613e4f565b610fe533610853565b60408051630711349960e31b81526001600160601b03841660048201526020602482018190529151610a299273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af415801561104b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106f9190613ef7565b60408051845164ffffffffff16602082015201610a0d565b5f610d7673__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660206040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156110fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032d9190613ef7565b5f81815260036020526040902060010180546060919061113e90613f51565b80601f016020809104026020016040519081016040528092919081815260200182805461116a90613f51565b80156111b55780601f1061118c576101008083540402835291602001916111b5565b820191905f5260205f20905b81548152906001019060200180831161119857829003601f168201915b50505050509050919050565b6111ca33610853565b60408051630711349960e31b81526001600160601b0384166004820152602060248201819052915161127c9273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af4158015611230573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190613ef7565b60408051845164ffffffffff166020820152015b60405160208183030381529060405261292f565b610a2982612cea565b5f61128f33610853565b5f805f61129c8887613050565b9250925092506112ac82866126bf565b604051632c34efe560e11b81526001600160601b0382166004820152602481018990529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af415801561130e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113329190613f0e565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f905220549192506113b4916113ae91168461208d565b826126bf565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611441573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114659190613f9a565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517f4bd4ee2e64e523eeed623045709eb9e7828b3b191c978feb362e5b600c7d4dd9906114cd908b908a908a908a908a90613fb5565b60405180910390a150505050949350505050565b5f5433906001600160a01b031681146115175760405162d1953b60e31b81526001600160a01b03821660048201526024016108b3565b816001600160a01b03163b5f0361154c576040516361798f2f60e11b81526001600160a01b03831660048201526024016108b3565b610a2982613160565b6040805160c0810182525f91810182815260608083018490526080830184905260a0830193909352815260208101919091525f82815260036020908152604091829020825160c081018452815460ff808216958301958652610100820416606083015263ffffffff62010000820481166080840152600160301b9091041660a082015292835260018101805491928401916115ef90613f51565b80601f016020809104026020016040519081016040528092919081815260200182805461161b90613f51565b80156116665780601f1061163d57610100808354040283529160200191611666565b820191905f5260205f20905b81548152906001019060200180831161164957829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661168c57505f90565b638fb3603760e01b5b905090565b6116a333610853565b5f9283526007602090815260408085206001600160a01b039094168552929052912055565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561172a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174e9190613f38565b15611771576040516321b9f44760e01b815260ff841660048201526024016108b3565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054166117ce57604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016108b3565b505050565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401610d37565b5f61182933610853565b6001600160601b038084165f908152600a602052604090205461184d9116836126bf565b90505f61185a8483612112565b90507f15ce01bb869f4f5440b921c09a1c73e043269a1e29f44d11a7a899ed51fa67b8848484846040516118919493929190613e4f565b60405180910390a15092915050565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054165b9392505050565b5f806118de33610853565b5f6118e8876125fd565b6001600160601b038881165f9081526008602052604090819020549051637931c81160e01b815288831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561195b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197f9190613f0e565b6001600160601b038881165f9081526009602052604090819020549051637931c81160e01b815287831660048201529116602482015290935073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156119f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a169190613f0e565b6001600160601b038089165f90815260086020526040902054919350611a67918991611a4391168661208d565b6001600160601b03808b165f90815260096020526040902054610b0191168661208d565b6001600160601b038087165f90815260086020526040902054611ab5918891611a9191168661208d565b6001600160601b03808a165f90815260096020526040902054610b5891168661208d565b6001600160601b038088165f90815260086020526040908190205490517f4d67c2532a3443dbc1612538256c1fb6566afcd9729bf99254b26aef3b953cdd92611b08928b92889291909116908690613e4f565b60405180910390a16001600160601b038088165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92611b63928b92879291909116908690613e4f565b60405180910390a15094509492505050565b604051637a400b6760e11b815260ff8316600482015260ff19821660248201525f9073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af4158015611bd1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613ef7565b5f611bff33610853565b5f805f611c0c8887613050565b925092509250611c1c828661208d565b6040516355205f0f60e01b81526001600160601b03821660048201529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690611cae908b9084906355205f0f90602401602060405180830381865af4158015611c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca99190613ef7565b6131b3565b604051632255341b60e11b8152600481019190915273__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401602060405180830381865af4158015611cfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d219190613ef7565b6040518263ffffffff1660e01b8152600401611d3f91815260200190565b602060405180830381865af4158015611d5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7e9190613f0e565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f90522054919250611dfa916113ae91168461208d565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab9190613f9a565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517ff9be485b3e2a5d1dc6dadfab8a9962c32cc55ac95a026b980452f8b138723789906114cd908b908a908a908a908a90613fb5565b5f80611f46611f295f546001600160a01b031690565b8630611f3860045f898b613ff6565b611f419161401d565b6131c7565b91509150816120025763ffffffff811615611fdf575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611fa090889088908890600401614055565b5f604051808303815f87803b158015611fb7575f80fd5b505af1158015611fc9573d5f803e3d5ffd5b50505f805460ff60a01b19169055506120029050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016108b3565b5050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401602060405180830381865af4158015612069573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613f38565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa22906044015b602060405180830381865af41580156120ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613f0e565b6001600160601b0382165f908152600c602052604080822054905163010bd26b60e61b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af415801561217e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121a29190613f38565b156121cb576040516364692acf60e01b81526001600160601b03841660048201526024016108b3565b506001600160601b038281165f908152600c6020908152604080832054600a83529281902080546001600160601b03191694861694909417909355825163e8b7afe360e01b8152925163ffffffff9092169273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe3926004808401939192918290030181865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190613f9a565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555090565b5f6122bd84836132cf565b5f8581526003602052604090209091506001016122da84826140d8565b50604051634b00e98f60e11b8152600481018590527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561234b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236f9190614193565b604051630713cfad60e31b81526004810187905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af41580156123bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123e191906141ae565b6040805160ff938416815260ff1990921660208301529185169181019190915233606082015232608082015263ffffffff831660a082015260c001610ce0565b6124f573__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038516601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015612494573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b89190613ef7565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a001611268565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af415801561253c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125609190613f9a565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff92909216919091179055612598826135ca565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b1580156125e3575f80fd5b505af11580156125f5573d5f803e3d5ffd5b505050505050565b6001600160601b0381165f908152600c60205260409081902054905163010bd26b60e61b815263ffffffff909116600482018190529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af415801561266d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126919190613f38565b156126ba57604051631f7e16df60e01b81526001600160601b03831660048201526024016108b3565b919050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044016120d3565b6001600160601b038381165f90815260086020908152604080832080546001600160601b031990811688871617909155600983529281902080549093169385169390931790915581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015612799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bd91906141c9565b600b5f856001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061286a9190613f9a565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555050565b6001600160601b038381165f90815260086020908152604080832080546001600160601b0319908116888716179091556009835292819020805490931693851693909317909155815163e8b7afe360e01b8152915173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe39260048083019391928290030181865af4158015612846573d5f803e3d5ffd5b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561297f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a39190614193565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156129f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1a9190613f38565b15612a3d576040516307014a8d60e51b815260ff821660048201526024016108b3565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015612aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac79190613f38565b15612af157604051633f92eac960e21b81526004810185905260ff831660248201526044016108b3565b612afa826117d3565b612b1c57604051636cb0978b60e11b815260ff831660048201526024016108b3565b5f612b256138de565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021769ffffffffffffffff000019166201000063ffffffff851690810269ffffffff000000000000191691909117600160301b919091021784555f878152600360205260409020909150600101612baf86826140d8565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af4158015612c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c449190614193565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cb691906141ae565b6040805160ff938416815260ff1990921660208301529184169181019190915233606082015232608082015260a001610bd5565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015612d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7b9190613f38565b15612da4576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612deb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0f9190613f0e565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ec09190613f0e565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f7191906141c9565b600b5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ffa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301e9190613f9a565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b6001600160601b0382165f9081526010602052604080822054905163010bd26b60e61b815263ffffffff909116600482018190529190819073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156130c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e69190613f38565b1561310f576040516362540e0360e11b81526001600160601b03861660048201526024016108b3565b50506001600160601b039283165f818152600d602090815260408083206001600160a01b0390961680845295825280832054938352600e825280832095835294905292909220549093918316921690565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f6118cc8383670de0b6b3a764000061394a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161323591906141e4565b5f60405180830381855afa9150503d805f811461326d576040519150601f19603f3d011682016040523d82523d5f602084013e613272565b606091505b509150915081156132c45760408151106132a4578080602001905181019061329a91906141fa565b90945092506132c4565b60208151106132c457808060200190518101906132c19190613f38565b93505b505094509492505050565b60405163037c8cb160e51b815260ff821660048201525f9073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015613321573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133459190613f38565b156133665760405163093b89e160e11b8152600481018490526024016108b3565b505f82815260036020526040908190208054915163037c8cb160e51b8152610100830460ff16600482018190526201000090930463ffffffff16929073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af41580156133dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190613f38565b156134215760405163566ebf7960e01b8152600481018690526024016108b3565b60ff8085161461359c57815461343b9060ff1682866116c8565b815461ff00191661010060ff861602178255604051634b00e98f60e11b8152600481018690527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156134bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134e19190614193565b604051630713cfad60e31b81526004810188905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561352f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061355391906141ae565b6040805160ff938416815260ff1990921660208301528285169082015290861660608201523360808201523260a082015263ffffffff851660c082015260e00160405180910390a15b6135a46138de565b825463ffffffff91909116620100000265ffffffff000019909116179091555092915050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015613637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365b9190613f38565b15613684576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156136cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ef9190613f0e565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561377c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137a09190613f0e565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561382d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138519190613f0e565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ffa573d5f803e3d5ffd5b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613926573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116959190613f9a565b5f80805f19858709858702925082811083820303915050805f036139815783828161397757613977614224565b04925050506118cc565b8084116139a057604051629540d960e61b815260040160405180910390fd5b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215613a17575f80fd5b5035919050565b60ff81168114613a2c575f80fd5b50565b5f60208284031215613a3f575f80fd5b81356118cc81613a1e565b6001600160601b0381168114613a2c575f80fd5b5f8060408385031215613a6f575f80fd5b8235613a7a81613a4a565b91506020830135613a8a81613a4a565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b64ffffffffff81168114613a2c575f80fd5b5f8082840360a0811215613acd575f80fd5b8335613ad881613a4a565b92506080601f1982011215613aeb575f80fd5b506040516080810167ffffffffffffffff81118282101715613b0f57613b0f613a95565b6040526020840135613b2081613a1e565b8152604084013560208201526060840135613b3a81613aa9565b60408201526080939093013560608401525092909150565b5f805f60608486031215613b64575f80fd5b8335613b6f81613a4a565b92506020840135613b7f81613a4a565b91506040840135613b8f81613a4a565b809150509250925092565b5f808284036040811215613bac575f80fd5b8335613bb781613a4a565b92506020601f1982011215613bca575f80fd5b506040516020810167ffffffffffffffff81118282101715613bee57613bee613a95565b6040526020840135613bff81613aa9565b8152919491935090915050565b5f60208284031215613c1c575f80fd5b81356118cc81613a4a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6118cc6020830184613c27565b80356001600160a01b03811681146126ba575f80fd5b5f805f8060808587031215613c90575f80fd5b8435613c9b81613a4a565b935060208501359250613cb060408601613c67565b91506060850135613cc081613a4a565b939692955090935050565b5f60208284031215613cdb575f80fd5b6118cc82613c67565b5f8060408385031215613cf5575f80fd5b82359150613d0560208401613c67565b90509250929050565b60208152613d5360208201835160ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f602083015160a080840152613d6c60c0840182613c27565b949350505050565b5f8060408385031215613d85575f80fd5b8235613d9081613a4a565b9150613d0560208401613c67565b5f805f60608486031215613db0575f80fd5b83359250613dc060208501613c67565b929592945050506040919091013590565b60808101610d76828460ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f805f60608486031215613e24575f80fd5b8335613e2f81613a1e565b92506020840135613e3f81613a1e565b91506040840135613b8f81613a1e565b6001600160601b03948516815292841660208401529216604082015263ffffffff909116606082015260800190565b5f805f8060808587031215613e91575f80fd5b8435613e9c81613a4a565b93506020850135613eac81613a4a565b92506040850135613cb081613a4a565b60ff1981168114613a2c575f80fd5b5f8060408385031215613edc575f80fd5b8235613ee781613a1e565b91506020830135613a8a81613ebc565b5f60208284031215613f07575f80fd5b5051919050565b5f60208284031215613f1e575f80fd5b81516118cc81613a4a565b805180151581146126ba575f80fd5b5f60208284031215613f48575f80fd5b6118cc82613f29565b600181811c90821680613f6557607f821691505b602082108103613f8357634e487b7160e01b5f52602260045260245ffd5b50919050565b63ffffffff81168114613a2c575f80fd5b5f60208284031215613faa575f80fd5b81516118cc81613f89565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015263ffffffff909116608082015260a00190565b5f8085851115614004575f80fd5b83861115614010575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561404e576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f8211156117ce57805f5260205f20601f840160051c810160208510156140b95750805b601f840160051c820191505b81811015612002575f81556001016140c5565b815167ffffffffffffffff8111156140f2576140f2613a95565b614106816141008454613f51565b84614094565b6020601f821160018114614138575f83156141215750848201515b5f19600385901b1c1916600184901b178455612002565b5f84815260208120601f198516915b828110156141675787850151825560209485019460019092019101614147565b508482101561418457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156141a3575f80fd5b81516118cc81613a1e565b5f602082840312156141be575f80fd5b81516118cc81613ebc565b5f602082840312156141d9575f80fd5b81516118cc81613aa9565b5f82518060208501845e5f920191825250919050565b5f806040838503121561420b575f80fd5b61421483613f29565b91506020830151613a8a81613f89565b634e487b7160e01b5f52601260045260245ffdfea264697066735822122047223144a17d89fdc61109889f54fed83720cb69e4f9ddb6145b4a28a749ecd164736f6c634300081a00336080604052348015600e575f80fd5b50600480546001600160a01b0319163317905561071e8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c80638de1d14e116100635780638de1d14e1461010f578063954a317214610122578063996f8d9114610135578063ddfe867f1461014b578063f2b2978114610153575f80fd5b8063042f9da3146100945780634f9c1c09146100a9578063706e9ba9146100d1578063777d1857146100fc575b5f80fd5b6100a76100a2366004610627565b610166565b005b6100bc6100b736600461065e565b610221565b60405190151581526020015b60405180910390f35b6100e46100df366004610680565b6102ab565b6040516001600160601b0390911681526020016100c8565b6100bc61010a36600461065e565b610327565b6100a761011d36600461065e565b610370565b6100a7610130366004610627565b610491565b61013d61051b565b6040519081526020016100c8565b61013d610595565b6100e4610161366004610680565b6105cf565b6004546001600160a01b031633146101ae5760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044015b60405180910390fd5b604051631461054360e31b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015b5f6040518083038186803b158015610207575f80fd5b505af4158015610219573d5f803e3d5ffd5b505050505050565b604051632bfdd6b960e01b81525f600482018190526001600160601b03831660248301529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b9906044015b602060405180830381865af4158015610281573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a59190610697565b92915050565b60405163e797d89960e01b81525f60048201819052602482018390529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044015b602060405180830381865af4158015610303573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a591906106b6565b604051632bfdd6b960e01b8152600260048201526001600160601b03821660248201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b990604401610266565b6004546001600160a01b031633146103b35760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b604051631461054360e31b81525f60048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015f6040518083038186803b15801561040a575f80fd5b505af415801561041c573d5f803e3d5ffd5b5050604051631461054360e31b8152600260048201526001600160601b038416602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__925063a3082a1891506044015f6040518083038186803b158015610478575f80fd5b505af415801561048a573d5f803e3d5ffd5b5050505050565b6004546001600160a01b031633146104d45760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b60405163539eabab60e11b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a73d5756906044016101f1565b604051638b6233dd60e01b8152600260048201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd906024015b602060405180830381865af415801561056c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059091906106d1565b905090565b604051638b6233dd60e01b81525f600482018190529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd90602401610551565b60405163e797d89960e01b815260026004820152602481018290525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044016102e8565b6001600160601b0381168114610624575f80fd5b50565b5f8060408385031215610638575f80fd5b823561064381610610565b9150602083013561065381610610565b809150509250929050565b5f6020828403121561066e575f80fd5b813561067981610610565b9392505050565b5f60208284031215610690575f80fd5b5035919050565b5f602082840312156106a7575f80fd5b81518015158114610679575f80fd5b5f602082840312156106c6575f80fd5b815161067981610610565b5f602082840312156106e1575f80fd5b505191905056fea2646970667358221220e8bc5ac500c1408e0c0f00e06268f51ab5040a53dc7c97afd725ebecb8bafae164736f6c634300081a0033",
         | 
| 1649 | 
            -
              "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c8063828227de11610135578063bf7e214f116100b4578063eb98e8a011610079578063eb98e8a01461074f578063f48016ce14610782578063fb14543214610795578063fb39549c146107c0578063ff86054d146107d3575f80fd5b8063bf7e214f146106a9578063d7537c37146106b9578063dfb7e337146106cc578063e067350f14610711578063e9e96c701461073c575f80fd5b8063a5961b4c116100fa578063a5961b4c14610562578063a8989675146105ee578063b04fa50614610601578063beba11201461066b578063bf1db3f914610696575f80fd5b8063828227de1461048b5780638eaa6ac0146104ce5780638fb36037146104ee57806391a2059f1461050f5780639a7263641461054f575f80fd5b80634b51da0c116101c15780636291423a116101865780636291423a146103e6578063717f1b98146103f757806377f91851146104225780637a9e5e4b146104355780637b21556114610448575f80fd5b80634b51da0c146103685780634f9c1c091461037b57806354f6127f1461038e5780635cce3fa1146103ae57806362841be2146103d3575f80fd5b806330f441991161020757806330f44199146102f95780633861317f1461030c57806338a699a41461031f5780633fbdfe32146103425780634a2101d114610355575f80fd5b806309648a9d146102435780630d35818114610281578063136cfef7146102a65780631807a488146102d15780632df8be9b146102e6575b5f80fd5b61026a610251366004613a07565b5f90815260036020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b61026a61028f366004613a2f565b60ff9081165f908152600160205260409020541690565b6102b96102b4366004613a5e565b61084d565b6040516001600160601b039091168152602001610278565b6102e46102df366004613abb565b610934565b005b6102e46102f4366004613abb565b610a2d565b6102e4610307366004613b52565b610a40565b6102e461031a366004613b52565b610be5565b61033261032d366004613a07565b610cee565b6040519015158152602001610278565b6102b9610350366004613b52565b610d7c565b6102e4610363366004613b52565b610f00565b6102e4610376366004613b9a565b610fdc565b610332610389366004613c0c565b611087565b6103a161039c366004613a07565b61111f565b6040516102789190613c55565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610278565b6102e46103e1366004613b9a565b6111c1565b6006546001600160a01b03166103bb565b6102b9610405366004613c0c565b6001600160601b039081165f908152600960205260409020541690565b6102b9610430366004613c7d565b611285565b6102e4610443366004613ccb565b6114e1565b61047d610456366004613ce4565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205490565b604051908152602001610278565b6104b9610499366004613c0c565b6001600160601b03165f908152600c602052604090205463ffffffff1690565b60405163ffffffff9091168152602001610278565b6104e16104dc366004613a07565b611555565b6040516102789190613d0e565b6104f6611676565b6040516001600160e01b03199091168152602001610278565b6102b961051d366004613d74565b6001600160601b039182165f908152600d602090815260408083206001600160a01b0394909416835292905220541690565b6102e461055d366004613d9e565b61169a565b6105e1610570366004613a07565b60408051608080820183525f8083526020808401829052838501829052606093840182905294815260038552839020835191820184525460ff80821683526101008204169482019490945263ffffffff620100008504811693820193909352600160301b9093049091169082015290565b6040516102789190613dd1565b6102e46105fc366004613e12565b6116c8565b61065b61060f366004613c0c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600a845282852054600c90945291909320549284169490841693919091169163ffffffff1690565b6040516102789493929190613e4f565b6102b9610679366004613c0c565b6001600160601b039081165f908152600f60205260409020541690565b6103326106a4366004613a2f565b6117d3565b5f546001600160a01b03166103bb565b6102b96106c7366004613a5e565b61181f565b6106fb6106da366004613c0c565b6001600160601b03165f908152600b602052604090205464ffffffffff1690565b60405164ffffffffff9091168152602001610278565b6102b961071f366004613c0c565b6001600160601b039081165f908152600a60205260409020541690565b61033261074a366004613e12565b6118a0565b61076261075d366004613e7e565b6118d3565b604080516001600160601b03938416815292909116602083015201610278565b61047d610790366004613ecb565b611b75565b6102b96107a3366004613c0c565b6001600160601b039081165f908152600860205260409020541690565b6102b96107ce366004613c7d565b611bf5565b6108206107e1366004613c0c565b6001600160601b039081165f908152600860209081526040808320546009835281842054600b9093529220549183169392169164ffffffffff90911690565b604080516001600160601b03948516815293909216602084015264ffffffffff1690820152606001610278565b5f61085a335b5f36611f13565b6001600160601b038084165f908152600a60205260409020541661087e8382612009565b156108bc576040516301a4b29960e11b81526001600160601b0380861660048301528085166024830152821660448201526064015b60405180910390fd5b6001600160601b038085165f908152600a60205260409020546108e091168461208d565b91505f6108ed8584612112565b90507fd3383e52279373b5cfb83f1b6d4bd83e415313626f418a63a24251420d4b96df858585846040516109249493929190613e4f565b60405180910390a1505092915050565b61093d33610853565b610a2973__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038516601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156109b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d49190613ef7565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a0015b604051602081830303815290604052610a2460ff90565b6122b2565b5050565b610a3633610853565b610a298282612421565b610a4933610853565b5f610a53846125fd565b6001600160601b038086165f9081526008602090815260408083205460099092529091205492935081169116610b0686610a96610a9085856126bf565b876126bf565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190613f0e565b612709565b6001600160601b038086165f90815260086020526040902054610b5d918791610b3491610a909116856126bf565b6001600160601b038089165f90815260096020526040902054610b5891168561208d565b61289f565b6001600160601b038681165f8181526008602090815260409182902054825193845286851691840191909152848416918301919091528683166060830152909116608082015263ffffffff841660a08201527ff3a6a30356c886f04fc20380e987b6e55a1e83a7926e1a21ee6001faced599c99060c0015b60405180910390a1505050505050565b610bee33610853565b5f610bf8846125fd565b6001600160601b038086165f90815260086020526040902054919250610c44918691610c259116856126bf565b6001600160601b038088165f9081526009602052604090205416612709565b6001600160601b038084165f90815260086020526040902054610c8d918591610c6e9116856126bf565b6001600160601b038087165f908152600960205260409020541661289f565b6001600160601b038085165f90815260086020526040908190205490517fa206257df4168139cff2e8dea9c50f2226429e81d904d5ee2b14e4f4656f30f592610ce0928892879291909116908690613e4f565b60405180910390a150505050565b5f8181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf906024015b602060405180830381865af4158015610d52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d769190613f38565b92915050565b5f610d8633610853565b5f610d90856125fd565b6001600160601b038681165f9081526009602052604090819020549051637931c81160e01b815286831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af4158015610e03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e279190613f0e565b6001600160601b038087165f90815260086020908152604080832054600990925290912054929450610e6492889291821691610b0191168661208d565b6001600160601b038085165f90815260086020908152604080832054600990925290912054610e9d928792811691610b5891168661208d565b6001600160601b038086165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92610ef0928992879291909116908690613e4f565b60405180910390a1509392505050565b610f0933610853565b5f610f13846125fd565b6001600160601b038086165f90815260086020908152604080832054600990925290912054929350610f5092879291821691610b019116866126bf565b6001600160601b038084165f90815260086020908152604080832054600990925290912054610f89928692811691610b589116866126bf565b6001600160601b038085165f90815260096020526040908190205490517f9824c1941460e3f3dca0007309b88a95f4fb73bd9628ee7ad0a528b100983c7992610ce0928892879291909116908690613e4f565b610fe533610853565b60408051630711349960e31b81526001600160601b03841660048201526020602482018190529151610a299273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af415801561104b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106f9190613ef7565b60408051845164ffffffffff16602082015201610a0d565b5f610d7673__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b03851660206040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af41580156110fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032d9190613ef7565b5f81815260036020526040902060010180546060919061113e90613f51565b80601f016020809104026020016040519081016040528092919081815260200182805461116a90613f51565b80156111b55780601f1061118c576101008083540402835291602001916111b5565b820191905f5260205f20905b81548152906001019060200180831161119857829003601f168201915b50505050509050919050565b6111ca33610853565b60408051630711349960e31b81526001600160601b0384166004820152602060248201819052915161127c9273__$94a2c899be079b00d952d0d84fffaa5c34$__92633889a4c892604480830193928290030181865af4158015611230573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112549190613ef7565b60408051845164ffffffffff166020820152015b60405160208183030381529060405261292f565b610a2982612cea565b5f61128f33610853565b5f805f61129c8887613050565b9250925092506112ac82866126bf565b604051632c34efe560e11b81526001600160601b0382166004820152602481018990529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af415801561130e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113329190613f0e565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f905220549192506113b4916113ae91168461208d565b826126bf565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611441573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114659190613f9a565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517f4bd4ee2e64e523eeed623045709eb9e7828b3b191c978feb362e5b600c7d4dd9906114cd908b908a908a908a908a90613fb5565b60405180910390a150505050949350505050565b5f5433906001600160a01b031681146115175760405162d1953b60e31b81526001600160a01b03821660048201526024016108b3565b816001600160a01b03163b5f0361154c576040516361798f2f60e11b81526001600160a01b03831660048201526024016108b3565b610a2982613160565b6040805160c0810182525f91810182815260608083018490526080830184905260a0830193909352815260208101919091525f82815260036020908152604091829020825160c081018452815460ff808216958301958652610100820416606083015263ffffffff62010000820481166080840152600160301b9091041660a082015292835260018101805491928401916115ef90613f51565b80601f016020809104026020016040519081016040528092919081815260200182805461161b90613f51565b80156116665780601f1061163d57610100808354040283529160200191611666565b820191905f5260205f20905b81548152906001019060200180831161164957829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661168c57505f90565b638fb3603760e01b5b905090565b6116a333610853565b5f9283526007602090815260408085206001600160a01b039094168552929052912055565b60ff8381165f908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af415801561172a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061174e9190613f38565b15611771576040516321b9f44760e01b815260ff841660048201526024016108b3565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054166117ce57604051636bb20ea760e01b815260ff80851660048301528084166024830152821660448201526064016108b3565b505050565b60ff8181165f9081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401610d37565b5f61182933610853565b6001600160601b038084165f908152600a602052604090205461184d9116836126bf565b90505f61185a8483612112565b90507f15ce01bb869f4f5440b921c09a1c73e043269a1e29f44d11a7a899ed51fa67b8848484846040516118919493929190613e4f565b60405180910390a15092915050565b60ff8084165f908152600260209081526040808320868516845282528083208585168452909152902054165b9392505050565b5f806118de33610853565b5f6118e8876125fd565b6001600160601b038881165f9081526008602052604090819020549051637931c81160e01b815288831660048201529116602482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561195b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197f9190613f0e565b6001600160601b038881165f9081526009602052604090819020549051637931c81160e01b815287831660048201529116602482015290935073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156119f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a169190613f0e565b6001600160601b038089165f90815260086020526040902054919350611a67918991611a4391168661208d565b6001600160601b03808b165f90815260096020526040902054610b0191168661208d565b6001600160601b038087165f90815260086020526040902054611ab5918891611a9191168661208d565b6001600160601b03808a165f90815260096020526040902054610b5891168661208d565b6001600160601b038088165f90815260086020526040908190205490517f4d67c2532a3443dbc1612538256c1fb6566afcd9729bf99254b26aef3b953cdd92611b08928b92889291909116908690613e4f565b60405180910390a16001600160601b038088165f90815260096020526040908190205490517f18d78bbaea8f24a2aaa409f9f507204233a315575899fe3a802e20f15e81f5ef92611b63928b92879291909116908690613e4f565b60405180910390a15094509492505050565b604051637a400b6760e11b815260ff8316600482015260ff19821660248201525f9073__$4b9aaffa8d044614668dad578b824b8eee$__9063f48016ce90604401602060405180830381865af4158015611bd1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613ef7565b5f611bff33610853565b5f805f611c0c8887613050565b925092509250611c1c828661208d565b6040516355205f0f60e01b81526001600160601b03821660048201529094505f9073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690611cae908b9084906355205f0f90602401602060405180830381865af4158015611c85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca99190613ef7565b6131b3565b604051632255341b60e11b8152600481019190915273__$bf7bc340cbb9229ef1de2c568356e67902$__906344aa683690602401602060405180830381865af4158015611cfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d219190613ef7565b6040518263ffffffff1660e01b8152600401611d3f91815260200190565b602060405180830381865af4158015611d5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7e9190613f0e565b6001600160601b038a81165f818152600d602090815260408083206001600160a01b038e1680855290835281842080546001600160601b03199081168e891617909155858552600e84528285209185529083528184208054909116878716179055928252600f90522054919250611dfa916113ae91168461208d565b600f5f8b6001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab9190613f9a565b6001600160601b038a165f9081526010602052604090819020805463ffffffff191663ffffffff9390931692909217909155517ff9be485b3e2a5d1dc6dadfab8a9962c32cc55ac95a026b980452f8b138723789906114cd908b908a908a908a908a90613fb5565b5f80611f46611f295f546001600160a01b031690565b8630611f3860045f898b613ff6565b611f419161401d565b6131c7565b91509150816120025763ffffffff811615611fdf575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90611fa090889088908890600401614055565b5f604051808303815f87803b158015611fb7575f80fd5b505af1158015611fc9573d5f803e3d5ffd5b50505f805460ff60a01b19169055506120029050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016108b3565b5050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401602060405180830381865af4158015612069573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613f38565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa22906044015b602060405180830381865af41580156120ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cc9190613f0e565b6001600160601b0382165f908152600c602052604080822054905163010bd26b60e61b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af415801561217e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121a29190613f38565b156121cb576040516364692acf60e01b81526001600160601b03841660048201526024016108b3565b506001600160601b038281165f908152600c6020908152604080832054600a83529281902080546001600160601b03191694861694909417909355825163e8b7afe360e01b8152925163ffffffff9092169273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe3926004808401939192918290030181865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190613f9a565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555090565b5f6122bd84836132cf565b5f8581526003602052604090209091506001016122da84826140d8565b50604051634b00e98f60e11b8152600481018590527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561234b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236f9190614193565b604051630713cfad60e31b81526004810187905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af41580156123bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123e191906141ae565b6040805160ff938416815260ff1990921660208301529185169181019190915233606082015232608082015263ffffffff831660a082015260c001610ce0565b6124f573__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038516601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af4158015612494573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b89190613ef7565b60408051845160ff16602080830191909152850151818301529084015164ffffffffff16606080830191909152840151608082015260a001611268565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af415801561253c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125609190613f9a565b6001600160601b0383165f908152601060205260409020805463ffffffff191663ffffffff92909216919091179055612598826135ca565b6005546040516346f0e8a760e11b81526001600160601b03841660048201526001600160a01b0390911690638de1d14e906024015f604051808303815f87803b1580156125e3575f80fd5b505af11580156125f5573d5f803e3d5ffd5b505050505050565b6001600160601b0381165f908152600c60205260409081902054905163010bd26b60e61b815263ffffffff909116600482018190529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af415801561266d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126919190613f38565b156126ba57604051631f7e16df60e01b81526001600160601b03831660048201526024016108b3565b919050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044016120d3565b6001600160601b038381165f90815260086020908152604080832080546001600160601b031990811688871617909155600983529281902080549093169385169390931790915581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015612799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bd91906141c9565b600b5f856001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061286a9190613f9a565b6001600160601b03939093165f908152600c60205260409020805463ffffffff191663ffffffff909416939093179092555050565b6001600160601b038381165f90815260086020908152604080832080546001600160601b0319908116888716179091556009835292819020805490931693851693909317909155815163e8b7afe360e01b8152915173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9263e8b7afe39260048083019391928290030181865af4158015612846573d5f803e3d5ffd5b604051634b00e98f60e11b8152600481018390525f9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af415801561297f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a39190614193565b60405163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156129f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1a9190613f38565b15612a3d576040516307014a8d60e51b815260ff821660048201526024016108b3565b5f83815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301529073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__9063b2466acf90602401602060405180830381865af4158015612aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac79190613f38565b15612af157604051633f92eac960e21b81526004810185905260ff831660248201526044016108b3565b612afa826117d3565b612b1c57604051636cb0978b60e11b815260ff831660048201526024016108b3565b5f612b256138de565b60ff8085165f908152600160205260408120549293509116835460ff86811661ffff1990921691909117610100918316919091021769ffffffffffffffff000019166201000063ffffffff851690810269ffffffff000000000000191691909117600160301b919091021784555f878152600360205260409020909150600101612baf86826140d8565b50604051634b00e98f60e11b8152600481018790527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af4158015612c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c449190614193565b604051630713cfad60e31b81526004810189905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af4158015612c92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cb691906141ae565b6040805160ff938416815260ff1990921660208301529184169181019190915233606082015232608082015260a001610bd5565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015612d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7b9190613f38565b15612da4576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612deb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0f9190613f0e565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612e9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ec09190613f0e565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f7191906141c9565b600b5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a81548164ffffffffff021916908364ffffffffff16021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ffa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301e9190613f9a565b6001600160601b03919091165f908152600c60205260409020805463ffffffff191663ffffffff909216919091179055565b6001600160601b0382165f9081526010602052604080822054905163010bd26b60e61b815263ffffffff909116600482018190529190819073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__906342f49ac090602401602060405180830381865af41580156130c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130e69190613f38565b1561310f576040516362540e0360e11b81526001600160601b03861660048201526024016108b3565b50506001600160601b039283165f818152600d602090815260408083206001600160a01b0390961680845295825280832054938352600e825280832095835294905292909220549093918316921690565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f6118cc8383670de0b6b3a764000061394a565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161323591906141e4565b5f60405180830381855afa9150503d805f811461326d576040519150601f19603f3d011682016040523d82523d5f602084013e613272565b606091505b509150915081156132c45760408151106132a4578080602001905181019061329a91906141fa565b90945092506132c4565b60208151106132c457808060200190518101906132c19190613f38565b93505b505094509492505050565b60405163037c8cb160e51b815260ff821660048201525f9073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af4158015613321573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133459190613f38565b156133665760405163093b89e160e11b8152600481018490526024016108b3565b505f82815260036020526040908190208054915163037c8cb160e51b8152610100830460ff16600482018190526201000090930463ffffffff16929073__$2e1fcf62e7a1b3c2a33bdf2228c171b2be$__90636f91962090602401602060405180830381865af41580156133dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190613f38565b156134215760405163566ebf7960e01b8152600481018690526024016108b3565b60ff8085161461359c57815461343b9060ff1682866116c8565b815461ff00191661010060ff861602178255604051634b00e98f60e11b8152600481018690527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$4b9aaffa8d044614668dad578b824b8eee$__90639601d31e90602401602060405180830381865af41580156134bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134e19190614193565b604051630713cfad60e31b81526004810188905273__$4b9aaffa8d044614668dad578b824b8eee$__9063389e7d6890602401602060405180830381865af415801561352f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061355391906141ae565b6040805160ff938416815260ff1990921660208301528285169082015290861660608201523360808201523260a082015263ffffffff851660c082015260e00160405180910390a15b6135a46138de565b825463ffffffff91909116620100000265ffffffff000019909116179091555092915050565b6001600160601b0381165f908152600c60205260409081902054905163d15b589360e01b815263ffffffff909116600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063d15b589390602401602060405180830381865af4158015613637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365b9190613f38565b15613684576040516366d785a360e11b81526001600160601b03821660048201526024016108b3565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156136cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ef9190613f0e565b60085f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561377c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137a09190613f0e565b60095f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561382d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138519190613f0e565b600a5f836001600160601b03166001600160601b031681526020019081526020015f205f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ffa573d5f803e3d5ffd5b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__63e8b7afe36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613926573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116959190613f9a565b5f80805f19858709858702925082811083820303915050805f036139815783828161397757613977614224565b04925050506118cc565b8084116139a057604051629540d960e61b815260040160405180910390fd5b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215613a17575f80fd5b5035919050565b60ff81168114613a2c575f80fd5b50565b5f60208284031215613a3f575f80fd5b81356118cc81613a1e565b6001600160601b0381168114613a2c575f80fd5b5f8060408385031215613a6f575f80fd5b8235613a7a81613a4a565b91506020830135613a8a81613a4a565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b64ffffffffff81168114613a2c575f80fd5b5f8082840360a0811215613acd575f80fd5b8335613ad881613a4a565b92506080601f1982011215613aeb575f80fd5b506040516080810167ffffffffffffffff81118282101715613b0f57613b0f613a95565b6040526020840135613b2081613a1e565b8152604084013560208201526060840135613b3a81613aa9565b60408201526080939093013560608401525092909150565b5f805f60608486031215613b64575f80fd5b8335613b6f81613a4a565b92506020840135613b7f81613a4a565b91506040840135613b8f81613a4a565b809150509250925092565b5f808284036040811215613bac575f80fd5b8335613bb781613a4a565b92506020601f1982011215613bca575f80fd5b506040516020810167ffffffffffffffff81118282101715613bee57613bee613a95565b6040526020840135613bff81613aa9565b8152919491935090915050565b5f60208284031215613c1c575f80fd5b81356118cc81613a4a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6118cc6020830184613c27565b80356001600160a01b03811681146126ba575f80fd5b5f805f8060808587031215613c90575f80fd5b8435613c9b81613a4a565b935060208501359250613cb060408601613c67565b91506060850135613cc081613a4a565b939692955090935050565b5f60208284031215613cdb575f80fd5b6118cc82613c67565b5f8060408385031215613cf5575f80fd5b82359150613d0560208401613c67565b90509250929050565b60208152613d5360208201835160ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f602083015160a080840152613d6c60c0840182613c27565b949350505050565b5f8060408385031215613d85575f80fd5b8235613d9081613a4a565b9150613d0560208401613c67565b5f805f60608486031215613db0575f80fd5b83359250613dc060208501613c67565b929592945050506040919091013590565b60808101610d76828460ff815116825260ff602082015116602083015263ffffffff604082015116604083015263ffffffff60608201511660608301525050565b5f805f60608486031215613e24575f80fd5b8335613e2f81613a1e565b92506020840135613e3f81613a1e565b91506040840135613b8f81613a1e565b6001600160601b03948516815292841660208401529216604082015263ffffffff909116606082015260800190565b5f805f8060808587031215613e91575f80fd5b8435613e9c81613a4a565b93506020850135613eac81613a4a565b92506040850135613cb081613a4a565b60ff1981168114613a2c575f80fd5b5f8060408385031215613edc575f80fd5b8235613ee781613a1e565b91506020830135613a8a81613ebc565b5f60208284031215613f07575f80fd5b5051919050565b5f60208284031215613f1e575f80fd5b81516118cc81613a4a565b805180151581146126ba575f80fd5b5f60208284031215613f48575f80fd5b6118cc82613f29565b600181811c90821680613f6557607f821691505b602082108103613f8357634e487b7160e01b5f52602260045260245ffd5b50919050565b63ffffffff81168114613a2c575f80fd5b5f60208284031215613faa575f80fd5b81516118cc81613f89565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015263ffffffff909116608082015260a00190565b5f8085851115614004575f80fd5b83861115614010575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561404e576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b601f8211156117ce57805f5260205f20601f840160051c810160208510156140b95750805b601f840160051c820191505b81811015612002575f81556001016140c5565b815167ffffffffffffffff8111156140f2576140f2613a95565b614106816141008454613f51565b84614094565b6020601f821160018114614138575f83156141215750848201515b5f19600385901b1c1916600184901b178455612002565b5f84815260208120601f198516915b828110156141675787850151825560209485019460019092019101614147565b508482101561418457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156141a3575f80fd5b81516118cc81613a1e565b5f602082840312156141be575f80fd5b81516118cc81613ebc565b5f602082840312156141d9575f80fd5b81516118cc81613aa9565b5f82518060208501845e5f920191825250919050565b5f806040838503121561420b575f80fd5b61421483613f29565b91506020830151613a8a81613f89565b634e487b7160e01b5f52601260045260245ffdfea264697066735822122047223144a17d89fdc61109889f54fed83720cb69e4f9ddb6145b4a28a749ecd164736f6c634300081a0033",
         | 
| 2223 | 
            +
              "bytecode": "0x608060405234801561000f575f80fd5b50604051617e47380380617e4783398101604081905261002e916116ae565b3361003881610126565b506100a1826001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610078573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061009c91906116e6565b610179565b600180546001600160a01b038085166001600160a01b03199283161790925560038054928416929091169190911790556040516100dd9061168a565b604051809103905ff0801580156100f6573d5f803e3d5ffd5b50600480546001600160a01b0319166001600160a01b039290921691909117905561011f6101f6565b50506117b2565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f5433906001600160a01b031681146101b45760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f036101e9576040516361798f2f60e11b81526001600160a01b03831660048201526024016101ab565b6101f282610126565b5050565b6104966001805f600173__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610246573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026a9190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156102b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d59190611715565b73__$71e292c09eace9601b3e21e68a1278917a$__634bd9351b6040518163ffffffff1660e01b8152600401602060405180830381865af415801561031c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103409190611742565b73__$71e292c09eace9601b3e21e68a1278917a$__63f27c3bf66040518163ffffffff1660e01b8152600401602060405180830381865af4158015610387573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ab9190611742565b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156103f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041691906116e6565b604051631488c84560e01b8152600f6004820152600119602482015273__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af415801561046d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049191906116e6565b61085f565b60405163efac97cf60e01b815261044d60048201526105eb9073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af41580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d9190611715565b600173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610556573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057a9190611742565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af41580156105c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e591906116e6565b5f610d18565b61085d600a604051632620eecb60e11b815269152d02c7e14af680000060048201526001908190819073__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd9690602401602060405180830381865af415801561064e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106729190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156106b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dd9190611715565b73__$71e292c09eace9601b3e21e68a1278917a$__634bd9351b6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610724573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107489190611742565b73__$71e292c09eace9601b3e21e68a1278917a$__63f27c3bf66040518163ffffffff1660e01b8152600401602060405180830381865af415801561078f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b39190611742565b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156107fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081e91906116e6565b604051631488c84560e01b8152600360048201525f19602482015273__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c84590604401610452565b565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156108af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d3919061175d565b156108f657604051633c00d02760e01b815260ff8b1660048201526024016101ab565b610900868661146d565b1561093057604051622a505160e91b81526001600160601b038088166004830152861660248201526044016101ab565b61093a84846114f9565b15610969576040516338157c8960e21b815264ffffffffff8086166004830152841660248201526044016101ab565b6001600160a01b0380821690831611156109a957604051638ae671e360e01b81526001600160a01b038084166004830152821660248201526044016101ab565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c429190611742565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b8015610dc25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b158015610dab575f80fd5b505af4158015610dbd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015610e26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4a9190611715565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015610eb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed79190611715565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f699190611715565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611715565b600182018054600160601b65ff000000000160c01b0319166c010000000000000000000000006001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af41580156110c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ec9190611715565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f9190611742565b815f0160186101000a81548164ffffffffff021916908364ffffffffff1602179055506113a260075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561122c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112509190611715565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af41580156112a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cb919061177c565b6112d59190611793565b6040518263ffffffff1660e01b81526004016112f391815260200190565b602060405180830381865af415801561130e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113329190611715565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015611379573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139d9190611715565b611541565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b1580156113ee575f80fd5b505af1158015611400573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816818301526001600160a01b038716606082015290517f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f09350908190036080019150a1505050505050565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c906044015b602060405180830381865af41580156114ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f2919061175d565b9392505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef906044016114b3565b83546001600160601b038381166001600160c01b03198316176c010000000000000000000000009184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156115d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f49190611742565b855464ffffffffff918216600160c01b0264ffffffffff60c01b1982168117808955604080516001600160601b038a811682529384169484169490941760208501526c010000000000000000000000009091049091169082015290821660608201527f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f20479060800160405180910390a15050505050565b61074c806176fb83390190565b6001600160a01b03811681146116ab575f80fd5b50565b5f80604083850312156116bf575f80fd5b82516116ca81611697565b60208401519092506116db81611697565b809150509250929050565b5f602082840312156116f6575f80fd5b81516114f281611697565b6001600160601b03811681146116ab575f80fd5b5f60208284031215611725575f80fd5b81516114f281611701565b64ffffffffff811681146116ab575f80fd5b5f60208284031215611752575f80fd5b81516114f281611730565b5f6020828403121561176d575f80fd5b815180151581146114f2575f80fd5b5f6020828403121561178c575f80fd5b5051919050565b5f826117ad57634e487b7160e01b5f52601260045260245ffd5b500490565b615f3c806117bf5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c80636291423a11610135578063b4485022116100b4578063d44f8a4b11610079578063d44f8a4b146109c9578063de0eb85f146109dc578063e8ce883d146109ef578063ea48ce9b14610a02578063f55a7d1e14610a15575f80fd5b8063b448502214610881578063b9a5c03014610980578063bac475b714610993578063bf7e214f146109a6578063c4d66de8146109b6575f80fd5b80638fb36037116100fa5780638fb36037146106f15780639a148b7f14610712578063a6bc7cb814610725578063a71bfbb71461075d578063a9ea092814610770575f80fd5b80636291423a1461067157806363fe327a146106825780636d387fe41461069357806377083813146106cb5780637a9e5e4b146106de575f80fd5b80634a923f0c116101c15780635809c85d116101865780635809c85d1461058857806359386f8e146106255780635b0ee099146106385780635ecf260f1461064b5780635fd1efec1461065e575f80fd5b80634a923f0c146105035780634f9c1c091461051657806351486e7d14610539578063517069d814610562578063553b210114610575575f80fd5b80631b50e10b116102075780631b50e10b146103fb57806322e164061461040e57806325c083cf146104215780633a208dc714610434578063493eaa1314610459575f80fd5b80630345861d1461024357806307ccf38c146102585780630ad044ce1461038f57806310a0638a146103ba57806319f47dfc146103cd575b5f80fd5b610256610251366004615648565b610b4d565b005b61030b61026636600461567f565b6040805160c080820183525f80835260208084018290528385018290526060808501839052608080860184905260a09586018490526001600160601b039788168452600b8352928690208651948501875280548089168652600160601b8082048a1694870194909452600160c01b900464ffffffffff9081169786019790975260010154968716908401528504841690820152600160881b9093049091169082015290565b60405161038691905f60c0820190506001600160601b0383511682526001600160601b03602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b60405180910390f35b6103a261039d3660046156a7565b610d1d565b6040516001600160601b039091168152602001610386565b6102566103c836600461567f565b610d8e565b6103a26103db36600461567f565b6001600160601b039081165f908152600b60205260409020600101541690565b610256610409366004615700565b610dd0565b61025661041c366004615648565b610e39565b6103a261042f36600461567f565b611073565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610386565b6104cc61046736600461567f565b60408051606080820183525f80835260208084018290529284018190526001600160601b0394851681526007835283902083519182018452548085168252600160601b810490941691810191909152600160c01b90920464ffffffffff169082015290565b6040805182516001600160601b039081168252602080850151909116908201529181015164ffffffffff1690820152606001610386565b6103a261051136600461571b565b61108e565b61052961052436600461567f565b6110e9565b6040519015158152602001610386565b61054c610547366004615763565b611183565b60405164ffffffffff9091168152602001610386565b610529610570366004615648565b6114f5565b6102566105833660046157a1565b6115aa565b6105fa610596366004615648565b6040805180820182525f80825260209182018190526001600160601b03949094168452600a81528184206001600160a01b0393841685528152928190208151808301909252549182168152600160a01b90910464ffffffffff169181019190915290565b6040805182516001600160a01b0316815260209283015164ffffffffff169281019290925201610386565b6102566106333660046157df565b611600565b61025661064636600461585c565b61166d565b610256610659366004615924565b611694565b61025661066c366004615700565b61185b565b6003546001600160a01b0316610441565b6002546001600160a01b0316610441565b6106a66106a1366004615950565b6118bc565b604080516001600160601b03909316835264ffffffffff909116602083015201610386565b6103a26106d93660046157a1565b61195b565b6102566106ec366004615700565b611d9c565b6106f9611e14565b6040516001600160e01b03199091168152602001610386565b61025661072036600461597c565b611e36565b6107386107333660046159c8565b611e4d565b604080516001600160a01b03909316835264ffffffffff909116602083015201610386565b61025661076b366004615648565b611ffa565b61087461077e36600461567f565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160601b039081165f9081526006602090815260409182902082516101208101845281548086168252600160601b808204871694830194909452600160c01b9081900464ffffffffff908116958301959095526001830154808716606084015293840486166080830152830490931660a0840152600160e81b90910460ff1660c0830152600201546001600160a01b03811660e0830152600160a01b900490911661010082015290565b6040516103869190615a05565b61092c61088f366004615648565b604080516080810182525f808252602082018190529181018290526060810191909152506001600160601b039182165f9081526008602090815260408083206001600160a01b0394909416835292815290829020825160808101845290548085168252600160601b810490941691810191909152600160c01b830461ffff1691810191909152600160d01b90910464ffffffffff16606082015290565b60405161038691905f6080820190506001600160601b0383511682526001600160601b03602084015116602083015261ffff604084015116604083015264ffffffffff606084015116606083015292915050565b61052961098e36600461567f565b612374565b6102566109a1366004615aee565b61241d565b5f546001600160a01b0316610441565b6102566109c4366004615700565b612535565b6103a26109d7366004615b1b565b612656565b6103a26109ea366004615950565b6127a0565b6103a26109fd366004615950565b612989565b6103a2610a10366004615b1b565b612a16565b610b40610a23366004615b48565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091525060ff9081165f9081526005602090815260409182902082516101408101845281548086161515825261010080820487161515948301949094526201000081049095161515938101939093526001600160601b036301000000850481166060850152600160781b850416608084015264ffffffffff600160d81b909404841660a0840152600181015480851660c08501526001600160a01b0365010000000000909104811660e085015260029091015490811691830191909152600160a01b900490911661012082015290565b6040516103869190615b61565b610b59335b5f36612b4f565b5f80610b6484612c3e565b6003546001830154604051631e74126560e21b81526001600160a01b0392831660048201526001600160601b0389166024820152600160e81b90910460ff1660448201529086166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__906379d04994906084015f6040518083038186803b158015610bea575f80fd5b505af4158015610bfc573d5f803e3d5ffd5b5050506002830180546001600160a01b038681166001600160a01b031983161790925560408051639fa6a6e360e01b8152905192909116925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af4158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b03881681526001600160a01b03808816602083015284169181019190915290831660608201527fd0227ef9a17652cfa7e48ccd5c6f70bf4d13dfe2eb71df80aa62881a3240d773906080015b60405180910390a15050505050565b5f610d2733610b52565b5f610d3186612cf6565b60018101549091505f90610d4d906001600160601b0316612dbb565b90508515610d6257610d60878383612e7e565b505b8415610d7557610d7387838361328a565b505b610d8187838387613550565b925050505b949350505050565b610d9733610b52565b5f610da182612cf6565b60018101549091505f90610dbd906001600160601b0316612dbb565b9050610dca838383612e7e565b50505050565b610dd933610b52565b600280546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f960b8b5c264ebbae758850aa1b8e20d698fe852b7c686ee4ee8e991602c42cbe91015b60405180910390a15050565b610e4233610b52565b6001600160601b0382165f908152600a602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190615c69565b15610f1b578282604051633cdee7f960e01b8152600401610f12929190615c84565b60405180910390fd5b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f869190615ca6565b81546001600160a01b0319166001600160a01b039190911617815560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161781556040517e2713bc0b3137ab1236c169e5d41bf95db32cea0a163dc838d6842c6410b99a906110669085908590615c84565b60405180910390a1505050565b5f61107d33610b52565b61108682613772565b90505b919050565b5f61109833610b52565b5f6110a285612cf6565b60018101549091505f906110be906001600160601b0316612dbb565b905084156110d3576110d1868383612e7e565b505b6110df8683838761398b565b9695505050505050565b6001600160601b0381165f908152600b6020526040808220600101549051638d38cd4b60e01b8152600160881b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561115f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190615c69565b5f61118d33610b52565b6001600160601b0385165f908152600b60205260409081902060018101549151638d38cd4b60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015611206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122a9190615c69565b1561125357604051630e5c323960e01b81526001600160601b0387166004820152602401610f12565b5f61125d86612dbb565b905061126a868286613b97565b6001820180546001600160601b0319166001600160601b0388161790556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156112d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f99190615cc1565b82546001600160601b0319166001600160601b03919091161782556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190615cc1565b825f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b1990911617825561144382613c30565b5060018201548254604080516001600160601b03808c168252938416602082015292821690830152600160c01b900464ffffffffff1660608201526001600160a01b03861660808201527fd3ee63d0421bec5f3bb2d1f810b978739c31bb1e1f31c7113739eca75026933b9060a00160405180910390a16114dc8783838460010160189054906101000a900464ffffffffff1688613d6c565b5054600160c01b900464ffffffffff1695945050505050565b6001600160601b0382165f908152600a602090815260408083206001600160a01b0385168452909152808220549051638d38cd4b60e01b8152600160a01b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b906024015b602060405180830381865af415801561157d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615c69565b90505b92915050565b6115b333610b52565b5f6115bd83612cf6565b60018101549091505f906115d9906001600160601b0316612dbb565b905082156115ee576115ec848383612e7e565b505b6115f984838361328a565b5050505050565b61160933610b52565b5f61161386612cf6565b60018101549091505f9061162f906001600160601b0316612dbb565b9050851561164457611642878383612e7e565b505b84156116575761165587838361328a565b505b6116648783838787613d6c565b50505050505050565b61167633610b52565b6116888a8a8a8a8a8a8a8a8a8a614113565b50505050505050505050565b61169d33610b52565b5f806116a884612c3e565b6003546001830154604051632048909b60e21b81526001600160a01b0390921660048301526001600160601b0388166024830152600160e81b900460ff16604482015264ffffffffff86166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90638122426c906084015f6040518083038186803b158015611732575f80fd5b505af4158015611744573d5f803e3d5ffd5b50505060018301805464ffffffffff868116600160c01b90810264ffffffffff60c01b1984161790935560408051639fa6a6e360e01b815290519390920416925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af41580156117c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e89190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b038816815286831660208201528383169181019190915290831660608201527f63545c71b15de59d1463d3e2577b64bc3c5510cd1dd0243eb030f9da55a65fe090608001610d0e565b61186433610b52565b600380546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f8414c1d6352c513484c229579bca3842a94d9c46e1dd28ec9b03c9b3d5a4ae429101610e2d565b5f806118c733610b52565b5f6118d185612c3e565b6001820180546001600160601b03888116600160601b818102600160601b600160c01b0319851617909455604080518c84168152602081019290925264ffffffffff861690820152929091041695509093509091507f74cf98e0b0178be4925e6447d2bdeea75507d176a76652c4b0eda5f06da689c39060600160405180910390a1509250929050565b6001600160601b0382165f908152600960209081526040808320805482518185028101850190935280835284938301828280156119bf57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116119a1575b5050505050905080515f03611a415773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a399190615cc1565b9150506115a4565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aac9190615cc1565b6001600160601b038086165f90815260066020526040812060020154929450600160a01b90920416908080805b8551811015611ce557858181518110611af457611af4615cdc565b6020908102919091018101516001600160601b038b81165f9081526008845260408082206001600160a01b0385168352909452839020549251630a4d29dd60e31b8152921660048301819052909550935073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015611b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba39190615c69565b611cdd576001600160601b0385165f908152600a602090815260408083206001600160a01b038881168552925291829020549151636a88f0a760e11b8152911660048201819052925073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190615c69565b611cdd57604051636e5912e760e01b8152611cda90889073__$3bac17678db7ae928afa209f2f44deec9c$__90636e5912e790611c96906001600160601b038916908890600401615c84565b602060405180830381865af4158015611cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd59190615cc1565b6145cc565b96505b600101611ad9565b508615611d91576001600160601b038881165f90815260066020908152604080832060010154600160e81b900460ff168084526005909252909120805491929091611d39918a916301000000900416614651565b15611d57578054630100000090046001600160601b03169750611d8e565b8054611d74908990600160781b90046001600160601b031661469b565b15611d8e578054600160781b90046001600160601b031697505b50505b505050505092915050565b5f5433906001600160a01b03168114611dd25760405162d1953b60e31b81526001600160a01b0382166004820152602401610f12565b816001600160a01b03163b5f03611e07576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f12565b611e10826146e5565b5050565b5f8054600160a01b900460ff16611e2a57505f90565b50638fb3603760e01b90565b611e3f33610b52565b610dca848484846001614738565b5f80611e5833610b52565b6001600160601b0385165f908152600a602090815260408083206001600160a01b0388168452909152908190208054915163790a38ad60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190615c69565b15611f2857858560405163020c3e0f60e31b8152600401610f12929190615c84565b80546001600160a01b038581166001600160a01b0319831617835560408051639fa6a6e360e01b81529051918316955064ffffffffff600160a01b90930492909216935073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce9190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161790559094909350915050565b61200333610b52565b6001600160601b0382165f9081526008602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b19190615c69565b156120bb57505050565b6120c483612dbb565b506040516301f8588560e51b81526001600160601b03841660048201525f9073__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af415801561211d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121419190615cc1565b6001600160601b0381165f908152600a602090815260408083206001600160a01b03881684529091529081902054905163790a38ad60e01b8152600160a01b90910464ffffffffff16600482015290915073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af41580156121cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f09190615c69565b1561221257808360405163020c3e0f60e31b8152600401610f12929190615c84565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190615cc1565b82546001600160601b0319166001600160601b039190911617825560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156122e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230a9190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b1990911617909155506001600160601b0382165f9081526009602090815260408220805460018101825590835291200180546001600160a01b0383166001600160a01b03199091161790555050565b6001600160601b0381165f908152600b60209081526040808320548151639fa6a6e360e01b8152915161108693600160c01b90920464ffffffffff169273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__92639fa6a6e3926004808401938290030181865af41580156123ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240e9190615c4e565b64ffffffffff90811691161190565b61242633610b52565b5f61243084614e83565b80546001600160601b038581166001600160c01b0319831617600160601b9186169190910217825560408051639fa6a6e360e01b81529051929350600160c01b90910464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556040517ff247f9f8f9c455e0928cd8b5f34ef2567264cde4001db187c3e930c25e08fc1590610d0e908790879087908690615cf0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561257a5750825b90505f8267ffffffffffffffff1660011480156125965750303b155b9050811580156125a4575080155b156125c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156125ec57845460ff60401b1916600160401b1785555b600280546001600160a01b0319166001600160a01b038816179055831561264e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b5f61266033610b52565b5f61266b8585614f46565b805490915064ffffffffff600160d01b82041690612692906001600160601b031685615016565b82546001600160601b0319166001600160601b03919091161782556126b8868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156126ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127239190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f6eea09d3401164101f559606e8c76aca972689ba8330a579bd6507b5889d153f9061278f9088908890889088908790615d20565b60405180910390a150509392505050565b5f6127aa33610b52565b5f6127b484612dbb565b80546001820154919250600160c01b900464ffffffffff16906127e0906001600160601b0316856145cc565b826001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561284e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128729190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556001808301549054604051631c5da14d60e11b81526001600160601b03888116600483015290921694507f317c91a4e8d5e9d4af7c5e856f79e6db430257dabe4a32a352ef58b9ba000f3d91879187916001600160a01b03909116906338bb429a906024015b602060405180830381865afa158015612915573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129399190615ca6565b604080516001600160601b03948516815292841660208401526001600160a01b0390911690820152908516606082015264ffffffffff8316608082015260a00160405180910390a1505092915050565b5f61299333610b52565b5f61299d84612dbb565b90505f6129ab85838661517d565b6001838101549054604051631c5da14d60e11b81526001600160601b03898116600483015290921695509192507fb144c2ad8fd690acb16f40becc8acde92c8694ef99952f875213f57ce1b7acef91879187916001600160a01b0316906338bb429a906024016128fa565b5f612a2033610b52565b5f612a2b8585614f46565b805490915064ffffffffff600160d01b82041690612a52906001600160601b0316856145cc565b82546001600160601b0319166001600160601b0391909116178255612a78868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f05e52d64c754f7a526cf0704e8cfe26c04e8b656e7b493f61fbda7109a326f429061278f9088908890889088908790615d20565b5f80612b82612b655f546001600160a01b031690565b8630612b7460045f898b615d62565b612b7d91615d89565b6152ba565b91509150816115f95763ffffffff811615612c1b575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90612bdc90889088908890600401615dbf565b5f604051808303815f87803b158015612bf3575f80fd5b505af1158015612c05573d5f803e3d5ffd5b50505f805460ff60a01b19169055506115f99050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610f12565b5f80612c4983612dbb565b9150815f0160189054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ccd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782559092909150565b6001600160601b0381165f908152600b6020526040908190206001810154915163790a38ad60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612d6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d939190615c69565b156110895760405162af6eb360e61b81526001600160601b0383166004820152602401610f12565b6001600160601b0381165f90815260066020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612e31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e559190615c69565b156110895760405163091c22d760e41b81526001600160601b0383166004820152602401610f12565b6002810154604051636a88f0a760e11b81526001600160a01b0390911660048201525f9073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f009190615c69565b613283576001830154604051633682752160e21b8152600160601b90910464ffffffffff1660048201525f9073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c9073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063da09d48490602401602060405180830381865af4158015612f82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa69190615dfe565b612fb09042615e29565b6040518263ffffffff1660e01b8152600401612fce91815260200190565b602060405180830381865af4158015612fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300d9190615c4e565b60405163790a38ad60e01b815264ffffffffff8216600482015290915073__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015613064573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130889190615c69565b156131005773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156130d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f89190615cc1565b915050613283565b60028301548454604051635bdf11e360e11b81526001600160a01b03909216600483015264ffffffffff831660248301526001600160601b0316604482015273__$f048dbd5170c0ac319fa0222065b281d84$__9063b7be23c690606401602060405180830381865af4158015613179573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319d9190615cc1565b83549092506131bc90600160601b90046001600160601b0316836145cc565b8354600160601b600160c01b031916600160601b6001600160601b03928316810291909117855585546131f39291900416836145cc565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f61322485856153c2565b85546040519192507fed4853b0609e21bd14ba3f580ebca5d25c21bc024161fd250b6b33c768c1c8729161278f91899187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b9392505050565b8154604051630a4d29dd60e31b8152600160601b9091046001600160601b0316600482018190529073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af41580156132ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133109190615c69565b61328357600183015461332d906001600160601b03168383613b97565b6001830154613346906001600160601b03168383615459565b815461335b906001600160601b0316826145cc565b82546001600160601b0319166001600160601b039182161780845561338991600160601b9091041682615016565b8254600160601b600160c01b031916600160601b6001600160601b039283160217835583546133b99116826145cc565b83546001600160601b0319166001600160601b03919091161783556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015613422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134469190615cc1565b83546001600160601b0391909116600160601b02600160601b600160c01b03199091161783555f61347784846153c2565b90507f38151af1adffdc3651d3f7917ea0e90417d40e286b11741dd01a3e3228d96c598583865f015f9054906101000a90046001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156134f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351d9190615cc1565b88546040516135409594939291600160c01b900464ffffffffff16908890615e3c565b60405180910390a1509392505050565b8254604051637931c81160e01b81526001600160601b03808416600483015290911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156135b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d79190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136549190615c69565b610d865761366185612374565b156136a057835460405163187bc0bd60e21b81526001600160601b0387166004820152600160c01b90910464ffffffffff166024820152604401610f12565b82546136b5906001600160601b031682615016565b83546001600160601b0319166001600160601b0391821617845584546136dc911682615016565b84546001600160601b0319166001600160601b03919091161784555f61370285856153c2565b85546040519192507fed7a6a5cb58253a85b06a414d4fb43855fc759e9f19af28b775bf2b47ec7bf709161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150949350505050565b5f8061377d83612dbb565b90505f61378984614e83565b8054909150600160c01b900464ffffffffff165f6137a7868261195b565b83549091506137c09082906001600160601b03166145cc565b8354604051637931c81160e01b81526001600160601b038084166004830152600160601b909204909116602482015290955073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561382c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138509190615cc1565b94508484600101600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156138c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e69190615c4e565b845464ffffffffff60c01b198116600160c01b64ffffffffff93841602908117875560018701548654604080516001600160601b03808e168252600160601b9485900481166020830152939092048316908201528582166060820152928116911617608082015290831660a08201527f816866bb29a0d245f04a0179c957b4495d86447de93a8a4962fd3528510991429060c00160405180910390a150505050919050565b8254604051637931c81160e01b81526001600160601b038084166004830152600160601b90920490911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156139f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a1a9190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a979190615c69565b610d86576001840154613ab4906001600160601b03168483615459565b8254613ad090600160601b90046001600160601b031682615016565b8354600160601b600160c01b031916600160601b6001600160601b0392831681029190911785558554613b07929190041682615016565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f613b3885856153c2565b85546040519192507f39ee77ec34c101210194f9f2c8be592bf5ef303db8e68adf58b4fbe747a134829161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b8154613bca90613bb0906001600160601b0316836145cc565b6001840154600160601b90046001600160601b031661469b565b15613c2b576001820154825484916001600160601b03600160601b909104811691613bf69116846145cc565b604051631946161f60e01b81526001600160601b03938416600482015291831660248301529091166044820152606401610f12565b505050565b5f8160010160119054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb49190615c4e565b8260010160116101000a81548164ffffffffff021916908364ffffffffff16021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613d1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d439190615c4e565b82600101600c6101000a81548164ffffffffff021916908364ffffffffff160217905550919050565b604051630a4d29dd60e31b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613de69190615c69565b6115f9576001840154613e03906001600160601b03168483613b97565b8254613e18906001600160601b0316826145cc565b83546001600160601b0319166001600160601b039182161784558454613e3f9116826145cc565b84546001600160601b0319166001600160601b0391909116178455600183015460405163e83da7ad60e01b815264ffffffffff8085166004830152600160c01b90920490911660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__9063e83da7ad90604401602060405180830381865af4158015613ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eea9190615c4e565b6040516330b8415f60e01b81526001600160601b038416600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015613f43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f679190615c69565b8015613fe65750604051638d38cd4b60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__90638d38cd4b90602401602060405180830381865af4158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190615c69565b156140985784546040516352bcc5a760e11b8152600160c01b90910464ffffffffff90811660048301528216602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015614051573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140759190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161785555b5f6140a386866153c2565b86546040519192507f15d4969bfd34a12fabf5d09d2615ffc4f81d206e7756d9e3c0919ba800d57e4191614102918a9187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150505050505050565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015614163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141879190615c69565b156141aa57604051633c00d02760e01b815260ff8b166004820152602401610f12565b6141b4868661469b565b156141e457604051622a505160e91b81526001600160601b03808816600483015286166024820152604401610f12565b6141ee84846154b9565b1561421d576040516338157c8960e21b815264ffffffffff808616600483015284166024820152604401610f12565b6001600160a01b03808216908316111561425d57604051638ae671e360e01b81526001600160a01b03808416600483015282166024820152604401610f12565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156144d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f69190615c4e565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af415801561462d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615cc1565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401611562565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401611562565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80156147e25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b1580156147cb575f80fd5b505af41580156147dd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015614846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061486a9190615cc1565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156148d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148f79190615cc1565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015614965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149899190615cc1565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156149f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a1b9190615cc1565b60018201805471ff0000000000ffffffffffffffffffffffff60601b1916600160601b6001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af4158015614ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b099190615cc1565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015614b78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b9c9190615c4e565b815f0160186101000a81548164ffffffffff021916908364ffffffffff160217905550614dbf60075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614c6d9190615cc1565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015614cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ce89190615dfe565b614cf29190615e7c565b6040518263ffffffff1660e01b8152600401614d1091815260200190565b602060405180830381865af4158015614d2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614d4f9190615cc1565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615cc1565b615501565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b158015614e0b575f80fd5b505af1158015614e1d573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816918101919091526001600160a01b03861660608201527f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f092506080019050612645565b6001600160601b0381165f90815260076020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f1d9190615c69565b15611089576040516384bdfa9560e01b81526001600160601b0383166004820152602401610f12565b6001600160601b0382165f9081526008602090815260408083206001600160a01b0385168452909152908190208054915163790a38ad60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614fd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ff49190615c69565b156115a457828260405163688e635d60e11b8152600401610f12929190615c84565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401614612565b8054600160c01b900461ffff1681601861507983615e9b565b82546101009290920a61ffff8181021990931691831602179091556002548354604051638755a73f60e01b81526001600160601b0380891660048301526001600160a01b038881166024840152600160c01b84049095166044830152600160601b83048116606483015290911660848201525f9350911690638755a73f9060a401602060405180830381865afa158015615115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906151399190615c69565b90508015610dca57815461ffff60c01b19600160601b6001600160601b03831602166dffffffffffffffffffffffffffff60601b199091161782556115f984613772565b81546001830154600160c01b90910464ffffffffff16906151a89083906001600160601b031661469b565b156151e75760018301546040516301a4b29960e11b81526001600160601b03808716600483015291821660248201529083166044820152606401610f12565b60018301546151ff906001600160601b031683615016565b836001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561526d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906152919190615c4e565b835464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161790925550919050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516153289190615ebb565b5f60405180830381855afa9150503d805f8114615360576040519150601f19603f3d011682016040523d82523d5f602084013e615365565b606091505b509150915081156153b7576040815110615397578080602001905181019061538d9190615ed1565b90945092506153b7565b60208151106153b757808060200190518101906153b49190615c69565b93505b505094509492505050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561540a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061542e9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556115a183613c30565b5f61546584848461517d565b60018401546040519192507fc0f991fc396647cd10937655916d61916ae77295c1d6a67e335bc8f502417491916154ab91879186916001600160601b0316908690615cf0565b60405180910390a150505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401611562565b83546001600160601b038381166001600160c01b0319831617600160601b9184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015615587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906155ab9190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b19821681178088556040517f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f204793610d0e9389936001600160601b039182169282169290921792600160601b90920416908690615cf0565b6001600160601b0381168114615631575f80fd5b50565b6001600160a01b0381168114615631575f80fd5b5f8060408385031215615659575f80fd5b82356156648161561d565b9150602083013561567481615634565b809150509250929050565b5f6020828403121561568f575f80fd5b81356132838161561d565b8015158114615631575f80fd5b5f805f80608085870312156156ba575f80fd5b84356156c58161561d565b935060208501356156d58161569a565b925060408501356156e58161569a565b915060608501356156f58161561d565b939692955090935050565b5f60208284031215615710575f80fd5b813561328381615634565b5f805f6060848603121561572d575f80fd5b83356157388161561d565b925060208401356157488161569a565b915060408401356157588161561d565b809150509250925092565b5f805f8060808587031215615776575f80fd5b84356157818161561d565b935060208501356157918161561d565b925060408501356156e581615634565b5f80604083850312156157b2575f80fd5b82356157bd8161561d565b915060208301356156748161569a565b64ffffffffff81168114615631575f80fd5b5f805f805f60a086880312156157f3575f80fd5b85356157fe8161561d565b9450602086013561580e8161569a565b9350604086013561581e8161569a565b9250606086013561582e816157cd565b9150608086013561583e8161561d565b809150509295509295909350565b803560ff81168114611089575f80fd5b5f805f805f805f805f806101408b8d031215615876575f80fd5b61587f8b61584c565b995060208b013561588f8161569a565b985060408b013561589f8161569a565b975060608b01356158af8161569a565b965060808b01356158bf8161561d565b955060a08b01356158cf8161561d565b945060c08b01356158df816157cd565b935060e08b01356158ef816157cd565b92506101008b013561590081615634565b91506101208b013561591181615634565b809150509295989b9194979a5092959850565b5f8060408385031215615935575f80fd5b82356159408161561d565b91506020830135615674816157cd565b5f8060408385031215615961575f80fd5b823561596c8161561d565b915060208301356156748161561d565b5f805f806080858703121561598f575f80fd5b843561599a8161561d565b93506159a86020860161584c565b925060408501356159b8816157cd565b915060608501356156f581615634565b5f805f606084860312156159da575f80fd5b83356159e58161561d565b925060208401356159f581615634565b9150604084013561575881615634565b81516001600160601b03168152602080830151610120830191615a32908401826001600160601b03169052565b506040830151615a4b604084018264ffffffffff169052565b506060830151615a6660608401826001600160601b03169052565b506080830151615a8160808401826001600160601b03169052565b5060a0830151615a9a60a084018264ffffffffff169052565b5060c0830151615aaf60c084018260ff169052565b5060e0830151615aca60e08401826001600160a01b03169052565b50610100830151615ae76101008401826001600160601b03169052565b5092915050565b5f805f60608486031215615b00575f80fd5b8335615b0b8161561d565b925060208401356157488161561d565b5f805f60608486031215615b2d575f80fd5b8335615b388161561d565b9250602084013561574881615634565b5f60208284031215615b58575f80fd5b6115a18261584c565b81511515815261014081016020830151615b7f602084018215159052565b506040830151615b93604084018215159052565b506060830151615bae60608401826001600160601b03169052565b506080830151615bc960808401826001600160601b03169052565b5060a0830151615be260a084018264ffffffffff169052565b5060c0830151615bfb60c084018264ffffffffff169052565b5060e0830151615c1660e08401826001600160a01b03169052565b50610100830151615c336101008401826001600160a01b03169052565b50610120830151615ae761012084018264ffffffffff169052565b5f60208284031215615c5e575f80fd5b8151613283816157cd565b5f60208284031215615c79575f80fd5b81516132838161569a565b6001600160601b039290921682526001600160a01b0316602082015260400190565b5f60208284031215615cb6575f80fd5b815161328381615634565b5f60208284031215615cd1575f80fd5b81516132838161561d565b634e487b7160e01b5f52603260045260245ffd5b6001600160601b03948516815292841660208401529216604082015264ffffffffff909116606082015260800190565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015264ffffffffff909116608082015260a00190565b5f8085851115615d70575f80fd5b83861115615d7c575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615ae7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615e0e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156115a4576115a4615e15565b6001600160601b039687168152948616602086015292851660408501529316606083015264ffffffffff928316608083015290911660a082015260c00190565b5f82615e9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61ffff821661ffff8103615eb257615eb2615e15565b60010192915050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615ee2575f80fd5b8251615eed8161569a565b602084015190925063ffffffff81168114615674575f80fdfea2646970667358221220d914c36cfac0dbd40447bcb21a99ca78595960766af22aa5e8906f934651e94664736f6c634300081a00336080604052348015600e575f80fd5b50600480546001600160a01b0319163317905561071e8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c80638de1d14e116100635780638de1d14e1461010f578063954a317214610122578063996f8d9114610135578063ddfe867f1461014b578063f2b2978114610153575f80fd5b8063042f9da3146100945780634f9c1c09146100a9578063706e9ba9146100d1578063777d1857146100fc575b5f80fd5b6100a76100a2366004610627565b610166565b005b6100bc6100b736600461065e565b610221565b60405190151581526020015b60405180910390f35b6100e46100df366004610680565b6102ab565b6040516001600160601b0390911681526020016100c8565b6100bc61010a36600461065e565b610327565b6100a761011d36600461065e565b610370565b6100a7610130366004610627565b610491565b61013d61051b565b6040519081526020016100c8565b61013d610595565b6100e4610161366004610680565b6105cf565b6004546001600160a01b031633146101ae5760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044015b60405180910390fd5b604051631461054360e31b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015b5f6040518083038186803b158015610207575f80fd5b505af4158015610219573d5f803e3d5ffd5b505050505050565b604051632bfdd6b960e01b81525f600482018190526001600160601b03831660248301529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b9906044015b602060405180830381865af4158015610281573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a59190610697565b92915050565b60405163e797d89960e01b81525f60048201819052602482018390529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044015b602060405180830381865af4158015610303573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a591906106b6565b604051632bfdd6b960e01b8152600260048201526001600160601b03821660248201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90632bfdd6b990604401610266565b6004546001600160a01b031633146103b35760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b604051631461054360e31b81525f60048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a3082a18906044015f6040518083038186803b15801561040a575f80fd5b505af415801561041c573d5f803e3d5ffd5b5050604051631461054360e31b8152600260048201526001600160601b038416602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__925063a3082a1891506044015f6040518083038186803b158015610478575f80fd5b505af415801561048a573d5f803e3d5ffd5b5050505050565b6004546001600160a01b031633146104d45760048054604051631d1f01d960e31b81526001600160a01b03909116918101919091523360248201526044016101a5565b60405163539eabab60e11b8152600260048201526001600160601b038216602482015273__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063a73d5756906044016101f1565b604051638b6233dd60e01b8152600260048201525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd906024015b602060405180830381865af415801561056c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059091906106d1565b905090565b604051638b6233dd60e01b81525f600482018190529073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__90638b6233dd90602401610551565b60405163e797d89960e01b815260026004820152602481018290525f9073__$f7a7d9f32fdcd358419ed5ca3af4f3da33$__9063e797d899906044016102e8565b6001600160601b0381168114610624575f80fd5b50565b5f8060408385031215610638575f80fd5b823561064381610610565b9150602083013561065381610610565b809150509250929050565b5f6020828403121561066e575f80fd5b813561067981610610565b9392505050565b5f60208284031215610690575f80fd5b5035919050565b5f602082840312156106a7575f80fd5b81518015158114610679575f80fd5b5f602082840312156106c6575f80fd5b815161067981610610565b5f602082840312156106e1575f80fd5b505191905056fea264697066735822122096ea3341864adfa8ac3d3866a69da65a8783093e1a865236fbe311962824969764736f6c634300081a0033",
         | 
| 2224 | 
            +
              "deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061023f575f3560e01c80636291423a11610135578063b4485022116100b4578063d44f8a4b11610079578063d44f8a4b146109c9578063de0eb85f146109dc578063e8ce883d146109ef578063ea48ce9b14610a02578063f55a7d1e14610a15575f80fd5b8063b448502214610881578063b9a5c03014610980578063bac475b714610993578063bf7e214f146109a6578063c4d66de8146109b6575f80fd5b80638fb36037116100fa5780638fb36037146106f15780639a148b7f14610712578063a6bc7cb814610725578063a71bfbb71461075d578063a9ea092814610770575f80fd5b80636291423a1461067157806363fe327a146106825780636d387fe41461069357806377083813146106cb5780637a9e5e4b146106de575f80fd5b80634a923f0c116101c15780635809c85d116101865780635809c85d1461058857806359386f8e146106255780635b0ee099146106385780635ecf260f1461064b5780635fd1efec1461065e575f80fd5b80634a923f0c146105035780634f9c1c091461051657806351486e7d14610539578063517069d814610562578063553b210114610575575f80fd5b80631b50e10b116102075780631b50e10b146103fb57806322e164061461040e57806325c083cf146104215780633a208dc714610434578063493eaa1314610459575f80fd5b80630345861d1461024357806307ccf38c146102585780630ad044ce1461038f57806310a0638a146103ba57806319f47dfc146103cd575b5f80fd5b610256610251366004615648565b610b4d565b005b61030b61026636600461567f565b6040805160c080820183525f80835260208084018290528385018290526060808501839052608080860184905260a09586018490526001600160601b039788168452600b8352928690208651948501875280548089168652600160601b8082048a1694870194909452600160c01b900464ffffffffff9081169786019790975260010154968716908401528504841690820152600160881b9093049091169082015290565b60405161038691905f60c0820190506001600160601b0383511682526001600160601b03602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015264ffffffffff608084015116608083015264ffffffffff60a08401511660a083015292915050565b60405180910390f35b6103a261039d3660046156a7565b610d1d565b6040516001600160601b039091168152602001610386565b6102566103c836600461567f565b610d8e565b6103a26103db36600461567f565b6001600160601b039081165f908152600b60205260409020600101541690565b610256610409366004615700565b610dd0565b61025661041c366004615648565b610e39565b6103a261042f36600461567f565b611073565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610386565b6104cc61046736600461567f565b60408051606080820183525f80835260208084018290529284018190526001600160601b0394851681526007835283902083519182018452548085168252600160601b810490941691810191909152600160c01b90920464ffffffffff169082015290565b6040805182516001600160601b039081168252602080850151909116908201529181015164ffffffffff1690820152606001610386565b6103a261051136600461571b565b61108e565b61052961052436600461567f565b6110e9565b6040519015158152602001610386565b61054c610547366004615763565b611183565b60405164ffffffffff9091168152602001610386565b610529610570366004615648565b6114f5565b6102566105833660046157a1565b6115aa565b6105fa610596366004615648565b6040805180820182525f80825260209182018190526001600160601b03949094168452600a81528184206001600160a01b0393841685528152928190208151808301909252549182168152600160a01b90910464ffffffffff169181019190915290565b6040805182516001600160a01b0316815260209283015164ffffffffff169281019290925201610386565b6102566106333660046157df565b611600565b61025661064636600461585c565b61166d565b610256610659366004615924565b611694565b61025661066c366004615700565b61185b565b6003546001600160a01b0316610441565b6002546001600160a01b0316610441565b6106a66106a1366004615950565b6118bc565b604080516001600160601b03909316835264ffffffffff909116602083015201610386565b6103a26106d93660046157a1565b61195b565b6102566106ec366004615700565b611d9c565b6106f9611e14565b6040516001600160e01b03199091168152602001610386565b61025661072036600461597c565b611e36565b6107386107333660046159c8565b611e4d565b604080516001600160a01b03909316835264ffffffffff909116602083015201610386565b61025661076b366004615648565b611ffa565b61087461077e36600461567f565b60408051610120810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160601b039081165f9081526006602090815260409182902082516101208101845281548086168252600160601b808204871694830194909452600160c01b9081900464ffffffffff908116958301959095526001830154808716606084015293840486166080830152830490931660a0840152600160e81b90910460ff1660c0830152600201546001600160a01b03811660e0830152600160a01b900490911661010082015290565b6040516103869190615a05565b61092c61088f366004615648565b604080516080810182525f808252602082018190529181018290526060810191909152506001600160601b039182165f9081526008602090815260408083206001600160a01b0394909416835292815290829020825160808101845290548085168252600160601b810490941691810191909152600160c01b830461ffff1691810191909152600160d01b90910464ffffffffff16606082015290565b60405161038691905f6080820190506001600160601b0383511682526001600160601b03602084015116602083015261ffff604084015116604083015264ffffffffff606084015116606083015292915050565b61052961098e36600461567f565b612374565b6102566109a1366004615aee565b61241d565b5f546001600160a01b0316610441565b6102566109c4366004615700565b612535565b6103a26109d7366004615b1b565b612656565b6103a26109ea366004615950565b6127a0565b6103a26109fd366004615950565b612989565b6103a2610a10366004615b1b565b612a16565b610b40610a23366004615b48565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091525060ff9081165f9081526005602090815260409182902082516101408101845281548086161515825261010080820487161515948301949094526201000081049095161515938101939093526001600160601b036301000000850481166060850152600160781b850416608084015264ffffffffff600160d81b909404841660a0840152600181015480851660c08501526001600160a01b0365010000000000909104811660e085015260029091015490811691830191909152600160a01b900490911661012082015290565b6040516103869190615b61565b610b59335b5f36612b4f565b5f80610b6484612c3e565b6003546001830154604051631e74126560e21b81526001600160a01b0392831660048201526001600160601b0389166024820152600160e81b90910460ff1660448201529086166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__906379d04994906084015f6040518083038186803b158015610bea575f80fd5b505af4158015610bfc573d5f803e3d5ffd5b5050506002830180546001600160a01b038681166001600160a01b031983161790925560408051639fa6a6e360e01b8152905192909116925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af4158015610c74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c989190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b03881681526001600160a01b03808816602083015284169181019190915290831660608201527fd0227ef9a17652cfa7e48ccd5c6f70bf4d13dfe2eb71df80aa62881a3240d773906080015b60405180910390a15050505050565b5f610d2733610b52565b5f610d3186612cf6565b60018101549091505f90610d4d906001600160601b0316612dbb565b90508515610d6257610d60878383612e7e565b505b8415610d7557610d7387838361328a565b505b610d8187838387613550565b925050505b949350505050565b610d9733610b52565b5f610da182612cf6565b60018101549091505f90610dbd906001600160601b0316612dbb565b9050610dca838383612e7e565b50505050565b610dd933610b52565b600280546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f960b8b5c264ebbae758850aa1b8e20d698fe852b7c686ee4ee8e991602c42cbe91015b60405180910390a15050565b610e4233610b52565b6001600160601b0382165f908152600a602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190615c69565b15610f1b578282604051633cdee7f960e01b8152600401610f12929190615c84565b60405180910390fd5b73__$bf7bc340cbb9229ef1de2c568356e67902$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610f62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f869190615ca6565b81546001600160a01b0319166001600160a01b039190911617815560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015610fef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110139190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161781556040517e2713bc0b3137ab1236c169e5d41bf95db32cea0a163dc838d6842c6410b99a906110669085908590615c84565b60405180910390a1505050565b5f61107d33610b52565b61108682613772565b90505b919050565b5f61109833610b52565b5f6110a285612cf6565b60018101549091505f906110be906001600160601b0316612dbb565b905084156110d3576110d1868383612e7e565b505b6110df8683838761398b565b9695505050505050565b6001600160601b0381165f908152600b6020526040808220600101549051638d38cd4b60e01b8152600160881b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561115f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110869190615c69565b5f61118d33610b52565b6001600160601b0385165f908152600b60205260409081902060018101549151638d38cd4b60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af4158015611206573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122a9190615c69565b1561125357604051630e5c323960e01b81526001600160601b0387166004820152602401610f12565b5f61125d86612dbb565b905061126a868286613b97565b6001820180546001600160601b0319166001600160601b0388161790556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156112d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f99190615cc1565b82546001600160601b0319166001600160601b03919091161782556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015611362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113869190615cc1565b825f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b1990911617825561144382613c30565b5060018201548254604080516001600160601b03808c168252938416602082015292821690830152600160c01b900464ffffffffff1660608201526001600160a01b03861660808201527fd3ee63d0421bec5f3bb2d1f810b978739c31bb1e1f31c7113739eca75026933b9060a00160405180910390a16114dc8783838460010160189054906101000a900464ffffffffff1688613d6c565b5054600160c01b900464ffffffffff1695945050505050565b6001600160601b0382165f908152600a602090815260408083206001600160a01b0385168452909152808220549051638d38cd4b60e01b8152600160a01b90910464ffffffffff16600482015273__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b906024015b602060405180830381865af415801561157d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615c69565b90505b92915050565b6115b333610b52565b5f6115bd83612cf6565b60018101549091505f906115d9906001600160601b0316612dbb565b905082156115ee576115ec848383612e7e565b505b6115f984838361328a565b5050505050565b61160933610b52565b5f61161386612cf6565b60018101549091505f9061162f906001600160601b0316612dbb565b9050851561164457611642878383612e7e565b505b84156116575761165587838361328a565b505b6116648783838787613d6c565b50505050505050565b61167633610b52565b6116888a8a8a8a8a8a8a8a8a8a614113565b50505050505050505050565b61169d33610b52565b5f806116a884612c3e565b6003546001830154604051632048909b60e21b81526001600160a01b0390921660048301526001600160601b0388166024830152600160e81b900460ff16604482015264ffffffffff86166064820152919350915073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__90638122426c906084015f6040518083038186803b158015611732575f80fd5b505af4158015611744573d5f803e3d5ffd5b50505060018301805464ffffffffff868116600160c01b90810264ffffffffff60c01b1984161790935560408051639fa6a6e360e01b815290519390920416925073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e3916004808201926020929091908290030181865af41580156117c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e89190615c4e565b835464ffffffffff60c01b1916600160c01b64ffffffffff92831602178455604080516001600160601b038816815286831660208201528383169181019190915290831660608201527f63545c71b15de59d1463d3e2577b64bc3c5510cd1dd0243eb030f9da55a65fe090608001610d0e565b61186433610b52565b600380546001600160a01b038381166001600160a01b03198316811790935560408051938452911660208301819052917f8414c1d6352c513484c229579bca3842a94d9c46e1dd28ec9b03c9b3d5a4ae429101610e2d565b5f806118c733610b52565b5f6118d185612c3e565b6001820180546001600160601b03888116600160601b818102600160601b600160c01b0319851617909455604080518c84168152602081019290925264ffffffffff861690820152929091041695509093509091507f74cf98e0b0178be4925e6447d2bdeea75507d176a76652c4b0eda5f06da689c39060600160405180910390a1509250929050565b6001600160601b0382165f908152600960209081526040808320805482518185028101850190935280835284938301828280156119bf57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116119a1575b5050505050905080515f03611a415773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a399190615cc1565b9150506115a4565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611a88573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aac9190615cc1565b6001600160601b038086165f90815260066020526040812060020154929450600160a01b90920416908080805b8551811015611ce557858181518110611af457611af4615cdc565b6020908102919091018101516001600160601b038b81165f9081526008845260408082206001600160a01b0385168352909452839020549251630a4d29dd60e31b8152921660048301819052909550935073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015611b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba39190615c69565b611cdd576001600160601b0385165f908152600a602090815260408083206001600160a01b038881168552925291829020549151636a88f0a760e11b8152911660048201819052925073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015611c26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4a9190615c69565b611cdd57604051636e5912e760e01b8152611cda90889073__$3bac17678db7ae928afa209f2f44deec9c$__90636e5912e790611c96906001600160601b038916908890600401615c84565b602060405180830381865af4158015611cb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd59190615cc1565b6145cc565b96505b600101611ad9565b508615611d91576001600160601b038881165f90815260066020908152604080832060010154600160e81b900460ff168084526005909252909120805491929091611d39918a916301000000900416614651565b15611d57578054630100000090046001600160601b03169750611d8e565b8054611d74908990600160781b90046001600160601b031661469b565b15611d8e578054600160781b90046001600160601b031697505b50505b505050505092915050565b5f5433906001600160a01b03168114611dd25760405162d1953b60e31b81526001600160a01b0382166004820152602401610f12565b816001600160a01b03163b5f03611e07576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f12565b611e10826146e5565b5050565b5f8054600160a01b900460ff16611e2a57505f90565b50638fb3603760e01b90565b611e3f33610b52565b610dca848484846001614738565b5f80611e5833610b52565b6001600160601b0385165f908152600a602090815260408083206001600160a01b0388168452909152908190208054915163790a38ad60e01b8152600160a01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015611ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f069190615c69565b15611f2857858560405163020c3e0f60e31b8152600401610f12929190615c84565b80546001600160a01b038581166001600160a01b0319831617835560408051639fa6a6e360e01b81529051918316955064ffffffffff600160a01b90930492909216935073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015611faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fce9190615c4e565b815464ffffffffff91909116600160a01b0264ffffffffff60a01b199091161790559094909350915050565b61200333610b52565b6001600160601b0382165f9081526008602090815260408083206001600160a01b03851684529091529081902080549151638d38cd4b60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__90638d38cd4b90602401602060405180830381865af415801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b19190615c69565b156120bb57505050565b6120c483612dbb565b506040516301f8588560e51b81526001600160601b03841660048201525f9073__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af415801561211d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121419190615cc1565b6001600160601b0381165f908152600a602090815260408083206001600160a01b03881684529091529081902054905163790a38ad60e01b8152600160a01b90910464ffffffffff16600482015290915073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af41580156121cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f09190615c69565b1561221257808360405163020c3e0f60e31b8152600401610f12929190615c84565b73__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190615cc1565b82546001600160601b0319166001600160601b039190911617825560408051639fa6a6e360e01b8152905173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156122e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230a9190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b1990911617909155506001600160601b0382165f9081526009602090815260408220805460018101825590835291200180546001600160a01b0383166001600160a01b03199091161790555050565b6001600160601b0381165f908152600b60209081526040808320548151639fa6a6e360e01b8152915161108693600160c01b90920464ffffffffff169273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__92639fa6a6e3926004808401938290030181865af41580156123ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061240e9190615c4e565b64ffffffffff90811691161190565b61242633610b52565b5f61243084614e83565b80546001600160601b038581166001600160c01b0319831617600160601b9186169190910217825560408051639fa6a6e360e01b81529051929350600160c01b90910464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af41580156124b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124dd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556040517ff247f9f8f9c455e0928cd8b5f34ef2567264cde4001db187c3e930c25e08fc1590610d0e908790879087908690615cf0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561257a5750825b90505f8267ffffffffffffffff1660011480156125965750303b155b9050811580156125a4575080155b156125c25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156125ec57845460ff60401b1916600160401b1785555b600280546001600160a01b0319166001600160a01b038816179055831561264e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b5f61266033610b52565b5f61266b8585614f46565b805490915064ffffffffff600160d01b82041690612692906001600160601b031685615016565b82546001600160601b0319166001600160601b03919091161782556126b8868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156126ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127239190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f6eea09d3401164101f559606e8c76aca972689ba8330a579bd6507b5889d153f9061278f9088908890889088908790615d20565b60405180910390a150509392505050565b5f6127aa33610b52565b5f6127b484612dbb565b80546001820154919250600160c01b900464ffffffffff16906127e0906001600160601b0316856145cc565b826001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561284e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128729190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556001808301549054604051631c5da14d60e11b81526001600160601b03888116600483015290921694507f317c91a4e8d5e9d4af7c5e856f79e6db430257dabe4a32a352ef58b9ba000f3d91879187916001600160a01b03909116906338bb429a906024015b602060405180830381865afa158015612915573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129399190615ca6565b604080516001600160601b03948516815292841660208401526001600160a01b0390911690820152908516606082015264ffffffffff8316608082015260a00160405180910390a1505092915050565b5f61299333610b52565b5f61299d84612dbb565b90505f6129ab85838661517d565b6001838101549054604051631c5da14d60e11b81526001600160601b03898116600483015290921695509192507fb144c2ad8fd690acb16f40becc8acde92c8694ef99952f875213f57ce1b7acef91879187916001600160a01b0316906338bb429a906024016128fa565b5f612a2033610b52565b5f612a2b8585614f46565b805490915064ffffffffff600160d01b82041690612a52906001600160601b0316856145cc565b82546001600160601b0319166001600160601b0391909116178255612a78868684615060565b73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae39190615c4e565b825464ffffffffff91909116600160d01b0264ffffffffff60d01b198216811784556040516001600160601b03918216919092161793507f05e52d64c754f7a526cf0704e8cfe26c04e8b656e7b493f61fbda7109a326f429061278f9088908890889088908790615d20565b5f80612b82612b655f546001600160a01b031690565b8630612b7460045f898b615d62565b612b7d91615d89565b6152ba565b91509150816115f95763ffffffff811615612c1b575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90612bdc90889088908890600401615dbf565b5f604051808303815f87803b158015612bf3575f80fd5b505af1158015612c05573d5f803e3d5ffd5b50505f805460ff60a01b19169055506115f99050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610f12565b5f80612c4983612dbb565b9150815f0160189054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612ca9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ccd9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782559092909150565b6001600160601b0381165f908152600b6020526040908190206001810154915163790a38ad60e01b8152600160881b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612d6f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d939190615c69565b156110895760405162af6eb360e61b81526001600160601b0383166004820152602401610f12565b6001600160601b0381165f90815260066020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015612e31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e559190615c69565b156110895760405163091c22d760e41b81526001600160601b0383166004820152602401610f12565b6002810154604051636a88f0a760e11b81526001600160a01b0390911660048201525f9073__$bf7bc340cbb9229ef1de2c568356e67902$__9063d511e14e90602401602060405180830381865af4158015612edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f009190615c69565b613283576001830154604051633682752160e21b8152600160601b90910464ffffffffff1660048201525f9073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c9073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063da09d48490602401602060405180830381865af4158015612f82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa69190615dfe565b612fb09042615e29565b6040518263ffffffff1660e01b8152600401612fce91815260200190565b602060405180830381865af4158015612fe9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061300d9190615c4e565b60405163790a38ad60e01b815264ffffffffff8216600482015290915073__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015613064573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130889190615c69565b156131005773__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156130d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130f89190615cc1565b915050613283565b60028301548454604051635bdf11e360e11b81526001600160a01b03909216600483015264ffffffffff831660248301526001600160601b0316604482015273__$f048dbd5170c0ac319fa0222065b281d84$__9063b7be23c690606401602060405180830381865af4158015613179573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061319d9190615cc1565b83549092506131bc90600160601b90046001600160601b0316836145cc565b8354600160601b600160c01b031916600160601b6001600160601b03928316810291909117855585546131f39291900416836145cc565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f61322485856153c2565b85546040519192507fed4853b0609e21bd14ba3f580ebca5d25c21bc024161fd250b6b33c768c1c8729161278f91899187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b9392505050565b8154604051630a4d29dd60e31b8152600160601b9091046001600160601b0316600482018190529073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af41580156132ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133109190615c69565b61328357600183015461332d906001600160601b03168383613b97565b6001830154613346906001600160601b03168383615459565b815461335b906001600160601b0316826145cc565b82546001600160601b0319166001600160601b039182161780845561338991600160601b9091041682615016565b8254600160601b600160c01b031916600160601b6001600160601b039283160217835583546133b99116826145cc565b83546001600160601b0319166001600160601b03919091161783556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af4158015613422573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134469190615cc1565b83546001600160601b0391909116600160601b02600160601b600160c01b03199091161783555f61347784846153c2565b90507f38151af1adffdc3651d3f7917ea0e90417d40e286b11741dd01a3e3228d96c598583865f015f9054906101000a90046001600160601b031673__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156134f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351d9190615cc1565b88546040516135409594939291600160c01b900464ffffffffff16908890615e3c565b60405180910390a1509392505050565b8254604051637931c81160e01b81526001600160601b03808416600483015290911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156135b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135d79190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613630573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136549190615c69565b610d865761366185612374565b156136a057835460405163187bc0bd60e21b81526001600160601b0387166004820152600160c01b90910464ffffffffff166024820152604401610f12565b82546136b5906001600160601b031682615016565b83546001600160601b0319166001600160601b0391821617845584546136dc911682615016565b84546001600160601b0319166001600160601b03919091161784555f61370285856153c2565b85546040519192507fed7a6a5cb58253a85b06a414d4fb43855fc759e9f19af28b775bf2b47ec7bf709161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150949350505050565b5f8061377d83612dbb565b90505f61378984614e83565b8054909150600160c01b900464ffffffffff165f6137a7868261195b565b83549091506137c09082906001600160601b03166145cc565b8354604051637931c81160e01b81526001600160601b038084166004830152600160601b909204909116602482015290955073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af415801561382c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138509190615cc1565b94508484600101600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156138c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138e69190615c4e565b845464ffffffffff60c01b198116600160c01b64ffffffffff93841602908117875560018701548654604080516001600160601b03808e168252600160601b9485900481166020830152939092048316908201528582166060820152928116911617608082015290831660a08201527f816866bb29a0d245f04a0179c957b4495d86447de93a8a4962fd3528510991429060c00160405180910390a150505050919050565b8254604051637931c81160e01b81526001600160601b038084166004830152600160601b90920490911660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__90637931c81190604401602060405180830381865af41580156139f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a1a9190615cc1565b604051630a4d29dd60e31b81526001600160601b038216600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a979190615c69565b610d86576001840154613ab4906001600160601b03168483615459565b8254613ad090600160601b90046001600160601b031682615016565b8354600160601b600160c01b031916600160601b6001600160601b0392831681029190911785558554613b07929190041682615016565b84546001600160601b0391909116600160601b02600160601b600160c01b03199091161784555f613b3885856153c2565b85546040519192507f39ee77ec34c101210194f9f2c8be592bf5ef303db8e68adf58b4fbe747a134829161376191899186916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b8154613bca90613bb0906001600160601b0316836145cc565b6001840154600160601b90046001600160601b031661469b565b15613c2b576001820154825484916001600160601b03600160601b909104811691613bf69116846145cc565b604051631946161f60e01b81526001600160601b03938416600482015291831660248301529091166044820152606401610f12565b505050565b5f8160010160119054906101000a900464ffffffffff16905073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb49190615c4e565b8260010160116101000a81548164ffffffffff021916908364ffffffffff16021790555073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613d1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d439190615c4e565b82600101600c6101000a81548164ffffffffff021916908364ffffffffff160217905550919050565b604051630a4d29dd60e31b81526001600160601b038216600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906352694ee890602401602060405180830381865af4158015613dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613de69190615c69565b6115f9576001840154613e03906001600160601b03168483613b97565b8254613e18906001600160601b0316826145cc565b83546001600160601b0319166001600160601b039182161784558454613e3f9116826145cc565b84546001600160601b0319166001600160601b0391909116178455600183015460405163e83da7ad60e01b815264ffffffffff8085166004830152600160c01b90920490911660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__9063e83da7ad90604401602060405180830381865af4158015613ec6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eea9190615c4e565b6040516330b8415f60e01b81526001600160601b038416600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af4158015613f43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f679190615c69565b8015613fe65750604051638d38cd4b60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__90638d38cd4b90602401602060405180830381865af4158015613fc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fe69190615c69565b156140985784546040516352bcc5a760e11b8152600160c01b90910464ffffffffff90811660048301528216602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015614051573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140759190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161785555b5f6140a386866153c2565b86546040519192507f15d4969bfd34a12fabf5d09d2615ffc4f81d206e7756d9e3c0919ba800d57e4191614102918a9187916001600160601b0380821692600160601b830490911691600160c01b900464ffffffffff16908890615e3c565b60405180910390a150505050505050565b60405163037c8cb160e51b815260ff8b16600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af4158015614163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141879190615c69565b156141aa57604051633c00d02760e01b815260ff8b166004820152602401610f12565b6141b4868661469b565b156141e457604051622a505160e91b81526001600160601b03808816600483015286166024820152604401610f12565b6141ee84846154b9565b1561421d576040516338157c8960e21b815264ffffffffff808616600483015284166024820152604401610f12565b6001600160a01b03808216908316111561425d57604051638ae671e360e01b81526001600160a01b03808416600483015282166024820152604401610f12565b5f60055f8c60ff1660ff1681526020019081526020015f2060020160149054906101000a900464ffffffffff1690508960055f8d60ff1660ff1681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508860055f8d60ff1660ff1681526020019081526020015f205f0160016101000a81548160ff0219169083151502179055508760055f8d60ff1660ff1681526020019081526020015f205f0160026101000a81548160ff0219169083151502179055508660055f8d60ff1660ff1681526020019081526020015f205f0160036101000a8154816001600160601b0302191690836001600160601b031602179055508560055f8d60ff1660ff1681526020019081526020015f205f01600f6101000a8154816001600160601b0302191690836001600160601b031602179055508460055f8d60ff1660ff1681526020019081526020015f205f01601b6101000a81548164ffffffffff021916908364ffffffffff1602179055508360055f8d60ff1660ff1681526020019081526020015f206001015f6101000a81548164ffffffffff021916908364ffffffffff1602179055508260055f8d60ff1660ff1681526020019081526020015f2060010160056101000a8154816001600160a01b0302191690836001600160a01b031602179055508160055f8d60ff1660ff1681526020019081526020015f206002015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156144d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144f69190615c4e565b60ff8c165f81815260056020908152604091829020600201805464ffffffffff60a01b1916600160a01b64ffffffffff9687160217905581519283528d1515908301528b15159082015289151560608201526001600160601b03808a166080830152881660a082015286821660c082015285821660e08201526001600160a01b0380861661010083015284166101208201529082166101408201527fb24c8b320e3f99e0aef480e78c342643583880e3f5a1c392a85a4c51f76799f8906101600160405180910390a15050505050505050505050565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb35906044015b602060405180830381865af415801561462d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a19190615cc1565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d6290604401611562565b604051632601631360e21b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906398058c4c90604401611562565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80156147e25760015460035460405163647b8c2f60e01b81526001600160a01b03928316600482015290821660248201526001600160601b038716604482015260ff8616606482015264ffffffffff8516608482015290831660a482015273__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063647b8c2f9060c4015f6040518083038186803b1580156147cb575f80fd5b505af41580156147dd573d5f803e3d5ffd5b505050505b6001600160601b0385165f90815260066020908152604091829020825163bc1b392d60e01b81529251909273__$3bac17678db7ae928afa209f2f44deec9c$__9263bc1b392d926004808401938290030181865af4158015614846573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061486a9190615cc1565b81546001600160601b0319166001600160601b03919091161781556040805163bc1b392d60e01b8152905173__$3bac17678db7ae928afa209f2f44deec9c$__9163bc1b392d9160048083019260209291908290030181865af41580156148d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148f79190615cc1565b815f01600c6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015614965573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149899190615cc1565b816001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156149f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a1b9190615cc1565b60018201805471ff0000000000ffffffffffffffffffffffff60601b1916600160601b6001600160601b039384160260ff60e81b191617600160e81b60ff8916021764ffffffffff60c01b1916600160c01b64ffffffffff8816021790556002820180546001600160a01b0319166001600160a01b0386161790556040516301f8588560e51b8152908716600482015273__$dacf551d137a232f87fa09e79113e25430$__90633f0b10a090602401602060405180830381865af4158015614ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b099190615cc1565b8160020160146101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015614b78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614b9c9190615c4e565b815f0160186101000a81548164ffffffffff021916908364ffffffffff160217905550614dbf60075f886001600160601b03166001600160601b031681526020019081526020015f208773__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96600273__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614c49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614c6d9190615cc1565b60405163046e44af60e11b81526001600160601b03909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e90602401602060405180830381865af4158015614cc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ce89190615dfe565b614cf29190615e7c565b6040518263ffffffff1660e01b8152600401614d1091815260200190565b602060405180830381865af4158015614d2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614d4f9190615cc1565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015614d96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614dba9190615cc1565b615501565b600480546040516346f0e8a760e11b81526001600160601b038916928101929092526001600160a01b031690638de1d14e906024015f604051808303815f87803b158015614e0b575f80fd5b505af1158015614e1d573d5f803e3d5ffd5b5050604080516001600160601b038a16815260ff8916602082015264ffffffffff8816918101919091526001600160a01b03861660608201527f086dbed771133d4ebbe0285c0df8231e94a664efbae4bd66c0e3e9f11c7fd0f092506080019050612645565b6001600160601b0381165f90815260076020526040908190208054915163790a38ad60e01b8152600160c01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614f1d9190615c69565b15611089576040516384bdfa9560e01b81526001600160601b0383166004820152602401610f12565b6001600160601b0382165f9081526008602090815260408083206001600160a01b0385168452909152908190208054915163790a38ad60e01b8152600160d01b90920464ffffffffff1660048301529073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__9063790a38ad90602401602060405180830381865af4158015614fd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614ff49190615c69565b156115a457828260405163688e635d60e11b8152600401610f12929190615c84565b6040516363cf551160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063c79eaa2290604401614612565b8054600160c01b900461ffff1681601861507983615e9b565b82546101009290920a61ffff8181021990931691831602179091556002548354604051638755a73f60e01b81526001600160601b0380891660048301526001600160a01b038881166024840152600160c01b84049095166044830152600160601b83048116606483015290911660848201525f9350911690638755a73f9060a401602060405180830381865afa158015615115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906151399190615c69565b90508015610dca57815461ffff60c01b19600160601b6001600160601b03831602166dffffffffffffffffffffffffffff60601b199091161782556115f984613772565b81546001830154600160c01b90910464ffffffffff16906151a89083906001600160601b031661469b565b156151e75760018301546040516301a4b29960e11b81526001600160601b03808716600483015291821660248201529083166044820152606401610f12565b60018301546151ff906001600160601b031683615016565b836001015f6101000a8154816001600160601b0302191690836001600160601b0316021790555073__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561526d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906152919190615c4e565b835464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161790925550919050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516153289190615ebb565b5f60405180830381855afa9150503d805f8114615360576040519150601f19603f3d011682016040523d82523d5f602084013e615365565b606091505b509150915081156153b7576040815110615397578080602001905181019061538d9190615ed1565b90945092506153b7565b60208151106153b757808060200190518101906153b49190615c69565b93505b505094509492505050565b5f73__$f55ca14f1ddce1b88fe30d23ae45f595f4$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af415801561540a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061542e9190615c4e565b825464ffffffffff91909116600160c01b0264ffffffffff60c01b199091161782556115a183613c30565b5f61546584848461517d565b60018401546040519192507fc0f991fc396647cd10937655916d61916ae77295c1d6a67e335bc8f502417491916154ab91879186916001600160601b0316908690615cf0565b60405180910390a150505050565b6040516383ffcdef60e01b815264ffffffffff8084166004830152821660248201525f9073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401611562565b83546001600160601b038381166001600160c01b0319831617600160601b9184169190910217855560408051639fa6a6e360e01b81529051600160c01b90920464ffffffffff169173__$f55ca14f1ddce1b88fe30d23ae45f595f4$__91639fa6a6e39160048083019260209291908290030181865af4158015615587573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906155ab9190615c4e565b855464ffffffffff91909116600160c01b0264ffffffffff60c01b19821681178088556040517f05c35323706f609643b5b81348a27fedbbaf7ae364b4d43f69a8853c024f204793610d0e9389936001600160601b039182169282169290921792600160601b90920416908690615cf0565b6001600160601b0381168114615631575f80fd5b50565b6001600160a01b0381168114615631575f80fd5b5f8060408385031215615659575f80fd5b82356156648161561d565b9150602083013561567481615634565b809150509250929050565b5f6020828403121561568f575f80fd5b81356132838161561d565b8015158114615631575f80fd5b5f805f80608085870312156156ba575f80fd5b84356156c58161561d565b935060208501356156d58161569a565b925060408501356156e58161569a565b915060608501356156f58161561d565b939692955090935050565b5f60208284031215615710575f80fd5b813561328381615634565b5f805f6060848603121561572d575f80fd5b83356157388161561d565b925060208401356157488161569a565b915060408401356157588161561d565b809150509250925092565b5f805f8060808587031215615776575f80fd5b84356157818161561d565b935060208501356157918161561d565b925060408501356156e581615634565b5f80604083850312156157b2575f80fd5b82356157bd8161561d565b915060208301356156748161569a565b64ffffffffff81168114615631575f80fd5b5f805f805f60a086880312156157f3575f80fd5b85356157fe8161561d565b9450602086013561580e8161569a565b9350604086013561581e8161569a565b9250606086013561582e816157cd565b9150608086013561583e8161561d565b809150509295509295909350565b803560ff81168114611089575f80fd5b5f805f805f805f805f806101408b8d031215615876575f80fd5b61587f8b61584c565b995060208b013561588f8161569a565b985060408b013561589f8161569a565b975060608b01356158af8161569a565b965060808b01356158bf8161561d565b955060a08b01356158cf8161561d565b945060c08b01356158df816157cd565b935060e08b01356158ef816157cd565b92506101008b013561590081615634565b91506101208b013561591181615634565b809150509295989b9194979a5092959850565b5f8060408385031215615935575f80fd5b82356159408161561d565b91506020830135615674816157cd565b5f8060408385031215615961575f80fd5b823561596c8161561d565b915060208301356156748161561d565b5f805f806080858703121561598f575f80fd5b843561599a8161561d565b93506159a86020860161584c565b925060408501356159b8816157cd565b915060608501356156f581615634565b5f805f606084860312156159da575f80fd5b83356159e58161561d565b925060208401356159f581615634565b9150604084013561575881615634565b81516001600160601b03168152602080830151610120830191615a32908401826001600160601b03169052565b506040830151615a4b604084018264ffffffffff169052565b506060830151615a6660608401826001600160601b03169052565b506080830151615a8160808401826001600160601b03169052565b5060a0830151615a9a60a084018264ffffffffff169052565b5060c0830151615aaf60c084018260ff169052565b5060e0830151615aca60e08401826001600160a01b03169052565b50610100830151615ae76101008401826001600160601b03169052565b5092915050565b5f805f60608486031215615b00575f80fd5b8335615b0b8161561d565b925060208401356157488161561d565b5f805f60608486031215615b2d575f80fd5b8335615b388161561d565b9250602084013561574881615634565b5f60208284031215615b58575f80fd5b6115a18261584c565b81511515815261014081016020830151615b7f602084018215159052565b506040830151615b93604084018215159052565b506060830151615bae60608401826001600160601b03169052565b506080830151615bc960808401826001600160601b03169052565b5060a0830151615be260a084018264ffffffffff169052565b5060c0830151615bfb60c084018264ffffffffff169052565b5060e0830151615c1660e08401826001600160a01b03169052565b50610100830151615c336101008401826001600160a01b03169052565b50610120830151615ae761012084018264ffffffffff169052565b5f60208284031215615c5e575f80fd5b8151613283816157cd565b5f60208284031215615c79575f80fd5b81516132838161569a565b6001600160601b039290921682526001600160a01b0316602082015260400190565b5f60208284031215615cb6575f80fd5b815161328381615634565b5f60208284031215615cd1575f80fd5b81516132838161561d565b634e487b7160e01b5f52603260045260245ffd5b6001600160601b03948516815292841660208401529216604082015264ffffffffff909116606082015260800190565b6001600160601b0395861681526001600160a01b039490941660208501529184166040840152909216606082015264ffffffffff909116608082015260a00190565b5f8085851115615d70575f80fd5b83861115615d7c575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015615ae7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60208284031215615e0e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156115a4576115a4615e15565b6001600160601b039687168152948616602086015292851660408501529316606083015264ffffffffff928316608083015290911660a082015260c00190565b5f82615e9657634e487b7160e01b5f52601260045260245ffd5b500490565b5f61ffff821661ffff8103615eb257615eb2615e15565b60010192915050565b5f82518060208501845e5f920191825250919050565b5f8060408385031215615ee2575f80fd5b8251615eed8161569a565b602084015190925063ffffffff81168114615674575f80fdfea2646970667358221220d914c36cfac0dbd40447bcb21a99ca78595960766af22aa5e8906f934651e94664736f6c634300081a0033",
         | 
| 1650 2225 | 
             
              "linkReferences": {
         | 
| 2226 | 
            +
                "contracts/staking/StakingLib.sol": {
         | 
| 2227 | 
            +
                  "StakingLib": [
         | 
| 2228 | 
            +
                    {
         | 
| 2229 | 
            +
                      "length": 20,
         | 
| 2230 | 
            +
                      "start": 18688
         | 
| 2231 | 
            +
                    }
         | 
| 2232 | 
            +
                  ]
         | 
| 2233 | 
            +
                },
         | 
| 1651 2234 | 
             
                "contracts/staking/TargetManagerLib.sol": {
         | 
| 1652 2235 | 
             
                  "TargetManagerLib": [
         | 
| 1653 2236 | 
             
                    {
         | 
| 1654 2237 | 
             
                      "length": 20,
         | 
| 1655 | 
            -
                      "start":  | 
| 2238 | 
            +
                      "start": 1297
         | 
| 2239 | 
            +
                    },
         | 
| 2240 | 
            +
                    {
         | 
| 2241 | 
            +
                      "length": 20,
         | 
| 2242 | 
            +
                      "start": 1404
         | 
| 2243 | 
            +
                    },
         | 
| 2244 | 
            +
                    {
         | 
| 2245 | 
            +
                      "length": 20,
         | 
| 2246 | 
            +
                      "start": 3448
         | 
| 2247 | 
            +
                    },
         | 
| 2248 | 
            +
                    {
         | 
| 2249 | 
            +
                      "length": 20,
         | 
| 2250 | 
            +
                      "start": 9078
         | 
| 2251 | 
            +
                    },
         | 
| 2252 | 
            +
                    {
         | 
| 2253 | 
            +
                      "length": 20,
         | 
| 2254 | 
            +
                      "start": 11966
         | 
| 1656 2255 | 
             
                    },
         | 
| 1657 2256 | 
             
                    {
         | 
| 1658 2257 | 
             
                      "length": 20,
         | 
| 1659 | 
            -
                      "start":  | 
| 2258 | 
            +
                      "start": 24407
         | 
| 1660 2259 | 
             
                    }
         | 
| 1661 2260 | 
             
                  ]
         | 
| 1662 2261 | 
             
                },
         | 
| @@ -1664,227 +2263,327 @@ | |
| 1664 2263 | 
             
                  "AmountLib": [
         | 
| 1665 2264 | 
             
                    {
         | 
| 1666 2265 | 
             
                      "length": 20,
         | 
| 1667 | 
            -
                      "start":  | 
| 2266 | 
            +
                      "start": 513
         | 
| 1668 2267 | 
             
                    },
         | 
| 1669 2268 | 
             
                    {
         | 
| 1670 2269 | 
             
                      "length": 20,
         | 
| 1671 | 
            -
                      "start":  | 
| 2270 | 
            +
                      "start": 620
         | 
| 1672 2271 | 
             
                    },
         | 
| 1673 2272 | 
             
                    {
         | 
| 1674 2273 | 
             
                      "length": 20,
         | 
| 1675 | 
            -
                      "start":  | 
| 2274 | 
            +
                      "start": 1558
         | 
| 1676 2275 | 
             
                    },
         | 
| 1677 2276 | 
             
                    {
         | 
| 1678 2277 | 
             
                      "length": 20,
         | 
| 1679 | 
            -
                      "start":  | 
| 2278 | 
            +
                      "start": 1652
         | 
| 1680 2279 | 
             
                    },
         | 
| 1681 2280 | 
             
                    {
         | 
| 1682 2281 | 
             
                      "length": 20,
         | 
| 1683 | 
            -
                      "start":  | 
| 2282 | 
            +
                      "start": 3567
         | 
| 1684 2283 | 
             
                    },
         | 
| 1685 2284 | 
             
                    {
         | 
| 1686 2285 | 
             
                      "length": 20,
         | 
| 1687 | 
            -
                      "start":  | 
| 2286 | 
            +
                      "start": 3703
         | 
| 1688 2287 | 
             
                    },
         | 
| 1689 2288 | 
             
                    {
         | 
| 1690 2289 | 
             
                      "length": 20,
         | 
| 1691 | 
            -
                      "start":  | 
| 2290 | 
            +
                      "start": 3840
         | 
| 1692 2291 | 
             
                    },
         | 
| 1693 2292 | 
             
                    {
         | 
| 1694 2293 | 
             
                      "length": 20,
         | 
| 1695 | 
            -
                      "start":  | 
| 2294 | 
            +
                      "start": 3986
         | 
| 1696 2295 | 
             
                    },
         | 
| 1697 2296 | 
             
                    {
         | 
| 1698 2297 | 
             
                      "length": 20,
         | 
| 1699 | 
            -
                      "start":  | 
| 2298 | 
            +
                      "start": 4555
         | 
| 1700 2299 | 
             
                    },
         | 
| 1701 2300 | 
             
                    {
         | 
| 1702 2301 | 
             
                      "length": 20,
         | 
| 1703 | 
            -
                      "start":  | 
| 2302 | 
            +
                      "start": 4583
         | 
| 1704 2303 | 
             
                    },
         | 
| 1705 2304 | 
             
                    {
         | 
| 1706 2305 | 
             
                      "length": 20,
         | 
| 1707 | 
            -
                      "start":  | 
| 2306 | 
            +
                      "start": 4719
         | 
| 1708 2307 | 
             
                    },
         | 
| 1709 2308 | 
             
                    {
         | 
| 1710 2309 | 
             
                      "length": 20,
         | 
| 1711 | 
            -
                      "start":  | 
| 2310 | 
            +
                      "start": 4916
         | 
| 1712 2311 | 
             
                    },
         | 
| 1713 2312 | 
             
                    {
         | 
| 1714 2313 | 
             
                      "length": 20,
         | 
| 1715 | 
            -
                      "start":  | 
| 2314 | 
            +
                      "start": 5269
         | 
| 1716 2315 | 
             
                    },
         | 
| 1717 2316 | 
             
                    {
         | 
| 1718 2317 | 
             
                      "length": 20,
         | 
| 1719 | 
            -
                      "start":  | 
| 2318 | 
            +
                      "start": 10840
         | 
| 1720 2319 | 
             
                    },
         | 
| 1721 2320 | 
             
                    {
         | 
| 1722 2321 | 
             
                      "length": 20,
         | 
| 1723 | 
            -
                      "start":  | 
| 2322 | 
            +
                      "start": 10981
         | 
| 1724 2323 | 
             
                    },
         | 
| 1725 2324 | 
             
                    {
         | 
| 1726 2325 | 
             
                      "length": 20,
         | 
| 1727 | 
            -
                      "start":  | 
| 2326 | 
            +
                      "start": 12687
         | 
| 1728 2327 | 
             
                    },
         | 
| 1729 2328 | 
             
                    {
         | 
| 1730 2329 | 
             
                      "length": 20,
         | 
| 1731 | 
            -
                      "start":  | 
| 1732 | 
            -
                    }
         | 
| 1733 | 
            -
             | 
| 1734 | 
            -
             | 
| 1735 | 
            -
             | 
| 1736 | 
            -
             | 
| 2330 | 
            +
                      "start": 12802
         | 
| 2331 | 
            +
                    },
         | 
| 2332 | 
            +
                    {
         | 
| 2333 | 
            +
                      "length": 20,
         | 
| 2334 | 
            +
                      "start": 13062
         | 
| 2335 | 
            +
                    },
         | 
| 2336 | 
            +
                    {
         | 
| 2337 | 
            +
                      "length": 20,
         | 
| 2338 | 
            +
                      "start": 13346
         | 
| 2339 | 
            +
                    },
         | 
| 2340 | 
            +
                    {
         | 
| 2341 | 
            +
                      "length": 20,
         | 
| 2342 | 
            +
                      "start": 14803
         | 
| 2343 | 
            +
                    },
         | 
| 2344 | 
            +
                    {
         | 
| 2345 | 
            +
                      "length": 20,
         | 
| 2346 | 
            +
                      "start": 18510
         | 
| 2347 | 
            +
                    },
         | 
| 2348 | 
            +
                    {
         | 
| 2349 | 
            +
                      "length": 20,
         | 
| 2350 | 
            +
                      "start": 19059
         | 
| 2351 | 
            +
                    },
         | 
| 2352 | 
            +
                    {
         | 
| 2353 | 
            +
                      "length": 20,
         | 
| 2354 | 
            +
                      "start": 19365
         | 
| 2355 | 
            +
                    },
         | 
| 2356 | 
            +
                    {
         | 
| 2357 | 
            +
                      "length": 20,
         | 
| 2358 | 
            +
                      "start": 19571
         | 
| 2359 | 
            +
                    },
         | 
| 1737 2360 | 
             
                    {
         | 
| 1738 2361 | 
             
                      "length": 20,
         | 
| 1739 | 
            -
                      "start":  | 
| 2362 | 
            +
                      "start": 19770
         | 
| 1740 2363 | 
             
                    },
         | 
| 1741 2364 | 
             
                    {
         | 
| 1742 2365 | 
             
                      "length": 20,
         | 
| 1743 | 
            -
                      "start":  | 
| 2366 | 
            +
                      "start": 19895
         | 
| 1744 2367 | 
             
                    },
         | 
| 1745 2368 | 
             
                    {
         | 
| 1746 2369 | 
             
                      "length": 20,
         | 
| 1747 | 
            -
                      "start":  | 
| 2370 | 
            +
                      "start": 20403
         | 
| 1748 2371 | 
             
                    },
         | 
| 1749 2372 | 
             
                    {
         | 
| 1750 2373 | 
             
                      "length": 20,
         | 
| 1751 | 
            -
                      "start":  | 
| 2374 | 
            +
                      "start": 20861
         | 
| 1752 2375 | 
             
                    },
         | 
| 1753 2376 | 
             
                    {
         | 
| 1754 2377 | 
             
                      "length": 20,
         | 
| 1755 | 
            -
                      "start":  | 
| 2378 | 
            +
                      "start": 20986
         | 
| 1756 2379 | 
             
                    },
         | 
| 1757 2380 | 
             
                    {
         | 
| 1758 2381 | 
             
                      "length": 20,
         | 
| 1759 | 
            -
                      "start":  | 
| 2382 | 
            +
                      "start": 21833
         | 
| 1760 2383 | 
             
                    },
         | 
| 1761 2384 | 
             
                    {
         | 
| 1762 2385 | 
             
                      "length": 20,
         | 
| 1763 | 
            -
                      "start":  | 
| 2386 | 
            +
                      "start": 22218
         | 
| 1764 2387 | 
             
                    },
         | 
| 1765 2388 | 
             
                    {
         | 
| 1766 2389 | 
             
                      "length": 20,
         | 
| 1767 | 
            -
                      "start":  | 
| 2390 | 
            +
                      "start": 23987
         | 
| 1768 2391 | 
             
                    },
         | 
| 1769 2392 | 
             
                    {
         | 
| 1770 2393 | 
             
                      "length": 20,
         | 
| 1771 | 
            -
                      "start":  | 
| 2394 | 
            +
                      "start": 24120
         | 
| 1772 2395 | 
             
                    },
         | 
| 1773 2396 | 
             
                    {
         | 
| 1774 2397 | 
             
                      "length": 20,
         | 
| 1775 | 
            -
                      "start":  | 
| 2398 | 
            +
                      "start": 24194
         | 
| 1776 2399 | 
             
                    },
         | 
| 1777 2400 | 
             
                    {
         | 
| 1778 2401 | 
             
                      "length": 20,
         | 
| 1779 | 
            -
                      "start":  | 
| 2402 | 
            +
                      "start": 24526
         | 
| 1780 2403 | 
             
                    },
         | 
| 1781 2404 | 
             
                    {
         | 
| 1782 2405 | 
             
                      "length": 20,
         | 
| 1783 | 
            -
                      "start":  | 
| 2406 | 
            +
                      "start": 24662
         | 
| 1784 2407 | 
             
                    },
         | 
| 1785 2408 | 
             
                    {
         | 
| 1786 2409 | 
             
                      "length": 20,
         | 
| 1787 | 
            -
                      "start":  | 
| 2410 | 
            +
                      "start": 24799
         | 
| 1788 2411 | 
             
                    },
         | 
| 1789 2412 | 
             
                    {
         | 
| 1790 2413 | 
             
                      "length": 20,
         | 
| 1791 | 
            -
                      "start":  | 
| 2414 | 
            +
                      "start": 24945
         | 
| 1792 2415 | 
             
                    },
         | 
| 1793 2416 | 
             
                    {
         | 
| 1794 2417 | 
             
                      "length": 20,
         | 
| 1795 | 
            -
                      "start":  | 
| 2418 | 
            +
                      "start": 25511
         | 
| 1796 2419 | 
             
                    },
         | 
| 1797 2420 | 
             
                    {
         | 
| 1798 2421 | 
             
                      "length": 20,
         | 
| 1799 | 
            -
                      "start":  | 
| 2422 | 
            +
                      "start": 25539
         | 
| 1800 2423 | 
             
                    },
         | 
| 1801 2424 | 
             
                    {
         | 
| 1802 2425 | 
             
                      "length": 20,
         | 
| 1803 | 
            -
                      "start":  | 
| 2426 | 
            +
                      "start": 25675
         | 
| 1804 2427 | 
             
                    },
         | 
| 1805 2428 | 
             
                    {
         | 
| 1806 2429 | 
             
                      "length": 20,
         | 
| 1807 | 
            -
                      "start":  | 
| 2430 | 
            +
                      "start": 25872
         | 
| 2431 | 
            +
                    },
         | 
| 2432 | 
            +
                    {
         | 
| 2433 | 
            +
                      "length": 20,
         | 
| 2434 | 
            +
                      "start": 26621
         | 
| 1808 2435 | 
             
                    }
         | 
| 1809 2436 | 
             
                  ]
         | 
| 1810 2437 | 
             
                },
         | 
| 1811 | 
            -
                "contracts/type/ | 
| 1812 | 
            -
                  " | 
| 2438 | 
            +
                "contracts/type/Blocknumber.sol": {
         | 
| 2439 | 
            +
                  "BlocknumberLib": [
         | 
| 1813 2440 | 
             
                    {
         | 
| 1814 2441 | 
             
                      "length": 20,
         | 
| 1815 | 
            -
                      "start":  | 
| 2442 | 
            +
                      "start": 3033
         | 
| 1816 2443 | 
             
                    },
         | 
| 1817 2444 | 
             
                    {
         | 
| 1818 2445 | 
             
                      "length": 20,
         | 
| 1819 | 
            -
                      "start":  | 
| 2446 | 
            +
                      "start": 4374
         | 
| 1820 2447 | 
             
                    },
         | 
| 1821 2448 | 
             
                    {
         | 
| 1822 2449 | 
             
                      "length": 20,
         | 
| 1823 | 
            -
                      "start":  | 
| 2450 | 
            +
                      "start": 5524
         | 
| 1824 2451 | 
             
                    },
         | 
| 1825 2452 | 
             
                    {
         | 
| 1826 2453 | 
             
                      "length": 20,
         | 
| 1827 | 
            -
                      "start":  | 
| 2454 | 
            +
                      "start": 9206
         | 
| 1828 2455 | 
             
                    },
         | 
| 1829 2456 | 
             
                    {
         | 
| 1830 2457 | 
             
                      "length": 20,
         | 
| 1831 | 
            -
                      "start":  | 
| 2458 | 
            +
                      "start": 9811
         | 
| 1832 2459 | 
             
                    },
         | 
| 1833 2460 | 
             
                    {
         | 
| 1834 2461 | 
             
                      "length": 20,
         | 
| 1835 | 
            -
                      "start":  | 
| 2462 | 
            +
                      "start": 10098
         | 
| 1836 2463 | 
             
                    },
         | 
| 1837 2464 | 
             
                    {
         | 
| 1838 2465 | 
             
                      "length": 20,
         | 
| 1839 | 
            -
                      "start":  | 
| 2466 | 
            +
                      "start": 10470
         | 
| 1840 2467 | 
             
                    },
         | 
| 1841 2468 | 
             
                    {
         | 
| 1842 2469 | 
             
                      "length": 20,
         | 
| 1843 | 
            -
                      "start":  | 
| 2470 | 
            +
                      "start": 10637
         | 
| 1844 2471 | 
             
                    },
         | 
| 1845 2472 | 
             
                    {
         | 
| 1846 2473 | 
             
                      "length": 20,
         | 
| 1847 | 
            -
                      "start":  | 
| 2474 | 
            +
                      "start": 11523
         | 
| 1848 2475 | 
             
                    },
         | 
| 1849 2476 | 
             
                    {
         | 
| 1850 2477 | 
             
                      "length": 20,
         | 
| 1851 | 
            -
                      "start":  | 
| 2478 | 
            +
                      "start": 12102
         | 
| 1852 2479 | 
             
                    },
         | 
| 1853 2480 | 
             
                    {
         | 
| 1854 2481 | 
             
                      "length": 20,
         | 
| 1855 | 
            -
                      "start":  | 
| 1856 | 
            -
                    }
         | 
| 1857 | 
            -
             | 
| 1858 | 
            -
             | 
| 1859 | 
            -
             | 
| 1860 | 
            -
             | 
| 2482 | 
            +
                      "start": 13929
         | 
| 2483 | 
            +
                    },
         | 
| 2484 | 
            +
                    {
         | 
| 2485 | 
            +
                      "length": 20,
         | 
| 2486 | 
            +
                      "start": 14125
         | 
| 2487 | 
            +
                    },
         | 
| 2488 | 
            +
                    {
         | 
| 2489 | 
            +
                      "length": 20,
         | 
| 2490 | 
            +
                      "start": 14356
         | 
| 2491 | 
            +
                    },
         | 
| 2492 | 
            +
                    {
         | 
| 2493 | 
            +
                      "length": 20,
         | 
| 2494 | 
            +
                      "start": 14675
         | 
| 2495 | 
            +
                    },
         | 
| 2496 | 
            +
                    {
         | 
| 2497 | 
            +
                      "length": 20,
         | 
| 2498 | 
            +
                      "start": 14953
         | 
| 2499 | 
            +
                    },
         | 
| 2500 | 
            +
                    {
         | 
| 2501 | 
            +
                      "length": 20,
         | 
| 2502 | 
            +
                      "start": 15420
         | 
| 2503 | 
            +
                    },
         | 
| 2504 | 
            +
                    {
         | 
| 2505 | 
            +
                      "length": 20,
         | 
| 2506 | 
            +
                      "start": 15993
         | 
| 2507 | 
            +
                    },
         | 
| 2508 | 
            +
                    {
         | 
| 2509 | 
            +
                      "length": 20,
         | 
| 2510 | 
            +
                      "start": 16328
         | 
| 2511 | 
            +
                    },
         | 
| 2512 | 
            +
                    {
         | 
| 2513 | 
            +
                      "length": 20,
         | 
| 2514 | 
            +
                      "start": 16953
         | 
| 2515 | 
            +
                    },
         | 
| 2516 | 
            +
                    {
         | 
| 2517 | 
            +
                      "length": 20,
         | 
| 2518 | 
            +
                      "start": 17443
         | 
| 2519 | 
            +
                    },
         | 
| 2520 | 
            +
                    {
         | 
| 2521 | 
            +
                      "length": 20,
         | 
| 2522 | 
            +
                      "start": 17654
         | 
| 2523 | 
            +
                    },
         | 
| 2524 | 
            +
                    {
         | 
| 2525 | 
            +
                      "length": 20,
         | 
| 2526 | 
            +
                      "start": 17848
         | 
| 2527 | 
            +
                    },
         | 
| 2528 | 
            +
                    {
         | 
| 2529 | 
            +
                      "length": 20,
         | 
| 2530 | 
            +
                      "start": 20540
         | 
| 2531 | 
            +
                    },
         | 
| 2532 | 
            +
                    {
         | 
| 2533 | 
            +
                      "length": 20,
         | 
| 2534 | 
            +
                      "start": 21514
         | 
| 2535 | 
            +
                    },
         | 
| 2536 | 
            +
                    {
         | 
| 2537 | 
            +
                      "length": 20,
         | 
| 2538 | 
            +
                      "start": 23628
         | 
| 2539 | 
            +
                    },
         | 
| 2540 | 
            +
                    {
         | 
| 2541 | 
            +
                      "length": 20,
         | 
| 2542 | 
            +
                      "start": 25330
         | 
| 2543 | 
            +
                    },
         | 
| 1861 2544 | 
             
                    {
         | 
| 1862 2545 | 
             
                      "length": 20,
         | 
| 1863 | 
            -
                      "start":  | 
| 2546 | 
            +
                      "start": 26240
         | 
| 1864 2547 | 
             
                    },
         | 
| 1865 2548 | 
             
                    {
         | 
| 1866 2549 | 
             
                      "length": 20,
         | 
| 1867 | 
            -
                      "start":  | 
| 2550 | 
            +
                      "start": 26455
         | 
| 1868 2551 | 
             
                    },
         | 
| 1869 2552 | 
             
                    {
         | 
| 1870 2553 | 
             
                      "length": 20,
         | 
| 1871 | 
            -
                      "start":  | 
| 2554 | 
            +
                      "start": 27111
         | 
| 1872 2555 | 
             
                    },
         | 
| 1873 2556 | 
             
                    {
         | 
| 1874 2557 | 
             
                      "length": 20,
         | 
| 1875 | 
            -
                      "start":  | 
| 2558 | 
            +
                      "start": 27524
         | 
| 1876 2559 | 
             
                    },
         | 
| 1877 2560 | 
             
                    {
         | 
| 1878 2561 | 
             
                      "length": 20,
         | 
| 1879 | 
            -
                      "start":  | 
| 2562 | 
            +
                      "start": 27914
         | 
| 2563 | 
            +
                    }
         | 
| 2564 | 
            +
                  ]
         | 
| 2565 | 
            +
                },
         | 
| 2566 | 
            +
                "contracts/type/ChainId.sol": {
         | 
| 2567 | 
            +
                  "ChainIdLib": [
         | 
| 2568 | 
            +
                    {
         | 
| 2569 | 
            +
                      "length": 20,
         | 
| 2570 | 
            +
                      "start": 4240
         | 
| 1880 2571 | 
             
                    },
         | 
| 1881 2572 | 
             
                    {
         | 
| 1882 2573 | 
             
                      "length": 20,
         | 
| 1883 | 
            -
                      "start":  | 
| 2574 | 
            +
                      "start": 14500
         | 
| 1884 2575 | 
             
                    },
         | 
| 1885 2576 | 
             
                    {
         | 
| 1886 2577 | 
             
                      "length": 20,
         | 
| 1887 | 
            -
                      "start":  | 
| 2578 | 
            +
                      "start": 25196
         | 
| 2579 | 
            +
                    }
         | 
| 2580 | 
            +
                  ]
         | 
| 2581 | 
            +
                },
         | 
| 2582 | 
            +
                "contracts/type/NftId.sol": {
         | 
| 2583 | 
            +
                  "NftIdLib": [
         | 
| 2584 | 
            +
                    {
         | 
| 2585 | 
            +
                      "length": 20,
         | 
| 2586 | 
            +
                      "start": 1201
         | 
| 1888 2587 | 
             
                    }
         | 
| 1889 2588 | 
             
                  ]
         | 
| 1890 2589 | 
             
                },
         | 
| @@ -1892,43 +2591,43 @@ | |
| 1892 2591 | 
             
                  "LibNftIdSet": [
         | 
| 1893 2592 | 
             
                    {
         | 
| 1894 2593 | 
             
                      "length": 20,
         | 
| 1895 | 
            -
                      "start":  | 
| 2594 | 
            +
                      "start": 30972
         | 
| 1896 2595 | 
             
                    },
         | 
| 1897 2596 | 
             
                    {
         | 
| 1898 2597 | 
             
                      "length": 20,
         | 
| 1899 | 
            -
                      "start":  | 
| 2598 | 
            +
                      "start": 31089
         | 
| 1900 2599 | 
             
                    },
         | 
| 1901 2600 | 
             
                    {
         | 
| 1902 2601 | 
             
                      "length": 20,
         | 
| 1903 | 
            -
                      "start":  | 
| 2602 | 
            +
                      "start": 31219
         | 
| 1904 2603 | 
             
                    },
         | 
| 1905 2604 | 
             
                    {
         | 
| 1906 2605 | 
             
                      "length": 20,
         | 
| 1907 | 
            -
                      "start":  | 
| 2606 | 
            +
                      "start": 31351
         | 
| 1908 2607 | 
             
                    },
         | 
| 1909 2608 | 
             
                    {
         | 
| 1910 2609 | 
             
                      "length": 20,
         | 
| 1911 | 
            -
                      "start":  | 
| 2610 | 
            +
                      "start": 31488
         | 
| 1912 2611 | 
             
                    },
         | 
| 1913 2612 | 
             
                    {
         | 
| 1914 2613 | 
             
                      "length": 20,
         | 
| 1915 | 
            -
                      "start":  | 
| 2614 | 
            +
                      "start": 31596
         | 
| 1916 2615 | 
             
                    },
         | 
| 1917 2616 | 
             
                    {
         | 
| 1918 2617 | 
             
                      "length": 20,
         | 
| 1919 | 
            -
                      "start":  | 
| 2618 | 
            +
                      "start": 31778
         | 
| 1920 2619 | 
             
                    },
         | 
| 1921 2620 | 
             
                    {
         | 
| 1922 2621 | 
             
                      "length": 20,
         | 
| 1923 | 
            -
                      "start":  | 
| 2622 | 
            +
                      "start": 31836
         | 
| 1924 2623 | 
             
                    },
         | 
| 1925 2624 | 
             
                    {
         | 
| 1926 2625 | 
             
                      "length": 20,
         | 
| 1927 | 
            -
                      "start":  | 
| 2626 | 
            +
                      "start": 31958
         | 
| 1928 2627 | 
             
                    },
         | 
| 1929 2628 | 
             
                    {
         | 
| 1930 2629 | 
             
                      "length": 20,
         | 
| 1931 | 
            -
                      "start":  | 
| 2630 | 
            +
                      "start": 32023
         | 
| 1932 2631 | 
             
                    }
         | 
| 1933 2632 | 
             
                  ]
         | 
| 1934 2633 | 
             
                },
         | 
| @@ -1936,47 +2635,55 @@ | |
| 1936 2635 | 
             
                  "ObjectTypeLib": [
         | 
| 1937 2636 | 
             
                    {
         | 
| 1938 2637 | 
             
                      "length": 20,
         | 
| 1939 | 
            -
                      "start":  | 
| 2638 | 
            +
                      "start": 2167
         | 
| 1940 2639 | 
             
                    },
         | 
| 1941 2640 | 
             
                    {
         | 
| 1942 2641 | 
             
                      "length": 20,
         | 
| 1943 | 
            -
                      "start":  | 
| 2642 | 
            +
                      "start": 22762
         | 
| 1944 2643 | 
             
                    }
         | 
| 1945 2644 | 
             
                  ]
         | 
| 1946 2645 | 
             
                },
         | 
| 1947 | 
            -
                "contracts/type/ | 
| 1948 | 
            -
                  " | 
| 2646 | 
            +
                "contracts/type/Seconds.sol": {
         | 
| 2647 | 
            +
                  "SecondsLib": [
         | 
| 2648 | 
            +
                    {
         | 
| 2649 | 
            +
                      "length": 20,
         | 
| 2650 | 
            +
                      "start": 727
         | 
| 2651 | 
            +
                    },
         | 
| 1949 2652 | 
             
                    {
         | 
| 1950 2653 | 
             
                      "length": 20,
         | 
| 1951 | 
            -
                      "start":  | 
| 2654 | 
            +
                      "start": 834
         | 
| 1952 2655 | 
             
                    },
         | 
| 1953 2656 | 
             
                    {
         | 
| 1954 2657 | 
             
                      "length": 20,
         | 
| 1955 | 
            -
                      "start":  | 
| 2658 | 
            +
                      "start": 1759
         | 
| 1956 2659 | 
             
                    },
         | 
| 1957 2660 | 
             
                    {
         | 
| 1958 2661 | 
             
                      "length": 20,
         | 
| 1959 | 
            -
                      "start":  | 
| 2662 | 
            +
                      "start": 1866
         | 
| 1960 2663 | 
             
                    },
         | 
| 1961 2664 | 
             
                    {
         | 
| 1962 2665 | 
             
                      "length": 20,
         | 
| 1963 | 
            -
                      "start":  | 
| 2666 | 
            +
                      "start": 5407
         | 
| 1964 2667 | 
             
                    },
         | 
| 1965 2668 | 
             
                    {
         | 
| 1966 2669 | 
             
                      "length": 20,
         | 
| 1967 | 
            -
                      "start":  | 
| 2670 | 
            +
                      "start": 18157
         | 
| 1968 2671 | 
             
                    },
         | 
| 1969 2672 | 
             
                    {
         | 
| 1970 2673 | 
             
                      "length": 20,
         | 
| 1971 | 
            -
                      "start":  | 
| 2674 | 
            +
                      "start": 18411
         | 
| 1972 2675 | 
             
                    },
         | 
| 1973 2676 | 
             
                    {
         | 
| 1974 2677 | 
             
                      "length": 20,
         | 
| 1975 | 
            -
                      "start":  | 
| 2678 | 
            +
                      "start": 22093
         | 
| 1976 2679 | 
             
                    },
         | 
| 1977 2680 | 
             
                    {
         | 
| 1978 2681 | 
             
                      "length": 20,
         | 
| 1979 | 
            -
                      "start":  | 
| 2682 | 
            +
                      "start": 22345
         | 
| 2683 | 
            +
                    },
         | 
| 2684 | 
            +
                    {
         | 
| 2685 | 
            +
                      "length": 20,
         | 
| 2686 | 
            +
                      "start": 27806
         | 
| 1980 2687 | 
             
                    }
         | 
| 1981 2688 | 
             
                  ]
         | 
| 1982 2689 | 
             
                },
         | 
| @@ -1984,11 +2691,23 @@ | |
| 1984 2691 | 
             
                  "TimestampLib": [
         | 
| 1985 2692 | 
             
                    {
         | 
| 1986 2693 | 
             
                      "length": 20,
         | 
| 1987 | 
            -
                      "start":  | 
| 2694 | 
            +
                      "start": 11118
         | 
| 2695 | 
            +
                    },
         | 
| 2696 | 
            +
                    {
         | 
| 2697 | 
            +
                      "length": 20,
         | 
| 2698 | 
            +
                      "start": 15218
         | 
| 2699 | 
            +
                    },
         | 
| 2700 | 
            +
                    {
         | 
| 2701 | 
            +
                      "length": 20,
         | 
| 2702 | 
            +
                      "start": 18185
         | 
| 2703 | 
            +
                    },
         | 
| 2704 | 
            +
                    {
         | 
| 2705 | 
            +
                      "length": 20,
         | 
| 2706 | 
            +
                      "start": 21657
         | 
| 1988 2707 | 
             
                    },
         | 
| 1989 2708 | 
             
                    {
         | 
| 1990 2709 | 
             
                      "length": 20,
         | 
| 1991 | 
            -
                      "start":  | 
| 2710 | 
            +
                      "start": 22488
         | 
| 1992 2711 | 
             
                    }
         | 
| 1993 2712 | 
             
                  ]
         | 
| 1994 2713 | 
             
                },
         | 
| @@ -1996,69 +2715,181 @@ | |
| 1996 2715 | 
             
                  "UFixedLib": [
         | 
| 1997 2716 | 
             
                    {
         | 
| 1998 2717 | 
             
                      "length": 20,
         | 
| 1999 | 
            -
                      "start":  | 
| 2718 | 
            +
                      "start": 941
         | 
| 2719 | 
            +
                    },
         | 
| 2720 | 
            +
                    {
         | 
| 2721 | 
            +
                      "length": 20,
         | 
| 2722 | 
            +
                      "start": 1076
         | 
| 2723 | 
            +
                    },
         | 
| 2724 | 
            +
                    {
         | 
| 2725 | 
            +
                      "length": 20,
         | 
| 2726 | 
            +
                      "start": 1973
         | 
| 2727 | 
            +
                    },
         | 
| 2728 | 
            +
                    {
         | 
| 2729 | 
            +
                      "length": 20,
         | 
| 2730 | 
            +
                      "start": 2107
         | 
| 2731 | 
            +
                    },
         | 
| 2732 | 
            +
                    {
         | 
| 2733 | 
            +
                      "length": 20,
         | 
| 2734 | 
            +
                      "start": 9948
         | 
| 2735 | 
            +
                    },
         | 
| 2736 | 
            +
                    {
         | 
| 2737 | 
            +
                      "length": 20,
         | 
| 2738 | 
            +
                      "start": 13229
         | 
| 2739 | 
            +
                    },
         | 
| 2740 | 
            +
                    {
         | 
| 2741 | 
            +
                      "length": 20,
         | 
| 2742 | 
            +
                      "start": 18019
         | 
| 2000 2743 | 
             
                    }
         | 
| 2001 2744 | 
             
                  ]
         | 
| 2002 2745 | 
             
                }
         | 
| 2003 2746 | 
             
              },
         | 
| 2004 2747 | 
             
              "deployedLinkReferences": {
         | 
| 2748 | 
            +
                "contracts/staking/StakingLib.sol": {
         | 
| 2749 | 
            +
                  "StakingLib": [
         | 
| 2750 | 
            +
                    {
         | 
| 2751 | 
            +
                      "length": 20,
         | 
| 2752 | 
            +
                      "start": 12609
         | 
| 2753 | 
            +
                    }
         | 
| 2754 | 
            +
                  ]
         | 
| 2755 | 
            +
                },
         | 
| 2756 | 
            +
                "contracts/staking/TargetManagerLib.sol": {
         | 
| 2757 | 
            +
                  "TargetManagerLib": [
         | 
| 2758 | 
            +
                    {
         | 
| 2759 | 
            +
                      "length": 20,
         | 
| 2760 | 
            +
                      "start": 2999
         | 
| 2761 | 
            +
                    },
         | 
| 2762 | 
            +
                    {
         | 
| 2763 | 
            +
                      "length": 20,
         | 
| 2764 | 
            +
                      "start": 5887
         | 
| 2765 | 
            +
                    },
         | 
| 2766 | 
            +
                    {
         | 
| 2767 | 
            +
                      "length": 20,
         | 
| 2768 | 
            +
                      "start": 18328
         | 
| 2769 | 
            +
                    }
         | 
| 2770 | 
            +
                  ]
         | 
| 2771 | 
            +
                },
         | 
| 2005 2772 | 
             
                "contracts/type/Amount.sol": {
         | 
| 2006 2773 | 
             
                  "AmountLib": [
         | 
| 2007 2774 | 
             
                    {
         | 
| 2008 2775 | 
             
                      "length": 20,
         | 
| 2009 | 
            -
                      "start":  | 
| 2776 | 
            +
                      "start": 4761
         | 
| 2777 | 
            +
                    },
         | 
| 2778 | 
            +
                    {
         | 
| 2779 | 
            +
                      "length": 20,
         | 
| 2780 | 
            +
                      "start": 4902
         | 
| 2781 | 
            +
                    },
         | 
| 2782 | 
            +
                    {
         | 
| 2783 | 
            +
                      "length": 20,
         | 
| 2784 | 
            +
                      "start": 6608
         | 
| 2785 | 
            +
                    },
         | 
| 2786 | 
            +
                    {
         | 
| 2787 | 
            +
                      "length": 20,
         | 
| 2788 | 
            +
                      "start": 6723
         | 
| 2789 | 
            +
                    },
         | 
| 2790 | 
            +
                    {
         | 
| 2791 | 
            +
                      "length": 20,
         | 
| 2792 | 
            +
                      "start": 6983
         | 
| 2793 | 
            +
                    },
         | 
| 2794 | 
            +
                    {
         | 
| 2795 | 
            +
                      "length": 20,
         | 
| 2796 | 
            +
                      "start": 7267
         | 
| 2797 | 
            +
                    },
         | 
| 2798 | 
            +
                    {
         | 
| 2799 | 
            +
                      "length": 20,
         | 
| 2800 | 
            +
                      "start": 8724
         | 
| 2801 | 
            +
                    },
         | 
| 2802 | 
            +
                    {
         | 
| 2803 | 
            +
                      "length": 20,
         | 
| 2804 | 
            +
                      "start": 12431
         | 
| 2805 | 
            +
                    },
         | 
| 2806 | 
            +
                    {
         | 
| 2807 | 
            +
                      "length": 20,
         | 
| 2808 | 
            +
                      "start": 12980
         | 
| 2010 2809 | 
             
                    },
         | 
| 2011 2810 | 
             
                    {
         | 
| 2012 2811 | 
             
                      "length": 20,
         | 
| 2013 | 
            -
                      "start":  | 
| 2812 | 
            +
                      "start": 13286
         | 
| 2014 2813 | 
             
                    },
         | 
| 2015 2814 | 
             
                    {
         | 
| 2016 2815 | 
             
                      "length": 20,
         | 
| 2017 | 
            -
                      "start":  | 
| 2816 | 
            +
                      "start": 13492
         | 
| 2018 2817 | 
             
                    },
         | 
| 2019 2818 | 
             
                    {
         | 
| 2020 2819 | 
             
                      "length": 20,
         | 
| 2021 | 
            -
                      "start":  | 
| 2820 | 
            +
                      "start": 13691
         | 
| 2022 2821 | 
             
                    },
         | 
| 2023 2822 | 
             
                    {
         | 
| 2024 2823 | 
             
                      "length": 20,
         | 
| 2025 | 
            -
                      "start":  | 
| 2824 | 
            +
                      "start": 13816
         | 
| 2026 2825 | 
             
                    },
         | 
| 2027 2826 | 
             
                    {
         | 
| 2028 2827 | 
             
                      "length": 20,
         | 
| 2029 | 
            -
                      "start":  | 
| 2828 | 
            +
                      "start": 14324
         | 
| 2030 2829 | 
             
                    },
         | 
| 2031 2830 | 
             
                    {
         | 
| 2032 2831 | 
             
                      "length": 20,
         | 
| 2033 | 
            -
                      "start":  | 
| 2832 | 
            +
                      "start": 14782
         | 
| 2034 2833 | 
             
                    },
         | 
| 2035 2834 | 
             
                    {
         | 
| 2036 2835 | 
             
                      "length": 20,
         | 
| 2037 | 
            -
                      "start":  | 
| 2836 | 
            +
                      "start": 14907
         | 
| 2038 2837 | 
             
                    },
         | 
| 2039 2838 | 
             
                    {
         | 
| 2040 2839 | 
             
                      "length": 20,
         | 
| 2041 | 
            -
                      "start":  | 
| 2840 | 
            +
                      "start": 15754
         | 
| 2042 2841 | 
             
                    },
         | 
| 2043 2842 | 
             
                    {
         | 
| 2044 2843 | 
             
                      "length": 20,
         | 
| 2045 | 
            -
                      "start":  | 
| 2844 | 
            +
                      "start": 16139
         | 
| 2046 2845 | 
             
                    },
         | 
| 2047 2846 | 
             
                    {
         | 
| 2048 2847 | 
             
                      "length": 20,
         | 
| 2049 | 
            -
                      "start":  | 
| 2848 | 
            +
                      "start": 17908
         | 
| 2050 2849 | 
             
                    },
         | 
| 2051 2850 | 
             
                    {
         | 
| 2052 2851 | 
             
                      "length": 20,
         | 
| 2053 | 
            -
                      "start":  | 
| 2852 | 
            +
                      "start": 18041
         | 
| 2054 2853 | 
             
                    },
         | 
| 2055 2854 | 
             
                    {
         | 
| 2056 2855 | 
             
                      "length": 20,
         | 
| 2057 | 
            -
                      "start":  | 
| 2856 | 
            +
                      "start": 18115
         | 
| 2058 2857 | 
             
                    },
         | 
| 2059 2858 | 
             
                    {
         | 
| 2060 2859 | 
             
                      "length": 20,
         | 
| 2061 | 
            -
                      "start":  | 
| 2860 | 
            +
                      "start": 18447
         | 
| 2861 | 
            +
                    },
         | 
| 2862 | 
            +
                    {
         | 
| 2863 | 
            +
                      "length": 20,
         | 
| 2864 | 
            +
                      "start": 18583
         | 
| 2865 | 
            +
                    },
         | 
| 2866 | 
            +
                    {
         | 
| 2867 | 
            +
                      "length": 20,
         | 
| 2868 | 
            +
                      "start": 18720
         | 
| 2869 | 
            +
                    },
         | 
| 2870 | 
            +
                    {
         | 
| 2871 | 
            +
                      "length": 20,
         | 
| 2872 | 
            +
                      "start": 18866
         | 
| 2873 | 
            +
                    },
         | 
| 2874 | 
            +
                    {
         | 
| 2875 | 
            +
                      "length": 20,
         | 
| 2876 | 
            +
                      "start": 19432
         | 
| 2877 | 
            +
                    },
         | 
| 2878 | 
            +
                    {
         | 
| 2879 | 
            +
                      "length": 20,
         | 
| 2880 | 
            +
                      "start": 19460
         | 
| 2881 | 
            +
                    },
         | 
| 2882 | 
            +
                    {
         | 
| 2883 | 
            +
                      "length": 20,
         | 
| 2884 | 
            +
                      "start": 19596
         | 
| 2885 | 
            +
                    },
         | 
| 2886 | 
            +
                    {
         | 
| 2887 | 
            +
                      "length": 20,
         | 
| 2888 | 
            +
                      "start": 19793
         | 
| 2889 | 
            +
                    },
         | 
| 2890 | 
            +
                    {
         | 
| 2891 | 
            +
                      "length": 20,
         | 
| 2892 | 
            +
                      "start": 20542
         | 
| 2062 2893 | 
             
                    }
         | 
| 2063 2894 | 
             
                  ]
         | 
| 2064 2895 | 
             
                },
         | 
| @@ -2066,155 +2897,159 @@ | |
| 2066 2897 | 
             
                  "BlocknumberLib": [
         | 
| 2067 2898 | 
             
                    {
         | 
| 2068 2899 | 
             
                      "length": 20,
         | 
| 2069 | 
            -
                      "start":  | 
| 2900 | 
            +
                      "start": 3127
         | 
| 2070 2901 | 
             
                    },
         | 
| 2071 2902 | 
             
                    {
         | 
| 2072 2903 | 
             
                      "length": 20,
         | 
| 2073 | 
            -
                      "start":  | 
| 2904 | 
            +
                      "start": 3732
         | 
| 2074 2905 | 
             
                    },
         | 
| 2075 2906 | 
             
                    {
         | 
| 2076 2907 | 
             
                      "length": 20,
         | 
| 2077 | 
            -
                      "start":  | 
| 2908 | 
            +
                      "start": 4019
         | 
| 2078 2909 | 
             
                    },
         | 
| 2079 2910 | 
             
                    {
         | 
| 2080 2911 | 
             
                      "length": 20,
         | 
| 2081 | 
            -
                      "start":  | 
| 2912 | 
            +
                      "start": 4391
         | 
| 2082 2913 | 
             
                    },
         | 
| 2083 2914 | 
             
                    {
         | 
| 2084 2915 | 
             
                      "length": 20,
         | 
| 2085 | 
            -
                      "start":  | 
| 2916 | 
            +
                      "start": 4558
         | 
| 2086 2917 | 
             
                    },
         | 
| 2087 2918 | 
             
                    {
         | 
| 2088 2919 | 
             
                      "length": 20,
         | 
| 2089 | 
            -
                      "start":  | 
| 2920 | 
            +
                      "start": 5444
         | 
| 2090 2921 | 
             
                    },
         | 
| 2091 2922 | 
             
                    {
         | 
| 2092 2923 | 
             
                      "length": 20,
         | 
| 2093 | 
            -
                      "start":  | 
| 2924 | 
            +
                      "start": 6023
         | 
| 2094 2925 | 
             
                    },
         | 
| 2095 2926 | 
             
                    {
         | 
| 2096 2927 | 
             
                      "length": 20,
         | 
| 2097 | 
            -
                      "start":  | 
| 2928 | 
            +
                      "start": 7850
         | 
| 2098 2929 | 
             
                    },
         | 
| 2099 2930 | 
             
                    {
         | 
| 2100 2931 | 
             
                      "length": 20,
         | 
| 2101 | 
            -
                      "start":  | 
| 2932 | 
            +
                      "start": 8046
         | 
| 2102 2933 | 
             
                    },
         | 
| 2103 2934 | 
             
                    {
         | 
| 2104 2935 | 
             
                      "length": 20,
         | 
| 2105 | 
            -
                      "start":  | 
| 2936 | 
            +
                      "start": 8277
         | 
| 2106 2937 | 
             
                    },
         | 
| 2107 2938 | 
             
                    {
         | 
| 2108 2939 | 
             
                      "length": 20,
         | 
| 2109 | 
            -
                      "start":  | 
| 2940 | 
            +
                      "start": 8596
         | 
| 2110 2941 | 
             
                    },
         | 
| 2111 2942 | 
             
                    {
         | 
| 2112 2943 | 
             
                      "length": 20,
         | 
| 2113 | 
            -
                      "start":  | 
| 2944 | 
            +
                      "start": 8874
         | 
| 2114 2945 | 
             
                    },
         | 
| 2115 2946 | 
             
                    {
         | 
| 2116 2947 | 
             
                      "length": 20,
         | 
| 2117 | 
            -
                      "start":  | 
| 2948 | 
            +
                      "start": 9341
         | 
| 2118 2949 | 
             
                    },
         | 
| 2119 2950 | 
             
                    {
         | 
| 2120 2951 | 
             
                      "length": 20,
         | 
| 2121 | 
            -
                      "start":  | 
| 2122 | 
            -
                    }
         | 
| 2123 | 
            -
                  ]
         | 
| 2124 | 
            -
                },
         | 
| 2125 | 
            -
                "contracts/type/Key32.sol": {
         | 
| 2126 | 
            -
                  "Key32Lib": [
         | 
| 2952 | 
            +
                      "start": 9914
         | 
| 2953 | 
            +
                    },
         | 
| 2127 2954 | 
             
                    {
         | 
| 2128 2955 | 
             
                      "length": 20,
         | 
| 2129 | 
            -
                      "start":  | 
| 2956 | 
            +
                      "start": 10249
         | 
| 2130 2957 | 
             
                    },
         | 
| 2131 2958 | 
             
                    {
         | 
| 2132 2959 | 
             
                      "length": 20,
         | 
| 2133 | 
            -
                      "start":  | 
| 2960 | 
            +
                      "start": 10874
         | 
| 2134 2961 | 
             
                    },
         | 
| 2135 2962 | 
             
                    {
         | 
| 2136 2963 | 
             
                      "length": 20,
         | 
| 2137 | 
            -
                      "start":  | 
| 2964 | 
            +
                      "start": 11364
         | 
| 2138 2965 | 
             
                    },
         | 
| 2139 2966 | 
             
                    {
         | 
| 2140 2967 | 
             
                      "length": 20,
         | 
| 2141 | 
            -
                      "start":  | 
| 2968 | 
            +
                      "start": 11575
         | 
| 2142 2969 | 
             
                    },
         | 
| 2143 2970 | 
             
                    {
         | 
| 2144 2971 | 
             
                      "length": 20,
         | 
| 2145 | 
            -
                      "start":  | 
| 2972 | 
            +
                      "start": 11769
         | 
| 2146 2973 | 
             
                    },
         | 
| 2147 2974 | 
             
                    {
         | 
| 2148 2975 | 
             
                      "length": 20,
         | 
| 2149 | 
            -
                      "start":  | 
| 2976 | 
            +
                      "start": 14461
         | 
| 2150 2977 | 
             
                    },
         | 
| 2151 2978 | 
             
                    {
         | 
| 2152 2979 | 
             
                      "length": 20,
         | 
| 2153 | 
            -
                      "start":  | 
| 2980 | 
            +
                      "start": 15435
         | 
| 2154 2981 | 
             
                    },
         | 
| 2155 2982 | 
             
                    {
         | 
| 2156 2983 | 
             
                      "length": 20,
         | 
| 2157 | 
            -
                      "start":  | 
| 2158 | 
            -
                    }
         | 
| 2159 | 
            -
             | 
| 2160 | 
            -
             | 
| 2161 | 
            -
             | 
| 2162 | 
            -
             | 
| 2984 | 
            +
                      "start": 17549
         | 
| 2985 | 
            +
                    },
         | 
| 2986 | 
            +
                    {
         | 
| 2987 | 
            +
                      "length": 20,
         | 
| 2988 | 
            +
                      "start": 19251
         | 
| 2989 | 
            +
                    },
         | 
| 2163 2990 | 
             
                    {
         | 
| 2164 2991 | 
             
                      "length": 20,
         | 
| 2165 | 
            -
                      "start":  | 
| 2992 | 
            +
                      "start": 20161
         | 
| 2166 2993 | 
             
                    },
         | 
| 2167 2994 | 
             
                    {
         | 
| 2168 2995 | 
             
                      "length": 20,
         | 
| 2169 | 
            -
                      "start":  | 
| 2996 | 
            +
                      "start": 20376
         | 
| 2170 2997 | 
             
                    },
         | 
| 2171 2998 | 
             
                    {
         | 
| 2172 2999 | 
             
                      "length": 20,
         | 
| 2173 | 
            -
                      "start":  | 
| 3000 | 
            +
                      "start": 21032
         | 
| 2174 3001 | 
             
                    },
         | 
| 2175 3002 | 
             
                    {
         | 
| 2176 3003 | 
             
                      "length": 20,
         | 
| 2177 | 
            -
                      "start":  | 
| 3004 | 
            +
                      "start": 21445
         | 
| 2178 3005 | 
             
                    },
         | 
| 2179 3006 | 
             
                    {
         | 
| 2180 3007 | 
             
                      "length": 20,
         | 
| 2181 | 
            -
                      "start":  | 
| 3008 | 
            +
                      "start": 21835
         | 
| 2182 3009 | 
             
                    }
         | 
| 2183 3010 | 
             
                  ]
         | 
| 2184 3011 | 
             
                },
         | 
| 2185 | 
            -
                "contracts/type/ | 
| 2186 | 
            -
                  " | 
| 3012 | 
            +
                "contracts/type/ChainId.sol": {
         | 
| 3013 | 
            +
                  "ChainIdLib": [
         | 
| 2187 3014 | 
             
                    {
         | 
| 2188 3015 | 
             
                      "length": 20,
         | 
| 2189 | 
            -
                      "start":  | 
| 3016 | 
            +
                      "start": 8421
         | 
| 3017 | 
            +
                    },
         | 
| 3018 | 
            +
                    {
         | 
| 3019 | 
            +
                      "length": 20,
         | 
| 3020 | 
            +
                      "start": 19117
         | 
| 2190 3021 | 
             
                    }
         | 
| 2191 3022 | 
             
                  ]
         | 
| 2192 3023 | 
             
                },
         | 
| 2193 | 
            -
                "contracts/type/ | 
| 2194 | 
            -
                  " | 
| 3024 | 
            +
                "contracts/type/ObjectType.sol": {
         | 
| 3025 | 
            +
                  "ObjectTypeLib": [
         | 
| 2195 3026 | 
             
                    {
         | 
| 2196 3027 | 
             
                      "length": 20,
         | 
| 2197 | 
            -
                      "start":  | 
| 2198 | 
            -
                    } | 
| 3028 | 
            +
                      "start": 16683
         | 
| 3029 | 
            +
                    }
         | 
| 3030 | 
            +
                  ]
         | 
| 3031 | 
            +
                },
         | 
| 3032 | 
            +
                "contracts/type/Seconds.sol": {
         | 
| 3033 | 
            +
                  "SecondsLib": [
         | 
| 2199 3034 | 
             
                    {
         | 
| 2200 3035 | 
             
                      "length": 20,
         | 
| 2201 | 
            -
                      "start":  | 
| 3036 | 
            +
                      "start": 12078
         | 
| 2202 3037 | 
             
                    },
         | 
| 2203 3038 | 
             
                    {
         | 
| 2204 3039 | 
             
                      "length": 20,
         | 
| 2205 | 
            -
                      "start":  | 
| 3040 | 
            +
                      "start": 12332
         | 
| 2206 3041 | 
             
                    },
         | 
| 2207 3042 | 
             
                    {
         | 
| 2208 3043 | 
             
                      "length": 20,
         | 
| 2209 | 
            -
                      "start":  | 
| 3044 | 
            +
                      "start": 16014
         | 
| 2210 3045 | 
             
                    },
         | 
| 2211 3046 | 
             
                    {
         | 
| 2212 3047 | 
             
                      "length": 20,
         | 
| 2213 | 
            -
                      "start":  | 
| 3048 | 
            +
                      "start": 16266
         | 
| 2214 3049 | 
             
                    },
         | 
| 2215 3050 | 
             
                    {
         | 
| 2216 3051 | 
             
                      "length": 20,
         | 
| 2217 | 
            -
                      "start":  | 
| 3052 | 
            +
                      "start": 21727
         | 
| 2218 3053 | 
             
                    }
         | 
| 2219 3054 | 
             
                  ]
         | 
| 2220 3055 | 
             
                },
         | 
| @@ -2222,11 +3057,23 @@ | |
| 2222 3057 | 
             
                  "TimestampLib": [
         | 
| 2223 3058 | 
             
                    {
         | 
| 2224 3059 | 
             
                      "length": 20,
         | 
| 2225 | 
            -
                      "start":  | 
| 3060 | 
            +
                      "start": 5039
         | 
| 3061 | 
            +
                    },
         | 
| 3062 | 
            +
                    {
         | 
| 3063 | 
            +
                      "length": 20,
         | 
| 3064 | 
            +
                      "start": 9139
         | 
| 3065 | 
            +
                    },
         | 
| 3066 | 
            +
                    {
         | 
| 3067 | 
            +
                      "length": 20,
         | 
| 3068 | 
            +
                      "start": 12106
         | 
| 3069 | 
            +
                    },
         | 
| 3070 | 
            +
                    {
         | 
| 3071 | 
            +
                      "length": 20,
         | 
| 3072 | 
            +
                      "start": 15578
         | 
| 2226 3073 | 
             
                    },
         | 
| 2227 3074 | 
             
                    {
         | 
| 2228 3075 | 
             
                      "length": 20,
         | 
| 2229 | 
            -
                      "start":  | 
| 3076 | 
            +
                      "start": 16409
         | 
| 2230 3077 | 
             
                    }
         | 
| 2231 3078 | 
             
                  ]
         | 
| 2232 3079 | 
             
                },
         | 
| @@ -2234,7 +3081,15 @@ | |
| 2234 3081 | 
             
                  "UFixedLib": [
         | 
| 2235 3082 | 
             
                    {
         | 
| 2236 3083 | 
             
                      "length": 20,
         | 
| 2237 | 
            -
                      "start":  | 
| 3084 | 
            +
                      "start": 3869
         | 
| 3085 | 
            +
                    },
         | 
| 3086 | 
            +
                    {
         | 
| 3087 | 
            +
                      "length": 20,
         | 
| 3088 | 
            +
                      "start": 7150
         | 
| 3089 | 
            +
                    },
         | 
| 3090 | 
            +
                    {
         | 
| 3091 | 
            +
                      "length": 20,
         | 
| 3092 | 
            +
                      "start": 11940
         | 
| 2238 3093 | 
             
                    }
         | 
| 2239 3094 | 
             
                  ]
         | 
| 2240 3095 | 
             
                }
         |