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