@etherisc/gif-next 0.0.2-9f827bd-593 → 0.0.2-9fbf8d0-135
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 +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +832 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +747 -103
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +137 -114
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +743 -26
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +737 -58
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +582 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +692 -178
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +517 -135
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +15 -15
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +69 -79
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1003 -393
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -197
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1015 -781
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +440 -176
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +120 -263
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +369 -299
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -89
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +11 -40
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +178 -158
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +61 -78
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- 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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +415 -290
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +308 -79
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1211 -172
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +456 -71
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +275 -185
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +183 -245
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +159 -147
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +728 -161
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +60 -291
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -152
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -174
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +244 -379
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +311 -114
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +289 -192
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +313 -76
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +206 -206
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +305 -76
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +117 -5
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +112 -198
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +131 -27
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +18 -18
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +216 -234
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -81
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +70 -69
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +151 -50
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +22 -174
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +114 -157
- 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/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +135 -214
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/Component.sol +251 -0
- package/contracts/components/Distribution.sol +199 -82
- package/contracts/components/IComponent.sol +74 -0
- package/contracts/components/IDistributionComponent.sol +44 -17
- package/contracts/components/IPoolComponent.sol +88 -41
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +209 -181
- package/contracts/components/Product.sol +125 -124
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +2 -12
- package/contracts/instance/BundleManager.sol +14 -16
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +52 -16
- package/contracts/instance/IInstanceService.sol +37 -5
- package/contracts/instance/Instance.sol +126 -75
- package/contracts/instance/InstanceAccessManager.sol +383 -164
- package/contracts/instance/InstanceReader.sol +9 -34
- package/contracts/instance/InstanceService.sol +279 -134
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +10 -29
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/base/KeyValueStore.sol +5 -2
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +22 -16
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IComponents.sol +35 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +7 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +102 -41
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +393 -39
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +32 -12
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +27 -49
- package/contracts/instance/service/IPoolService.sol +17 -2
- package/contracts/instance/service/PolicyService.sol +152 -286
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +138 -42
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +104 -33
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +18 -8
- package/contracts/registry/IRegistryService.sol +19 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +142 -71
- package/contracts/registry/RegistryAccessManager.sol +31 -25
- package/contracts/registry/RegistryService.sol +94 -134
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +94 -120
- package/contracts/registry/TokenRegistry.sol +19 -13
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -80
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -32
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +19 -19
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +1 -0
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +10 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +18 -11
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +1 -0
- package/contracts/types/Timestamp.sol +13 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -159
- package/contracts/components/IBaseComponent.sol +0 -34
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -82
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -6,50 +6,102 @@
|
|
6
6
|
{
|
7
7
|
"inputs": [
|
8
8
|
{
|
9
|
-
"internalType": "
|
10
|
-
"name": "
|
11
|
-
"type": "
|
9
|
+
"internalType": "address",
|
10
|
+
"name": "component",
|
11
|
+
"type": "address"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"internalType": "NftId",
|
15
|
+
"name": "nftId",
|
16
|
+
"type": "uint96"
|
12
17
|
}
|
13
18
|
],
|
14
|
-
"name": "
|
19
|
+
"name": "ErrorComponentServiceAlreadyRegistered",
|
15
20
|
"type": "error"
|
16
21
|
},
|
17
22
|
{
|
18
23
|
"inputs": [
|
19
24
|
{
|
20
25
|
"internalType": "address",
|
21
|
-
"name": "
|
26
|
+
"name": "component",
|
22
27
|
"type": "address"
|
23
|
-
}
|
28
|
+
}
|
29
|
+
],
|
30
|
+
"name": "ErrorComponentServiceComponentLocked",
|
31
|
+
"type": "error"
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"inputs": [
|
24
35
|
{
|
25
36
|
"internalType": "NftId",
|
26
|
-
"name": "
|
37
|
+
"name": "instanceNftId",
|
27
38
|
"type": "uint96"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"internalType": "RoleId",
|
42
|
+
"name": "requiredRole",
|
43
|
+
"type": "uint64"
|
44
|
+
},
|
45
|
+
{
|
46
|
+
"internalType": "address",
|
47
|
+
"name": "sender",
|
48
|
+
"type": "address"
|
28
49
|
}
|
29
50
|
],
|
30
|
-
"name": "
|
51
|
+
"name": "ErrorComponentServiceExpectedRoleMissing",
|
31
52
|
"type": "error"
|
32
53
|
},
|
33
54
|
{
|
34
55
|
"inputs": [
|
35
56
|
{
|
36
57
|
"internalType": "address",
|
37
|
-
"name": "
|
58
|
+
"name": "component",
|
38
59
|
"type": "address"
|
60
|
+
},
|
61
|
+
{
|
62
|
+
"internalType": "ObjectType",
|
63
|
+
"name": "requiredType",
|
64
|
+
"type": "uint8"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"internalType": "ObjectType",
|
68
|
+
"name": "componentType",
|
69
|
+
"type": "uint8"
|
39
70
|
}
|
40
71
|
],
|
41
|
-
"name": "
|
72
|
+
"name": "ErrorComponentServiceInvalidType",
|
42
73
|
"type": "error"
|
43
74
|
},
|
44
75
|
{
|
45
76
|
"inputs": [
|
46
77
|
{
|
47
78
|
"internalType": "address",
|
48
|
-
"name": "
|
79
|
+
"name": "component",
|
49
80
|
"type": "address"
|
50
81
|
}
|
51
82
|
],
|
52
|
-
"name": "
|
83
|
+
"name": "ErrorComponentServiceNotComponent",
|
84
|
+
"type": "error"
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"inputs": [
|
88
|
+
{
|
89
|
+
"internalType": "address",
|
90
|
+
"name": "component",
|
91
|
+
"type": "address"
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"internalType": "address",
|
95
|
+
"name": "initialOwner",
|
96
|
+
"type": "address"
|
97
|
+
},
|
98
|
+
{
|
99
|
+
"internalType": "address",
|
100
|
+
"name": "sender",
|
101
|
+
"type": "address"
|
102
|
+
}
|
103
|
+
],
|
104
|
+
"name": "ErrorComponentServiceSenderNotOwner",
|
53
105
|
"type": "error"
|
54
106
|
},
|
55
107
|
{
|
@@ -170,6 +222,27 @@
|
|
170
222
|
"name": "ErrorIPolicyServicePremiumAlreadyPaid",
|
171
223
|
"type": "error"
|
172
224
|
},
|
225
|
+
{
|
226
|
+
"inputs": [
|
227
|
+
{
|
228
|
+
"internalType": "NftId",
|
229
|
+
"name": "policyNftId",
|
230
|
+
"type": "uint96"
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"internalType": "uint256",
|
234
|
+
"name": "premiumAmount",
|
235
|
+
"type": "uint256"
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"internalType": "uint256",
|
239
|
+
"name": "recalculatedPremiumAmount",
|
240
|
+
"type": "uint256"
|
241
|
+
}
|
242
|
+
],
|
243
|
+
"name": "ErrorIPolicyServicePremiumMismatch",
|
244
|
+
"type": "error"
|
245
|
+
},
|
173
246
|
{
|
174
247
|
"inputs": [
|
175
248
|
{
|
@@ -195,70 +268,60 @@
|
|
195
268
|
"inputs": [
|
196
269
|
{
|
197
270
|
"internalType": "address",
|
198
|
-
"name": "
|
271
|
+
"name": "caller",
|
199
272
|
"type": "address"
|
200
273
|
}
|
201
274
|
],
|
202
|
-
"name": "
|
275
|
+
"name": "ErrorIServiceCallerUnknown",
|
203
276
|
"type": "error"
|
204
277
|
},
|
205
278
|
{
|
206
279
|
"inputs": [
|
207
280
|
{
|
208
|
-
"internalType": "
|
209
|
-
"name": "
|
210
|
-
"type": "
|
281
|
+
"internalType": "NftId",
|
282
|
+
"name": "nftId",
|
283
|
+
"type": "uint96"
|
211
284
|
}
|
212
285
|
],
|
213
|
-
"name": "
|
286
|
+
"name": "ErrorNftOwnableAlreadyLinked",
|
214
287
|
"type": "error"
|
215
288
|
},
|
216
289
|
{
|
217
290
|
"inputs": [
|
218
291
|
{
|
219
292
|
"internalType": "address",
|
220
|
-
"name": "
|
293
|
+
"name": "contractAddress",
|
221
294
|
"type": "address"
|
222
295
|
}
|
223
296
|
],
|
224
|
-
"name": "
|
297
|
+
"name": "ErrorNftOwnableContractNotRegistered",
|
225
298
|
"type": "error"
|
226
299
|
},
|
227
300
|
{
|
228
301
|
"inputs": [],
|
229
|
-
"name": "
|
302
|
+
"name": "ErrorNftOwnableInitialOwnerZero",
|
230
303
|
"type": "error"
|
231
304
|
},
|
232
305
|
{
|
233
306
|
"inputs": [
|
234
307
|
{
|
235
308
|
"internalType": "address",
|
236
|
-
"name": "
|
309
|
+
"name": "account",
|
237
310
|
"type": "address"
|
238
311
|
}
|
239
312
|
],
|
240
|
-
"name": "
|
241
|
-
"type": "error"
|
242
|
-
},
|
243
|
-
{
|
244
|
-
"inputs": [],
|
245
|
-
"name": "ErrorRegistryNotInitialized",
|
313
|
+
"name": "ErrorNftOwnableNotOwner",
|
246
314
|
"type": "error"
|
247
315
|
},
|
248
316
|
{
|
249
317
|
"inputs": [
|
250
|
-
{
|
251
|
-
"internalType": "RoleId",
|
252
|
-
"name": "expected",
|
253
|
-
"type": "uint64"
|
254
|
-
},
|
255
318
|
{
|
256
319
|
"internalType": "address",
|
257
|
-
"name": "
|
320
|
+
"name": "registryAddress",
|
258
321
|
"type": "address"
|
259
322
|
}
|
260
323
|
],
|
261
|
-
"name": "
|
324
|
+
"name": "ErrorNotRegistry",
|
262
325
|
"type": "error"
|
263
326
|
},
|
264
327
|
{
|
@@ -298,29 +361,17 @@
|
|
298
361
|
"type": "event"
|
299
362
|
},
|
300
363
|
{
|
301
|
-
"
|
302
|
-
"
|
303
|
-
|
304
|
-
"indexed": false,
|
305
|
-
"internalType": "Version",
|
306
|
-
"name": "version",
|
307
|
-
"type": "uint24"
|
308
|
-
},
|
309
|
-
{
|
310
|
-
"indexed": false,
|
311
|
-
"internalType": "address",
|
312
|
-
"name": "implementation",
|
313
|
-
"type": "address"
|
314
|
-
},
|
364
|
+
"inputs": [],
|
365
|
+
"name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
|
366
|
+
"outputs": [
|
315
367
|
{
|
316
|
-
"
|
317
|
-
"
|
318
|
-
"
|
319
|
-
"type": "address"
|
368
|
+
"internalType": "bytes32",
|
369
|
+
"name": "",
|
370
|
+
"type": "bytes32"
|
320
371
|
}
|
321
372
|
],
|
322
|
-
"
|
323
|
-
"type": "
|
373
|
+
"stateMutability": "view",
|
374
|
+
"type": "function"
|
324
375
|
},
|
325
376
|
{
|
326
377
|
"inputs": [],
|
@@ -353,70 +404,6 @@
|
|
353
404
|
"stateMutability": "nonpayable",
|
354
405
|
"type": "function"
|
355
406
|
},
|
356
|
-
{
|
357
|
-
"inputs": [
|
358
|
-
{
|
359
|
-
"internalType": "RiskId",
|
360
|
-
"name": "riskId",
|
361
|
-
"type": "bytes8"
|
362
|
-
},
|
363
|
-
{
|
364
|
-
"internalType": "uint256",
|
365
|
-
"name": "sumInsuredAmount",
|
366
|
-
"type": "uint256"
|
367
|
-
},
|
368
|
-
{
|
369
|
-
"internalType": "uint256",
|
370
|
-
"name": "lifetime",
|
371
|
-
"type": "uint256"
|
372
|
-
},
|
373
|
-
{
|
374
|
-
"internalType": "bytes",
|
375
|
-
"name": "applicationData",
|
376
|
-
"type": "bytes"
|
377
|
-
},
|
378
|
-
{
|
379
|
-
"internalType": "NftId",
|
380
|
-
"name": "bundleNftId",
|
381
|
-
"type": "uint96"
|
382
|
-
},
|
383
|
-
{
|
384
|
-
"internalType": "ReferralId",
|
385
|
-
"name": "referralId",
|
386
|
-
"type": "bytes8"
|
387
|
-
}
|
388
|
-
],
|
389
|
-
"name": "calculatePremium",
|
390
|
-
"outputs": [
|
391
|
-
{
|
392
|
-
"internalType": "uint256",
|
393
|
-
"name": "premiumAmount",
|
394
|
-
"type": "uint256"
|
395
|
-
},
|
396
|
-
{
|
397
|
-
"internalType": "uint256",
|
398
|
-
"name": "productFeeAmount",
|
399
|
-
"type": "uint256"
|
400
|
-
},
|
401
|
-
{
|
402
|
-
"internalType": "uint256",
|
403
|
-
"name": "poolFeeAmount",
|
404
|
-
"type": "uint256"
|
405
|
-
},
|
406
|
-
{
|
407
|
-
"internalType": "uint256",
|
408
|
-
"name": "bundleFeeAmount",
|
409
|
-
"type": "uint256"
|
410
|
-
},
|
411
|
-
{
|
412
|
-
"internalType": "uint256",
|
413
|
-
"name": "distributionFeeAmount",
|
414
|
-
"type": "uint256"
|
415
|
-
}
|
416
|
-
],
|
417
|
-
"stateMutability": "view",
|
418
|
-
"type": "function"
|
419
|
-
},
|
420
407
|
{
|
421
408
|
"inputs": [
|
422
409
|
{
|
@@ -474,50 +461,27 @@
|
|
474
461
|
},
|
475
462
|
{
|
476
463
|
"inputs": [
|
477
|
-
{
|
478
|
-
"internalType": "address",
|
479
|
-
"name": "applicationOwner",
|
480
|
-
"type": "address"
|
481
|
-
},
|
482
|
-
{
|
483
|
-
"internalType": "RiskId",
|
484
|
-
"name": "riskId",
|
485
|
-
"type": "bytes8"
|
486
|
-
},
|
487
|
-
{
|
488
|
-
"internalType": "uint256",
|
489
|
-
"name": "sumInsuredAmount",
|
490
|
-
"type": "uint256"
|
491
|
-
},
|
492
|
-
{
|
493
|
-
"internalType": "uint256",
|
494
|
-
"name": "lifetime",
|
495
|
-
"type": "uint256"
|
496
|
-
},
|
497
|
-
{
|
498
|
-
"internalType": "bytes",
|
499
|
-
"name": "applicationData",
|
500
|
-
"type": "bytes"
|
501
|
-
},
|
502
464
|
{
|
503
465
|
"internalType": "NftId",
|
504
|
-
"name": "
|
466
|
+
"name": "policyNftId",
|
505
467
|
"type": "uint96"
|
506
|
-
},
|
507
|
-
{
|
508
|
-
"internalType": "ReferralId",
|
509
|
-
"name": "referralId",
|
510
|
-
"type": "bytes8"
|
511
468
|
}
|
512
469
|
],
|
513
|
-
"name": "
|
514
|
-
"outputs": [
|
470
|
+
"name": "decline",
|
471
|
+
"outputs": [],
|
472
|
+
"stateMutability": "nonpayable",
|
473
|
+
"type": "function"
|
474
|
+
},
|
475
|
+
{
|
476
|
+
"inputs": [
|
515
477
|
{
|
516
478
|
"internalType": "NftId",
|
517
479
|
"name": "policyNftId",
|
518
480
|
"type": "uint96"
|
519
481
|
}
|
520
482
|
],
|
483
|
+
"name": "expire",
|
484
|
+
"outputs": [],
|
521
485
|
"stateMutability": "nonpayable",
|
522
486
|
"type": "function"
|
523
487
|
},
|
@@ -577,26 +541,8 @@
|
|
577
541
|
}
|
578
542
|
],
|
579
543
|
"internalType": "struct IRegistry.ObjectInfo",
|
580
|
-
"name": "",
|
544
|
+
"name": "info",
|
581
545
|
"type": "tuple"
|
582
|
-
},
|
583
|
-
{
|
584
|
-
"internalType": "bytes",
|
585
|
-
"name": "data",
|
586
|
-
"type": "bytes"
|
587
|
-
}
|
588
|
-
],
|
589
|
-
"stateMutability": "view",
|
590
|
-
"type": "function"
|
591
|
-
},
|
592
|
-
{
|
593
|
-
"inputs": [],
|
594
|
-
"name": "getInitializedVersion",
|
595
|
-
"outputs": [
|
596
|
-
{
|
597
|
-
"internalType": "uint64",
|
598
|
-
"name": "",
|
599
|
-
"type": "uint64"
|
600
546
|
}
|
601
547
|
],
|
602
548
|
"stateMutability": "view",
|
@@ -669,10 +615,10 @@
|
|
669
615
|
},
|
670
616
|
{
|
671
617
|
"inputs": [],
|
672
|
-
"name": "
|
618
|
+
"name": "getRegistryAddress",
|
673
619
|
"outputs": [
|
674
620
|
{
|
675
|
-
"internalType": "
|
621
|
+
"internalType": "address",
|
676
622
|
"name": "",
|
677
623
|
"type": "address"
|
678
624
|
}
|
@@ -682,25 +628,19 @@
|
|
682
628
|
},
|
683
629
|
{
|
684
630
|
"inputs": [],
|
685
|
-
"name": "
|
631
|
+
"name": "getRegistryService",
|
686
632
|
"outputs": [
|
687
633
|
{
|
688
|
-
"internalType": "
|
634
|
+
"internalType": "contract IRegistryService",
|
689
635
|
"name": "",
|
690
|
-
"type": "
|
636
|
+
"type": "address"
|
691
637
|
}
|
692
638
|
],
|
693
|
-
"stateMutability": "
|
639
|
+
"stateMutability": "view",
|
694
640
|
"type": "function"
|
695
641
|
},
|
696
642
|
{
|
697
|
-
"inputs": [
|
698
|
-
{
|
699
|
-
"internalType": "uint256",
|
700
|
-
"name": "idx",
|
701
|
-
"type": "uint256"
|
702
|
-
}
|
703
|
-
],
|
643
|
+
"inputs": [],
|
704
644
|
"name": "getVersion",
|
705
645
|
"outputs": [
|
706
646
|
{
|
@@ -709,87 +649,68 @@
|
|
709
649
|
"type": "uint24"
|
710
650
|
}
|
711
651
|
],
|
712
|
-
"stateMutability": "
|
652
|
+
"stateMutability": "pure",
|
713
653
|
"type": "function"
|
714
654
|
},
|
715
655
|
{
|
716
656
|
"inputs": [],
|
717
|
-
"name": "
|
718
|
-
"outputs": [
|
719
|
-
|
720
|
-
"internalType": "uint256",
|
721
|
-
"name": "",
|
722
|
-
"type": "uint256"
|
723
|
-
}
|
724
|
-
],
|
725
|
-
"stateMutability": "view",
|
657
|
+
"name": "initializeERC165",
|
658
|
+
"outputs": [],
|
659
|
+
"stateMutability": "nonpayable",
|
726
660
|
"type": "function"
|
727
661
|
},
|
728
662
|
{
|
729
663
|
"inputs": [
|
730
664
|
{
|
731
|
-
"internalType": "
|
732
|
-
"name": "
|
733
|
-
"type": "
|
734
|
-
}
|
735
|
-
],
|
736
|
-
"name": "getVersionInfo",
|
737
|
-
"outputs": [
|
665
|
+
"internalType": "address",
|
666
|
+
"name": "initialOwner",
|
667
|
+
"type": "address"
|
668
|
+
},
|
738
669
|
{
|
739
|
-
"
|
740
|
-
|
741
|
-
|
742
|
-
"name": "version",
|
743
|
-
"type": "uint24"
|
744
|
-
},
|
745
|
-
{
|
746
|
-
"internalType": "address",
|
747
|
-
"name": "implementation",
|
748
|
-
"type": "address"
|
749
|
-
},
|
750
|
-
{
|
751
|
-
"internalType": "address",
|
752
|
-
"name": "activatedBy",
|
753
|
-
"type": "address"
|
754
|
-
},
|
755
|
-
{
|
756
|
-
"internalType": "Timestamp",
|
757
|
-
"name": "activatedAt",
|
758
|
-
"type": "uint40"
|
759
|
-
},
|
760
|
-
{
|
761
|
-
"internalType": "Blocknumber",
|
762
|
-
"name": "activatedIn",
|
763
|
-
"type": "uint32"
|
764
|
-
}
|
765
|
-
],
|
766
|
-
"internalType": "struct IVersionable.VersionInfo",
|
767
|
-
"name": "",
|
768
|
-
"type": "tuple"
|
670
|
+
"internalType": "address",
|
671
|
+
"name": "registryAddress",
|
672
|
+
"type": "address"
|
769
673
|
}
|
770
674
|
],
|
771
|
-
"
|
675
|
+
"name": "initializeNftOwnable",
|
676
|
+
"outputs": [],
|
677
|
+
"stateMutability": "nonpayable",
|
772
678
|
"type": "function"
|
773
679
|
},
|
774
680
|
{
|
775
681
|
"inputs": [
|
776
682
|
{
|
777
683
|
"internalType": "address",
|
778
|
-
"name": "
|
684
|
+
"name": "registryAddress",
|
779
685
|
"type": "address"
|
780
686
|
},
|
687
|
+
{
|
688
|
+
"internalType": "NftId",
|
689
|
+
"name": "parentNftId",
|
690
|
+
"type": "uint96"
|
691
|
+
},
|
692
|
+
{
|
693
|
+
"internalType": "ObjectType",
|
694
|
+
"name": "objectType",
|
695
|
+
"type": "uint8"
|
696
|
+
},
|
697
|
+
{
|
698
|
+
"internalType": "bool",
|
699
|
+
"name": "isInterceptor",
|
700
|
+
"type": "bool"
|
701
|
+
},
|
781
702
|
{
|
782
703
|
"internalType": "address",
|
783
|
-
"name": "
|
704
|
+
"name": "initialOwner",
|
784
705
|
"type": "address"
|
785
706
|
},
|
786
707
|
{
|
787
708
|
"internalType": "bytes",
|
788
|
-
"name": "
|
709
|
+
"name": "registryData",
|
789
710
|
"type": "bytes"
|
790
711
|
}
|
791
712
|
],
|
792
|
-
"name": "
|
713
|
+
"name": "initializeRegisterable",
|
793
714
|
"outputs": [],
|
794
715
|
"stateMutability": "nonpayable",
|
795
716
|
"type": "function"
|
@@ -797,20 +718,50 @@
|
|
797
718
|
{
|
798
719
|
"inputs": [
|
799
720
|
{
|
800
|
-
"internalType": "
|
801
|
-
"name": "
|
802
|
-
"type": "
|
721
|
+
"internalType": "address",
|
722
|
+
"name": "registryAddress",
|
723
|
+
"type": "address"
|
803
724
|
}
|
804
725
|
],
|
805
|
-
"name": "
|
806
|
-
"outputs": [
|
726
|
+
"name": "initializeRegistryLinked",
|
727
|
+
"outputs": [],
|
728
|
+
"stateMutability": "nonpayable",
|
729
|
+
"type": "function"
|
730
|
+
},
|
731
|
+
{
|
732
|
+
"inputs": [
|
807
733
|
{
|
808
|
-
"internalType": "
|
809
|
-
"name": "",
|
810
|
-
"type": "
|
734
|
+
"internalType": "address",
|
735
|
+
"name": "registry",
|
736
|
+
"type": "address"
|
737
|
+
},
|
738
|
+
{
|
739
|
+
"internalType": "address",
|
740
|
+
"name": "initialOwner",
|
741
|
+
"type": "address"
|
811
742
|
}
|
812
743
|
],
|
813
|
-
"
|
744
|
+
"name": "initializeService",
|
745
|
+
"outputs": [],
|
746
|
+
"stateMutability": "nonpayable",
|
747
|
+
"type": "function"
|
748
|
+
},
|
749
|
+
{
|
750
|
+
"inputs": [
|
751
|
+
{
|
752
|
+
"internalType": "address",
|
753
|
+
"name": "activatedBy",
|
754
|
+
"type": "address"
|
755
|
+
},
|
756
|
+
{
|
757
|
+
"internalType": "bytes",
|
758
|
+
"name": "data",
|
759
|
+
"type": "bytes"
|
760
|
+
}
|
761
|
+
],
|
762
|
+
"name": "initializeVersionable",
|
763
|
+
"outputs": [],
|
764
|
+
"stateMutability": "nonpayable",
|
814
765
|
"type": "function"
|
815
766
|
},
|
816
767
|
{
|
@@ -823,12 +774,12 @@
|
|
823
774
|
{
|
824
775
|
"inputs": [
|
825
776
|
{
|
826
|
-
"internalType": "
|
827
|
-
"name": "
|
828
|
-
"type": "
|
777
|
+
"internalType": "bytes4",
|
778
|
+
"name": "interfaceId",
|
779
|
+
"type": "bytes4"
|
829
780
|
}
|
830
781
|
],
|
831
|
-
"name": "
|
782
|
+
"name": "registerInterface",
|
832
783
|
"outputs": [],
|
833
784
|
"stateMutability": "nonpayable",
|
834
785
|
"type": "function"
|
@@ -856,7 +807,7 @@
|
|
856
807
|
"inputs": [
|
857
808
|
{
|
858
809
|
"internalType": "NftId",
|
859
|
-
"name": "
|
810
|
+
"name": "applicationNftId",
|
860
811
|
"type": "uint96"
|
861
812
|
},
|
862
813
|
{
|
@@ -877,76 +828,30 @@
|
|
877
828
|
},
|
878
829
|
{
|
879
830
|
"inputs": [
|
880
|
-
{
|
881
|
-
"internalType": "address",
|
882
|
-
"name": "implementation",
|
883
|
-
"type": "address"
|
884
|
-
},
|
885
|
-
{
|
886
|
-
"internalType": "address",
|
887
|
-
"name": "activatedBy",
|
888
|
-
"type": "address"
|
889
|
-
},
|
890
831
|
{
|
891
832
|
"internalType": "bytes",
|
892
833
|
"name": "data",
|
893
834
|
"type": "bytes"
|
894
835
|
}
|
895
836
|
],
|
896
|
-
"name": "
|
837
|
+
"name": "upgradeVersionable",
|
897
838
|
"outputs": [],
|
898
839
|
"stateMutability": "nonpayable",
|
899
840
|
"type": "function"
|
900
841
|
}
|
901
842
|
],
|
902
|
-
"bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6152f6806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610528578063cc9fc59a14610530578063cde749f414610538578063cf7a1d771461054057600080fd5b8063b88da759146104ef578063bbfbbfba14610502578063c2c749871461051557600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046c578063a745e3df146104a7578063b3c65015146104ba578063b68d1809146104da57600080fd5b8063644c45e014610411578063893d20e81461043d578063946dfcfe1461044557600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b35780635fd1a5f5146103d8578063603ccaad146103eb578063630361f6146103fe57600080fd5b80634d459c90146102745780634d5e16a91461038d5780634f421333146103a057600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102055780630fec111c14610221578063138461e0146102375780631eff4b221461023f575b600080fd5b6101db6101bc366004614187565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102036101fe3660046141c6565b610553565b005b61020d610b12565b60405162ffffff90911681526020016101e7565b610229610b9c565b6040516101e79291906142a4565b610203610cef565b6102667f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b6103306102823660046142e3565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526000805160206152a183398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b61020361039b366004614313565b610f0c565b6101db6103ae3660046142e3565b61117e565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102666103e636600461434c565b611231565b6102036103f93660046141c6565b61133a565b61020361040c36600461437c565b61138f565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103c0611901565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610266565b61047f61047a366004614531565b611a1a565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102036104b53660046145ce565b611af8565b6104c2611c52565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020d6104fd36600461462f565b611c73565b610203610510366004614313565b611cc4565b610425610523366004614648565b612038565b6103c06122f0565b6103c0612387565b6104dd6123b1565b61020361054e3660046145ce565b612434565b600061055f606e61253c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906146e4565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610619573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610641919081019061477e565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c591906148fd565b156106f3576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190614934565b905060ff81166064146107a157604051634de91cf360e11b81526001600160601b038616600482015260ff821660248201526044016106ea565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af41580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082291906148fd565b1561084b57604051634b80547760e11b81526001600160601b03861660048201526024016106ea565b8160c001518260a00151146108955760a082015160c0830151604051632b14368360e11b81526001600160601b0388166004820152602481019290925260448201526064016106ea565b61016082015161ffff16156108d95761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff90911660248201526044016106ea565b816101c0015164ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63add9ce99909173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f9190614951565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af41580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc91906148fd565b80156109f057508160800151826101800151105b15610a2d576101c0820151604051630e79f6e160e21b81526001600160601b038716600482015264ffffffffff90911660248201526044016106ea565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a9190614951565b64ffffffffff166101e08301526001600160a01b038416639a960d52868460c85b6040518463ffffffff1660e01b8152600401610ad993929190614a9d565b600060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b979190614ad2565b905090565b610ba46140cb565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610bf06001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c38611901565b6001600160a01b03168152602001826001018054610c5590614aef565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190614aef565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7591906148fd565b15610db7576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044016106ea565b6001546001600160a01b0316610de05760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d91906148fd565b610e75576040516372657a5160e01b81526001600160a01b03821660048201526024016106ea565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee39190614b29565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b6000610f18606e61253c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f91906146e4565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061477e565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561105a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107e91906148fd565b6110ca5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016106ea565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111599190614951565b64ffffffffff166101c08201526001600160a01b038316639a960d5286836064610abb565b6000806000805160206152a183398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015611206573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122a9190614b46565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa9190614b46565b905060006112b885836127b3565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af415801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190614b46565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016106ea565b50565b60008061139c606e61253c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140491906146e4565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa15801561145a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611482919081019061477e565b80519091506001600160601b038381169116146114e15760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016106ea565b604051639096a1f360e01b81526001600160601b038916600482015261155f906001600160a01b03851690639096a1f390602401602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115569190614934565b60ff16600a1490565b6115ab5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016106ea565b60006115b5614109565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561160a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162e9190614bb8565b9050611638614109565b6116448a8a89856127cf565b91975090945061165d92508a9150869050858f86612952565b9250602864ffffffffff8b161561171057606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af41580156116de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117029190614951565b64ffffffffff166101c08701525b8b156117465761172a898b600001518f8960a00151612979565b91508560a001518660c0018181516117429190614cc5565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016117c49594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b815260040161182693929190614a9d565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa1580156118ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d09190614cd8565b90508060e00151156118f1576118f185600001518f89886040015188612f31565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a91906148fd565b15611a0a57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156119e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9791906146e4565b506002546001600160a01b031690565b600080600080600080611a2b613036565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b8152600401611a619493929190614d8d565b602060405180830381865afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190614b46565b9050611ab081838b8b613055565b92985090965094509250611ac48682614cc5565b9650611ad08486614cc5565b611ada9088614cc5565b9650611ae68388614cc5565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c611b1a610b12565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e9190614dc8565b6000805160206152818339815191528054600160401b900460ff1680611bb1575080546001600160401b03808416911610155b15611bcf5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611bfa85856136ee565b611c038361398d565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610b97600080516020615281833981519152546001600160401b031690565b60006000805160206152a18339815191526001018281548110611c9857611c98614df1565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611cd1606e61253c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3991906146e4565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611d8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611db4919081019061477e565b90508060a001518160c0015103611df65760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016106ea565b60008160c001518260a00151611e0c9190614e07565b90506000611e208587600001518a85612979565b9050818360c001818151611e349190614cc5565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d528985611ecd60ff90565b6040518463ffffffff1660e01b8152600401611eeb93929190614a9d565b600060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9791906148fd565b801561201f57506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201f91906148fd565b1561202e5761202e8888610f0c565b5050505050505050565b60008080612046606e61253c565b915091506120526122f0565b6001600160a01b0316635c992fed6040518060e00160405280612073600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016120ec9190614e1a565b6020604051808303816000875af115801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f9190614b29565b925060006121418a8a8a8a8a8a611a1a565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff168152602001600081526020016121f0600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d4000906122369088908590600401614e2d565b600060405180830381600087803b15801561225057600080fd5b505af1158015612264573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86612280600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156122c957600080fd5b505af11580156122dd573d6000803e3d6000fd5b5050505050505050979650505050505050565b6000806123056001546001600160a01b031690565b6001600160a01b031663d39e604360285b61231e6123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906146e4565b60008061239c6001546001600160a01b031690565b6001600160a01b031663d39e60436046612316565b60006123bb610b12565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015612410573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b979190614934565b6000805160206152818339815191528054600160401b810460ff1615906001600160401b03166000811580156124675750825b90506000826001600160401b031660011480156124835750303b155b905081158015612491575080155b156124af5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156124d957845460ff60401b1916600160401b1785555b6124e388886136ee565b6124ed8787613995565b831561202e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b6125446140cb565b6000806125596001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa1580156125a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c89190810190614e4f565b92506125de83604001518560ff90811691161490565b6126205760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016106ea565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612676573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261269e9190810190614e4f565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270b91906146e4565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa158015612758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277c91906148fd565b156127ab57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016106ea565b505050915091565b60006127c88383670de0b6b3a7640000613c03565b9392505050565b60006127d9614109565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa158015612831573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128599190810190614f21565b805160608601519193506001600160601b039081169116146128b65760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016106ea565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561290c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129309190614cd8565b905061294481604001518860800151611231565b925050509450945094915050565b61295a614109565b818460800181815161296c9190614cc5565b9052509295945050505050565b60008115612f29576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e591906146e4565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a599190614bb8565b60208101519091506000612a756001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906146e4565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e91906146e4565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc89190614cd8565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c290612c12908490600401614ff2565b602060405180830381865af4158015612c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5391906148fd565b15612cbf576040516317d5759960e31b81526001600160a01b0386169063beabacc890612c8890879086908d90600401615009565b600060405180830381600087803b158015612ca257600080fd5b505af1158015612cb6573d6000803e3d6000fd5b50505050612f22565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4e919061502d565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbf91906146e4565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e339190614b46565b1015612e585786888c604051636d675c4360e01b81526004016106ea93929190615009565b6040516317d5759960e31b81526001600160a01b0389169063beabacc890612e88908a9085908890600401615009565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc89150612eea908a9089908790600401615009565b600060405180830381600087803b158015612f0457600080fd5b505af1158015612f18573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b6000612f456001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612f94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fbc9190810190614e4f565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612ffb918a9189908990600401615051565b600060405180830381600087803b15801561301557600080fd5b505af1158015613029573d6000803e3d6000fd5b5050505050505050505050565b60006130406140cb565b61304a606e61253c565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561309c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c091906146e4565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613100573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312491906146e4565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015613167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318b9190614b29565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa1580156131de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132069190810190614f21565b80519091506001600160601b038381169116146132705760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016106ea565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e29190614b29565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015613327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334b9190614bb8565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156133b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d8919061502d565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa15801561342e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134529190614cd8565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df919061502d565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015613525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135499190614b29565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561359c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c09190615097565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015613629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061364d919061502d565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af41580156136b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136db919061502d565b5080955050505050945094509450949050565b6136f6613cec565b6000805160206152a18339815191526000613726600080516020615281833981519152546001600160401b031690565b90506000613732610b12565b9050816001600160401b031660010361375f5760028301805462ffffff191662ffffff83161790556137ad565b600283015462ffffff908116908216116137ad5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106ea565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015613861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138859190614951565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890611c439083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a9613cec565b6000805160206152818339815191528054600160401b810460ff1615906001600160401b03166000811580156139c85750825b90506000826001600160401b031660011480156139e45750303b155b9050811580156139f2575080155b15613a105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315613a3a57845460ff60401b1916600160401b1785555b60008087806020019051810190613a51919061512d565b9092509050613a60828a613d25565b6001546001600160a01b031663d39e6043608c613a7b6123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae491906146e4565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e6043613b1160dc90565b613b196123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8291906146e4565b600480546001600160a01b0319166001600160a01b0392909216919091179055613bb263fefde12b60e01b613d90565b50508315613bfa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6000808060001985870985870292508281108382030391505080600003613c3d57838281613c3357613c3361515c565b04925050506127c8565b808411613c845760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016106ea565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b60008051602061528183398151915254600160401b900460ff16613d2357604051631afcd79f60e31b815260040160405180910390fd5b565b600060d2613d316123b1565b6040805160ff9384166020820152929091169082015260600160405160208183030381529060405290506000613d6684613db5565b90506000613d798583603c848888613e20565b613d89637b6a51fd60e01b613d90565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015613dfc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190614b29565b613e616301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b613e6b8287613eec565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101613edb83826151c1565b50613bfa6303fb044760e21b613d90565b6001600160a01b038216613f425760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016106ea565b600280546001600160a01b0319166001600160a01b038416179055613f6681613f6a565b5050565b6001546001600160a01b031615613fa35760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016106ea565b6001600160a01b038116613fca5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036140005760405163fdeac91f60e01b81526001600160a01b03821660048201526024016106ea565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa92505050801561407a575060408051601f3d908101601f19168201909252614077918101906148fd565b60015b6140a25760405163fdeac91f60e01b81526001600160a01b03821660048201526024016106ea565b80613f665760405163fdeac91f60e01b81526001600160a01b03831660048201526024016106ea565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001614142604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561419957600080fd5b81356001600160e01b0319811681146127c857600080fd5b6001600160601b038116811461138c57600080fd5b6000602082840312156141d857600080fd5b81356127c8816141b1565b60005b838110156141fe5781810151838201526020016141e6565b50506000910152565b6000815180845261421f8160208601602086016141e3565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c0850152612f2960e0850182614207565b6040815260006142b76040830185614233565b82810360208401526142c98185614207565b95945050505050565b62ffffff8116811461138c57600080fd5b6000602082840312156142f557600080fd5b81356127c8816142d2565b64ffffffffff8116811461138c57600080fd5b6000806040838503121561432657600080fd5b8235614331816141b1565b9150602083013561434181614300565b809150509250929050565b6000806040838503121561435f57600080fd5b50508035926020909101359150565b801515811461138c57600080fd5b60008060006060848603121561439157600080fd5b833561439c816141b1565b925060208401356143ac8161436e565b915060408401356143bc81614300565b809150509250925092565b6001600160c01b03198116811461138c57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715614416576144166143dd565b60405290565b60405161018081016001600160401b0381118282101715614416576144166143dd565b60405161012081016001600160401b0381118282101715614416576144166143dd565b60405160e081016001600160401b0381118282101715614416576144166143dd565b604051601f8201601f191681016001600160401b03811182821017156144ac576144ac6143dd565b604052919050565b60006001600160401b038211156144cd576144cd6143dd565b50601f01601f191660200190565b600082601f8301126144ec57600080fd5b81356144ff6144fa826144b4565b614484565b81815284602083860101111561451457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561454a57600080fd5b8635614555816143c7565b9550602087013594506040870135935060608701356001600160401b0381111561457e57600080fd5b61458a89828a016144db565b935050608087013561459b816141b1565b915060a08701356145ab816143c7565b809150509295509295509295565b6001600160a01b038116811461138c57600080fd5b6000806000606084860312156145e357600080fd5b83356145ee816145b9565b925060208401356145fe816145b9565b915060408401356001600160401b0381111561461957600080fd5b614625868287016144db565b9150509250925092565b60006020828403121561464157600080fd5b5035919050565b600080600080600080600060e0888a03121561466357600080fd5b873561466e816145b9565b9650602088013561467e816143c7565b9550604088013594506060880135935060808801356001600160401b038111156146a757600080fd5b6146b38a828b016144db565b93505060a08801356146c4816141b1565b915060c08801356146d4816143c7565b8091505092959891949750929550565b6000602082840312156146f657600080fd5b81516127c8816145b9565b805161470c816141b1565b919050565b805161470c816143c7565b600082601f83011261472d57600080fd5b815161473b6144fa826144b4565b81815284602083860101111561475057600080fd5b612f298260208301602087016141e3565b805161ffff8116811461470c57600080fd5b805161470c81614300565b60006020828403121561479057600080fd5b81516001600160401b03808211156147a757600080fd5b9083019061020082860312156147bc57600080fd5b6147c46143f3565b6147cd83614701565b81526147db60208401614701565b60208201526147ec60408401614711565b60408201526147fd60608401614711565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561483e57600080fd5b61484a8882870161471c565b828401525050610120808401518381111561486457600080fd5b6148708882870161471c565b8284015250506101409150614886828401614761565b82820152610160915061489a828401614761565b82820152610180915081830151828201526101a091506148bb828401614773565b828201526101c091506148cf828401614773565b828201526101e091506148e3828401614773565b91810191909152949350505050565b805161470c8161436e565b60006020828403121561490f57600080fd5b81516127c88161436e565b60ff8116811461138c57600080fd5b805161470c8161491a565b60006020828403121561494657600080fd5b81516127c88161491a565b60006020828403121561496357600080fd5b81516127c881614300565b80516001600160601b031682526000610200602083015161499a60208601826001600160601b03169052565b5060408301516149b660408601826001600160c01b0319169052565b5060608301516149d260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614a1383870182614207565b925050506101208084015185830382870152614a2f8382614207565b9250505061014080840151614a498287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b0384168152606060208201526000614abf606083018561496e565b905060ff83166040830152949350505050565b600060208284031215614ae457600080fd5b81516127c8816142d2565b600181811c90821680614b0357607f821691505b602082108103614b2357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614b3b57600080fd5b81516127c8816141b1565b600060208284031215614b5857600080fd5b5051919050565b805161470c816145b9565b600060408284031215614b7c57600080fd5b604051604081018181106001600160401b0382111715614b9e57614b9e6143dd565b604052825181526020928301519281019290925250919050565b60006102408284031215614bcb57600080fd5b614bd361441c565b614bdc83614b5f565b8152614bea60208401614b5f565b6020820152614bfb60408401614701565b6040820152614c0c60608401614701565b6060820152614c1e8460808501614b6a565b6080820152614c308460c08501614b6a565b60a0820152610100614c4485828601614b6a565b60c0830152610140614c5886828701614b6a565b60e0840152614c6b866101808701614b6a565b82840152614c7d866101c08701614b6a565b610120840152614c9061020086016148f2565b9083015250614ca26102208401614b5f565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561133457611334614caf565b60006101808284031215614ceb57600080fd5b614cf361443f565b614cfc83614701565b8152614d0a60208401614b5f565b602082015260408301516040820152614d268460608501614b6a565b6060820152614d388460a08501614b6a565b6080820152614d4a8460e08501614b6a565b60a0820152614d5c61012084016148f2565b60c0820152614d6e61014084016148f2565b60e0820152614d806101608401614b5f565b6101008201529392505050565b8481526001600160401b0360c01b84166020820152826040820152608060608201526000614dbe6080830184614207565b9695505050505050565b600060208284031215614dda57600080fd5b81516001600160401b03811681146127c857600080fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561133457611334614caf565b6020815260006127c86020830184614233565b6001600160601b0383168152604060208201526000612f29604083018461496e565b600060208284031215614e6157600080fd5b81516001600160401b0380821115614e7857600080fd5b9083019060e08286031215614e8c57600080fd5b614e94614462565b614e9d83614701565b8152614eab60208401614701565b6020820152614ebc60408401614929565b6040820152614ecd606084016148f2565b6060820152614ede60808401614b5f565b6080820152614eef60a08401614b5f565b60a082015260c083015182811115614f0657600080fd5b614f128782860161471c565b60c08301525095945050505050565b600060208284031215614f3357600080fd5b81516001600160401b0380821115614f4a57600080fd5b908301906101408286031215614f5f57600080fd5b614f6761443f565b614f7083614701565b8152614f7f8660208501614b6a565b6020820152606083015182811115614f9657600080fd5b614fa28782860161471c565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614fe0828401614773565b60e08201526148e36101208401614773565b815181526020808301519082015260408101611334565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000806040838503121561504057600080fd5b505080516020909101519092909150565b6001600160601b03851681526080602082015260006150736080830186614207565b82810360408401526150858186614207565b91505082606083015295945050505050565b600060c082840312156150a957600080fd5b60405160a081018181106001600160401b03821117156150cb576150cb6143dd565b60405282516150d9816141b1565b815260208301516150e9816145b9565b60208201526150fb8460408501614b6a565b6040820152608083015161510e8161436e565b606082015260a0830151615121816145b9565b60808201529392505050565b6000806040838503121561514057600080fd5b825161514b816145b9565b6020840151909250614341816145b9565b634e487b7160e01b600052601260045260246000fd5b601f8211156151bc57600081815260208120601f850160051c810160208610156151995750805b601f850160051c820191505b818110156151b8578281556001016151a5565b5050505b505050565b81516001600160401b038111156151da576151da6143dd565b6151ee816151e88454614aef565b84615172565b602080601f831160018114615223576000841561520b5750858301515b600019600386901b1c1916600185901b1785556151b8565b600085815260208120601f198616915b8281101561525257888601518255948401946001909101908401615233565b50858210156152705787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a264697066735822122082cae074a7843a24344643a181d62002fc369f9f7808b99b12d19c96a4518ec564736f6c63430008140033",
|
903
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610528578063cc9fc59a14610530578063cde749f414610538578063cf7a1d771461054057600080fd5b8063b88da759146104ef578063bbfbbfba14610502578063c2c749871461051557600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046c578063a745e3df146104a7578063b3c65015146104ba578063b68d1809146104da57600080fd5b8063644c45e014610411578063893d20e81461043d578063946dfcfe1461044557600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b35780635fd1a5f5146103d8578063603ccaad146103eb578063630361f6146103fe57600080fd5b80634d459c90146102745780634d5e16a91461038d5780634f421333146103a057600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102055780630fec111c14610221578063138461e0146102375780631eff4b221461023f575b600080fd5b6101db6101bc366004614187565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102036101fe3660046141c6565b610553565b005b61020d610b12565b60405162ffffff90911681526020016101e7565b610229610b9c565b6040516101e79291906142a4565b610203610cef565b6102667f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b6103306102823660046142e3565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526000805160206152a183398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b61020361039b366004614313565b610f0c565b6101db6103ae3660046142e3565b61117e565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102666103e636600461434c565b611231565b6102036103f93660046141c6565b61133a565b61020361040c36600461437c565b61138f565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103c0611901565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610266565b61047f61047a366004614531565b611a1a565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102036104b53660046145ce565b611af8565b6104c2611c52565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020d6104fd36600461462f565b611c73565b610203610510366004614313565b611cc4565b610425610523366004614648565b612038565b6103c06122f0565b6103c0612387565b6104dd6123b1565b61020361054e3660046145ce565b612434565b600061055f606e61253c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906146e4565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610619573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610641919081019061477e565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c591906148fd565b156106f3576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190614934565b905060ff81166064146107a157604051634de91cf360e11b81526001600160601b038616600482015260ff821660248201526044016106ea565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af41580156107fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082291906148fd565b1561084b57604051634b80547760e11b81526001600160601b03861660048201526024016106ea565b8160c001518260a00151146108955760a082015160c0830151604051632b14368360e11b81526001600160601b0388166004820152602481019290925260448201526064016106ea565b61016082015161ffff16156108d95761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff90911660248201526044016106ea565b816101c0015164ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63add9ce99909173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561094b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096f9190614951565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af41580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc91906148fd565b80156109f057508160800151826101800151105b15610a2d576101c0820151604051630e79f6e160e21b81526001600160601b038716600482015264ffffffffff90911660248201526044016106ea565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a9190614951565b64ffffffffff166101e08301526001600160a01b038416639a960d52868460c85b6040518463ffffffff1660e01b8152600401610ad993929190614a9d565b600060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b979190614ad2565b905090565b610ba46140cb565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610bf06001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c38611901565b6001600160a01b03168152602001826001018054610c5590614aef565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190614aef565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7591906148fd565b15610db7576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044016106ea565b6001546001600160a01b0316610de05760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d91906148fd565b610e75576040516372657a5160e01b81526001600160a01b03821660048201526024016106ea565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee39190614b29565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b6000610f18606e61253c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f91906146e4565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061477e565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561105a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107e91906148fd565b6110ca5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016106ea565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111599190614951565b64ffffffffff166101c08201526001600160a01b038316639a960d5286836064610abb565b6000806000805160206152a183398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015611206573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122a9190614b46565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa9190614b46565b905060006112b885836127b3565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af415801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190614b46565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016106ea565b50565b60008061139c606e61253c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140491906146e4565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa15801561145a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611482919081019061477e565b80519091506001600160601b038381169116146114e15760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016106ea565b604051639096a1f360e01b81526001600160601b038916600482015261155f906001600160a01b03851690639096a1f390602401602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115569190614934565b60ff16600a1490565b6115ab5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016106ea565b60006115b5614109565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561160a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162e9190614bb8565b9050611638614109565b6116448a8a89856127cf565b91975090945061165d92508a9150869050858f86612952565b9250602864ffffffffff8b161561171057606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af41580156116de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117029190614951565b64ffffffffff166101c08701525b8b156117465761172a898b600001518f8960a00151612979565b91508560a001518660c0018181516117429190614cc5565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016117c49594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b815260040161182693929190614a9d565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa1580156118ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d09190614cd8565b90508060e00151156118f1576118f185600001518f89886040015188612f31565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a91906148fd565b15611a0a57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156119e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9791906146e4565b506002546001600160a01b031690565b600080600080600080611a2b613036565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b8152600401611a619493929190614d8d565b602060405180830381865afa158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190614b46565b9050611ab081838b8b613055565b92985090965094509250611ac48682614cc5565b9650611ad08486614cc5565b611ada9088614cc5565b9650611ae68388614cc5565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c611b1a610b12565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e9190614dc8565b6000805160206152818339815191528054600160401b900460ff1680611bb1575080546001600160401b03808416911610155b15611bcf5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611bfa85856136ee565b611c038361398d565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610b97600080516020615281833981519152546001600160401b031690565b60006000805160206152a18339815191526001018281548110611c9857611c98614df1565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611cd1606e61253c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3991906146e4565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611d8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611db4919081019061477e565b90508060a001518160c0015103611df65760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016106ea565b60008160c001518260a00151611e0c9190614e07565b90506000611e208587600001518a85612979565b9050818360c001818151611e349190614cc5565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d528985611ecd60ff90565b6040518463ffffffff1660e01b8152600401611eeb93929190614a9d565b600060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9791906148fd565b801561201f57506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201f91906148fd565b1561202e5761202e8888610f0c565b5050505050505050565b60008080612046606e61253c565b915091506120526122f0565b6001600160a01b0316635c992fed6040518060e00160405280612073600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016120ec9190614e1a565b6020604051808303816000875af115801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f9190614b29565b925060006121418a8a8a8a8a8a611a1a565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff168152602001600081526020016121f0600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d4000906122369088908590600401614e2d565b600060405180830381600087803b15801561225057600080fd5b505af1158015612264573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86612280600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b1580156122c957600080fd5b505af11580156122dd573d6000803e3d6000fd5b5050505050505050979650505050505050565b6000806123056001546001600160a01b031690565b6001600160a01b031663d39e604360285b61231e6123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133491906146e4565b60008061239c6001546001600160a01b031690565b6001600160a01b031663d39e60436046612316565b60006123bb610b12565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015612410573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b979190614934565b6000805160206152818339815191528054600160401b810460ff1615906001600160401b03166000811580156124675750825b90506000826001600160401b031660011480156124835750303b155b905081158015612491575080155b156124af5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156124d957845460ff60401b1916600160401b1785555b6124e388886136ee565b6124ed8787613995565b831561202e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b6125446140cb565b6000806125596001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa1580156125a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125c89190810190614e4f565b92506125de83604001518560ff90811691161490565b6126205760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016106ea565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612676573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261269e9190810190614e4f565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061270b91906146e4565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa158015612758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277c91906148fd565b156127ab57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016106ea565b505050915091565b60006127c88383670de0b6b3a7640000613c03565b9392505050565b60006127d9614109565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa158015612831573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128599190810190614f21565b805160608601519193506001600160601b039081169116146128b65760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016106ea565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561290c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129309190614cd8565b905061294481604001518860800151611231565b925050509450945094915050565b61295a614109565b818460800181815161296c9190614cc5565b9052509295945050505050565b60008115612f29576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e591906146e4565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a599190614bb8565b60208101519091506000612a756001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae891906146e4565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e91906146e4565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc89190614cd8565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c290612c12908490600401614ff2565b602060405180830381865af4158015612c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5391906148fd565b15612cbf576040516317d5759960e31b81526001600160a01b0386169063beabacc890612c8890879086908d90600401615009565b600060405180830381600087803b158015612ca257600080fd5b505af1158015612cb6573d6000803e3d6000fd5b50505050612f22565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4e919061502d565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbf91906146e4565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa158015612e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e339190614b46565b1015612e585786888c604051636d675c4360e01b81526004016106ea93929190615009565b6040516317d5759960e31b81526001600160a01b0389169063beabacc890612e88908a9085908890600401615009565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc89150612eea908a9089908790600401615009565b600060405180830381600087803b158015612f0457600080fd5b505af1158015612f18573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b6000612f456001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612f94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fbc9190810190614e4f565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612ffb918a9189908990600401615051565b600060405180830381600087803b15801561301557600080fd5b505af1158015613029573d6000803e3d6000fd5b5050505050505050505050565b60006130406140cb565b61304a606e61253c565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561309c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c091906146e4565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613100573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312491906146e4565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015613167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318b9190614b29565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa1580156131de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132069190810190614f21565b80519091506001600160601b038381169116146132705760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016106ea565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e29190614b29565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015613327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334b9190614bb8565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156133b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d8919061502d565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa15801561342e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134529190614cd8565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df919061502d565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015613525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135499190614b29565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561359c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c09190615097565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015613629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061364d919061502d565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af41580156136b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136db919061502d565b5080955050505050945094509450949050565b6136f6613cec565b6000805160206152a18339815191526000613726600080516020615281833981519152546001600160401b031690565b90506000613732610b12565b9050816001600160401b031660010361375f5760028301805462ffffff191662ffffff83161790556137ad565b600283015462ffffff908116908216116137ad5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106ea565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015613861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138859190614951565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890611c439083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a9613cec565b6000805160206152818339815191528054600160401b810460ff1615906001600160401b03166000811580156139c85750825b90506000826001600160401b031660011480156139e45750303b155b9050811580156139f2575080155b15613a105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315613a3a57845460ff60401b1916600160401b1785555b60008087806020019051810190613a51919061512d565b9092509050613a60828a613d25565b6001546001600160a01b031663d39e6043608c613a7b6123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae491906146e4565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e6043613b1160dc90565b613b196123b1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8291906146e4565b600480546001600160a01b0319166001600160a01b0392909216919091179055613bb263fefde12b60e01b613d90565b50508315613bfa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6000808060001985870985870292508281108382030391505080600003613c3d57838281613c3357613c3361515c565b04925050506127c8565b808411613c845760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016106ea565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b60008051602061528183398151915254600160401b900460ff16613d2357604051631afcd79f60e31b815260040160405180910390fd5b565b600060d2613d316123b1565b6040805160ff9384166020820152929091169082015260600160405160208183030381529060405290506000613d6684613db5565b90506000613d798583603c848888613e20565b613d89637b6a51fd60e01b613d90565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015613dfc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113349190614b29565b613e616301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b613e6b8287613eec565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101613edb83826151c1565b50613bfa6303fb044760e21b613d90565b6001600160a01b038216613f425760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016106ea565b600280546001600160a01b0319166001600160a01b038416179055613f6681613f6a565b5050565b6001546001600160a01b031615613fa35760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016106ea565b6001600160a01b038116613fca5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036140005760405163fdeac91f60e01b81526001600160a01b03821660048201526024016106ea565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa92505050801561407a575060408051601f3d908101601f19168201909252614077918101906148fd565b60015b6140a25760405163fdeac91f60e01b81526001600160a01b03821660048201526024016106ea565b80613f665760405163fdeac91f60e01b81526001600160a01b03831660048201526024016106ea565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001614142604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561419957600080fd5b81356001600160e01b0319811681146127c857600080fd5b6001600160601b038116811461138c57600080fd5b6000602082840312156141d857600080fd5b81356127c8816141b1565b60005b838110156141fe5781810151838201526020016141e6565b50506000910152565b6000815180845261421f8160208601602086016141e3565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c0850152612f2960e0850182614207565b6040815260006142b76040830185614233565b82810360208401526142c98185614207565b95945050505050565b62ffffff8116811461138c57600080fd5b6000602082840312156142f557600080fd5b81356127c8816142d2565b64ffffffffff8116811461138c57600080fd5b6000806040838503121561432657600080fd5b8235614331816141b1565b9150602083013561434181614300565b809150509250929050565b6000806040838503121561435f57600080fd5b50508035926020909101359150565b801515811461138c57600080fd5b60008060006060848603121561439157600080fd5b833561439c816141b1565b925060208401356143ac8161436e565b915060408401356143bc81614300565b809150509250925092565b6001600160c01b03198116811461138c57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715614416576144166143dd565b60405290565b60405161018081016001600160401b0381118282101715614416576144166143dd565b60405161012081016001600160401b0381118282101715614416576144166143dd565b60405160e081016001600160401b0381118282101715614416576144166143dd565b604051601f8201601f191681016001600160401b03811182821017156144ac576144ac6143dd565b604052919050565b60006001600160401b038211156144cd576144cd6143dd565b50601f01601f191660200190565b600082601f8301126144ec57600080fd5b81356144ff6144fa826144b4565b614484565b81815284602083860101111561451457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561454a57600080fd5b8635614555816143c7565b9550602087013594506040870135935060608701356001600160401b0381111561457e57600080fd5b61458a89828a016144db565b935050608087013561459b816141b1565b915060a08701356145ab816143c7565b809150509295509295509295565b6001600160a01b038116811461138c57600080fd5b6000806000606084860312156145e357600080fd5b83356145ee816145b9565b925060208401356145fe816145b9565b915060408401356001600160401b0381111561461957600080fd5b614625868287016144db565b9150509250925092565b60006020828403121561464157600080fd5b5035919050565b600080600080600080600060e0888a03121561466357600080fd5b873561466e816145b9565b9650602088013561467e816143c7565b9550604088013594506060880135935060808801356001600160401b038111156146a757600080fd5b6146b38a828b016144db565b93505060a08801356146c4816141b1565b915060c08801356146d4816143c7565b8091505092959891949750929550565b6000602082840312156146f657600080fd5b81516127c8816145b9565b805161470c816141b1565b919050565b805161470c816143c7565b600082601f83011261472d57600080fd5b815161473b6144fa826144b4565b81815284602083860101111561475057600080fd5b612f298260208301602087016141e3565b805161ffff8116811461470c57600080fd5b805161470c81614300565b60006020828403121561479057600080fd5b81516001600160401b03808211156147a757600080fd5b9083019061020082860312156147bc57600080fd5b6147c46143f3565b6147cd83614701565b81526147db60208401614701565b60208201526147ec60408401614711565b60408201526147fd60608401614711565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561483e57600080fd5b61484a8882870161471c565b828401525050610120808401518381111561486457600080fd5b6148708882870161471c565b8284015250506101409150614886828401614761565b82820152610160915061489a828401614761565b82820152610180915081830151828201526101a091506148bb828401614773565b828201526101c091506148cf828401614773565b828201526101e091506148e3828401614773565b91810191909152949350505050565b805161470c8161436e565b60006020828403121561490f57600080fd5b81516127c88161436e565b60ff8116811461138c57600080fd5b805161470c8161491a565b60006020828403121561494657600080fd5b81516127c88161491a565b60006020828403121561496357600080fd5b81516127c881614300565b80516001600160601b031682526000610200602083015161499a60208601826001600160601b03169052565b5060408301516149b660408601826001600160c01b0319169052565b5060608301516149d260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614a1383870182614207565b925050506101208084015185830382870152614a2f8382614207565b9250505061014080840151614a498287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b0384168152606060208201526000614abf606083018561496e565b905060ff83166040830152949350505050565b600060208284031215614ae457600080fd5b81516127c8816142d2565b600181811c90821680614b0357607f821691505b602082108103614b2357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614b3b57600080fd5b81516127c8816141b1565b600060208284031215614b5857600080fd5b5051919050565b805161470c816145b9565b600060408284031215614b7c57600080fd5b604051604081018181106001600160401b0382111715614b9e57614b9e6143dd565b604052825181526020928301519281019290925250919050565b60006102408284031215614bcb57600080fd5b614bd361441c565b614bdc83614b5f565b8152614bea60208401614b5f565b6020820152614bfb60408401614701565b6040820152614c0c60608401614701565b6060820152614c1e8460808501614b6a565b6080820152614c308460c08501614b6a565b60a0820152610100614c4485828601614b6a565b60c0830152610140614c5886828701614b6a565b60e0840152614c6b866101808701614b6a565b82840152614c7d866101c08701614b6a565b610120840152614c9061020086016148f2565b9083015250614ca26102208401614b5f565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561133457611334614caf565b60006101808284031215614ceb57600080fd5b614cf361443f565b614cfc83614701565b8152614d0a60208401614b5f565b602082015260408301516040820152614d268460608501614b6a565b6060820152614d388460a08501614b6a565b6080820152614d4a8460e08501614b6a565b60a0820152614d5c61012084016148f2565b60c0820152614d6e61014084016148f2565b60e0820152614d806101608401614b5f565b6101008201529392505050565b8481526001600160401b0360c01b84166020820152826040820152608060608201526000614dbe6080830184614207565b9695505050505050565b600060208284031215614dda57600080fd5b81516001600160401b03811681146127c857600080fd5b634e487b7160e01b600052603260045260246000fd5b8181038181111561133457611334614caf565b6020815260006127c86020830184614233565b6001600160601b0383168152604060208201526000612f29604083018461496e565b600060208284031215614e6157600080fd5b81516001600160401b0380821115614e7857600080fd5b9083019060e08286031215614e8c57600080fd5b614e94614462565b614e9d83614701565b8152614eab60208401614701565b6020820152614ebc60408401614929565b6040820152614ecd606084016148f2565b6060820152614ede60808401614b5f565b6080820152614eef60a08401614b5f565b60a082015260c083015182811115614f0657600080fd5b614f128782860161471c565b60c08301525095945050505050565b600060208284031215614f3357600080fd5b81516001600160401b0380821115614f4a57600080fd5b908301906101408286031215614f5f57600080fd5b614f6761443f565b614f7083614701565b8152614f7f8660208501614b6a565b6020820152606083015182811115614f9657600080fd5b614fa28782860161471c565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614fe0828401614773565b60e08201526148e36101208401614773565b815181526020808301519082015260408101611334565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000806040838503121561504057600080fd5b505080516020909101519092909150565b6001600160601b03851681526080602082015260006150736080830186614207565b82810360408401526150858186614207565b91505082606083015295945050505050565b600060c082840312156150a957600080fd5b60405160a081018181106001600160401b03821117156150cb576150cb6143dd565b60405282516150d9816141b1565b815260208301516150e9816145b9565b60208201526150fb8460408501614b6a565b6040820152608083015161510e8161436e565b606082015260a0830151615121816145b9565b60808201529392505050565b6000806040838503121561514057600080fd5b825161514b816145b9565b6020840151909250614341816145b9565b634e487b7160e01b600052601260045260246000fd5b601f8211156151bc57600081815260208120601f850160051c810160208610156151995750805b601f850160051c820191505b818110156151b8578281556001016151a5565b5050505b505050565b81516001600160401b038111156151da576151da6143dd565b6151ee816151e88454614aef565b84615172565b602080601f831160018114615223576000841561520b5750858301515b600019600386901b1c1916600185901b1785556151b8565b600085815260208120601f198616915b8281101561525257888601518255948401946001909101908401615233565b50858210156152705787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a264697066735822122082cae074a7843a24344643a181d62002fc369f9f7808b99b12d19c96a4518ec564736f6c63430008140033",
|
843
|
+
"bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6149c180620000e66000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635fd1a5f511610104578063b68d1809116100a2578063cde749f411610071578063cde749f4146103ff578063ea86657214610407578063f21de1e814610311578063f7c34ee01461041a57600080fd5b8063b68d1809146103c7578063bbfbbfba146103dc578063caf4e3d4146103ef578063cc9fc59a146103f757600080fd5b8063675393bf116100de578063675393bf14610384578063893d20e8146103975780639ffcede91461039f578063ada9652e146103b257600080fd5b80635fd1a5f514610336578063630361f614610349578063644c45e01461035c57600080fd5b806327bb7a33116101715780633d3cf0231161014b5780633d3cf023146102da57806349bb9e4b146102eb5780634d5e16a9146102fe5780635ab1bd531461031157600080fd5b806327bb7a33146102ac578063329d6e74146102bf57806336fc697e146102d257600080fd5b80630fec111c116101ad5780630fec111c14610247578063138461e01461025c5780631eff4b2214610264578063214cdb801461029957600080fd5b806301ffc9a7146101d45780630aaba8e8146102165780630d8e6e2c1461022b575b600080fd5b6102016101e2366004613717565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610229610224366004613756565b61042d565b005b610233610a6b565b60405162ffffff909116815260200161020d565b61024f610af5565b60405161020d91906137c3565b610229610c91565b61028b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161020d565b6102296102a7366004613717565b610e93565b6102296102ba366004613a3c565b610ec0565b6102296102cd366004613ad4565b610f4c565b610229611099565b6102296102e8366004613756565b50565b6102296102f9366004613b08565b6110df565b61022961030c366004613b6a565b6111de565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161020d565b61028b610344366004613ba3565b611454565b610229610357366004613bc5565b61155d565b60008051602061494c833981519152546040516001600160601b03909116815260200161020d565b610229610392366004613c10565b611bdd565b61031e611cea565b6102296103ad366004613756565b611e21565b61028b60008051602061494c83398151915281565b60d35b60405160ff909116815260200161020d565b6102296103ea366004613b6a565b611e73565b61031e6121d5565b61031e61226c565b6103ca612296565b610229610415366004613c2d565b61230d565b610229610428366004613c2d565b6123a5565b6000610439606e61241c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190613c5b565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051b9190810190613d0d565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561057b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059f9190613e93565b156105cd576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190613ebb565b905060ff811660641461067b57604051634de91cf360e11b81526001600160601b038616600482015260ff821660248201526044016105c4565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af41580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190613e93565b1561072557604051634b80547760e11b81526001600160601b03861660048201526024016105c4565b8160c001518260a001511461076f5760a082015160c0830151604051632b14368360e11b81526001600160601b0388166004820152602481019290925260448201526064016105c4565b61016082015161ffff16156107b35761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff90911660248201526044016105c4565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190613ed8565b6101c0830151604051634a19ad8d60e11b815264ffffffffff92831660048201529116602482015273__$d53880c81dc91c20799140d711e5ab8718$__906394335b1a90604401602060405180830381865af4158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613e93565b80156108bc57508160800151826101800151105b156108f9576101c0820151604051630e79f6e160e21b81526001600160601b038716600482015264ffffffffff90911660248201526044016105c4565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190613ed8565b64ffffffffff166101e0830152600354602083015160808401516040516303c5c06160e41b81526001600160a01b0388811660048301526001600160601b03808b16602484015290931660448201526064810191909152911690633c5c061090608401600060405180830381600087803b1580156109e357600080fd5b505af11580156109f7573d6000803e3d6000fd5b50505050836001600160a01b0316631518afb98684610a1460c890565b6040518463ffffffff1660e01b8152600401610a3293929190613ef5565b600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190614068565b905090565b610afd613654565b604080516080810182527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b038116835260ff600160601b820481166020850152600160681b909104161515928201929092527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3018054600093916060840191610b8d9061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb99061408d565b8015610c065780601f10610bdb57610100808354040283529160200191610c06565b820191906000526020600020905b815481529060010190602001808311610be957829003601f168201915b50505050508152505090506040518060e00160405280610c24600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610c75611cea565b6001600160a01b03168152602001826060015181525091505090565b600060008051602061494c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d249190613e93565b15610d505780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016105c4565b30610d636001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190613e93565b610df75760405163b9304b0d60e01b81526001600160a01b03821660048201526024016105c4565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6f91906140c7565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b610e9b612693565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610ec8612693565b610ed282876123a5565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101610f428382614133565b5050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610f6e610a6b565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190614212565b60008051602061496c8339815191528054600160401b900460ff1680611005575080546001600160401b03808416911610155b156110235760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561104d836126cc565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6110a1612693565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008051602061496c8339815191528054600160401b810460ff1615906001600160401b03166000811580156111125750825b90506000826001600160401b0316600114801561112e5750303b155b90508115801561113c575080155b1561115a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561118457845460ff60401b1916600160401b1785555b61118e87876126d4565b83156111d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b60006111ea606e61241c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190613c5b565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa1580156112a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112cc9190810190613d0d565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561132c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113509190613e93565b61139c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016105c4565b64ffffffffff8481166101a0830181905260e08301516040516352bcc5a760e11b81526004810192909252909116602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af415801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190613ed8565b64ffffffffff166101c08201526001600160a01b038316631518afb986836064610a14565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af41580156114a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cd919061422f565b905060006114db8583612a5f565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af415801561152e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611552919061422f565b925050505b92915050565b600080600061156a613654565b611574606e61241c565b8095508192505050836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de9190613c5b565b905160405163bd7d9d8560e01b81526001600160601b038916600482015291935091506000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261165d9190810190613d0d565b80519091506001600160601b038381169116146116bc5760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016105c4565b604051639096a1f360e01b81526001600160601b038816600482015261173a906001600160a01b03851690639096a1f390602401602060405180830381865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190613ebb565b60ff16600a1490565b6117865760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016105c4565b6000806000806118148888878a6001600160a01b03166390af70648b6040518263ffffffff1660e01b81526004016117cd91906001600160601b0391909116815260200190565b61014060405180830381865afa1580156117eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180f91906142a1565b612a7b565b93509350935093506000611826602890565b905064ffffffffff8a16156118db57606464ffffffffff8b81166101a0890181905260e08901516040516352bcc5a760e11b81526004810192909252909116602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af41580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190613ed8565b64ffffffffff166101c08701525b60008b1561190e576118f28a8e8960a00151612c1c565b90508660a001518760c00181815161190a919061435f565b9052505b600360009054906101000a90046001600160a01b03166001600160a01b031663a7e0dea78b8f8887866040518663ffffffff1660e01b815260040161198c9594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b6000604051808303816000875af11580156119ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d39190810190614372565b9350896001600160a01b0316631518afb98e89856040518463ffffffff1660e01b8152600401611a0593929190613ef5565b600060405180830381600087803b158015611a1f57600080fd5b505af1158015611a33573d6000803e3d6000fd5b505060405163f0ea17c360e01b81526001600160601b03891660048201526001600160a01b038c16925063f0ea17c39150602401600060405180830381865afa158015611a84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611aac919081019061444a565b60800151806020019051810190611ac39190614521565b60a0015115611bce576000611ae06001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03891660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015611b2f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b5791908101906145ea565b608001519050806001600160a01b031663da65659d8f8a6101000151898960400151896040518663ffffffff1660e01b8152600401611b9a9594939291906146bc565b600060405180830381600087803b158015611bb457600080fd5b505af1158015611bc8573d6000803e3d6000fd5b50505050505b50505050505050505050505050565b611be5612693565b806001600160a01b03163b600003611c1b5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016105c4565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015611c95575060408051601f3d908101601f19168201909252611c9291810190613e93565b60015b611cbd5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016105c4565b80611ce65760405163fdeac91f60e01b81526001600160a01b03831660048201526024016105c4565b5050565b60008060008051602061494c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190613e93565b15611e0b576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e059190613c5b565b91505090565b54600160601b90046001600160a01b0316919050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233353a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016105c4565b600080611e80606e61241c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee89190613c5b565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f639190810190613d0d565b90508060a001518160c0015103611fa55760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016105c4565b60008160c001518260a00151611fbb919061470d565b90506000611fca858984612c1c565b9050818360c001818151611fde919061435f565b9052506003546020840151604051639babe3bf60e01b81526001600160a01b0388811660048301526001600160601b03909216602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561204357600080fd5b505af1158015612057573d6000803e3d6000fd5b50505050846001600160a01b0316631518afb9898561207460ff90565b6040518463ffffffff1660e01b815260040161209293929190613ef5565b600060405180830381600087803b1580156120ac57600080fd5b505af11580156120c0573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af415801561211a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213e9190613e93565b80156121c657506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156121a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c69190613e93565b15610f4257610f4288886111de565b6000806121ea6001546001600160a01b031690565b6001600160a01b031663d39e604360285b612203612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115579190613c5b565b6000806122816001546001600160a01b031690565b6001600160a01b031663d39e604360466121fb565b604051632392b61b60e21b81526003600482015260009073__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af41580156122e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190613ebb565b612315612693565b61239582836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b91906140c7565b603c60008560405180602001604052806000815250610ec0565b611ce6637b6a51fd60e01b610e93565b6123ad612693565b6123b681611bdd565b6123be611099565b6001600160a01b0382166123e55760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061494c83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b612424613654565b6000806124396001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612480573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124a891908101906145ea565b92506124be83604001518560ff90811691161490565b6125005760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016105c4565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261257e91908101906145ea565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125eb9190613c5b565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190613e93565b1561268b57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016105c4565b505050915091565b60008051602061496c83398151915254600160401b900460ff166126ca57604051631afcd79f60e31b815260040160405180910390fd5b565b6101cf612693565b60008051602061496c8339815191528054600160401b810460ff1615906001600160401b03166000811580156127075750825b90506000826001600160401b031660011480156127235750303b155b905081158015612731575080155b1561274f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561277957845460ff60401b1916600160401b1785555b600080878060200190518101906127909190614720565b909250905061279f828a61230d565b6001546001600160a01b031663d39e6043608c6127ba612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156127ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128239190613c5b565b600280546001600160a01b0319166001600160a01b039283161790556001541663d39e604360dc612852612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bb9190613c5b565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d26128ea612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561292f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129539190613c5b565b600480546001600160a01b0319166001600160a01b039283161790556001541663d39e60436078612982612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190613c5b565b600580546001600160a01b0319166001600160a01b0392909216919091179055612a1b63310e6c1960e11b610e93565b505083156111d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016111cc565b6000612a748383670de0b6b3a764000061356a565b9392505050565b600080612a86613692565b60608401516020860151604051634793b4ab60e01b81526001600160601b038216600482015291945092506000906001600160a01b03881690634793b4ab90602401600060405180830381865afa158015612ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b0d9190810190614372565b80519092506001600160601b03858116911614612b655760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016105c4565b60405163f0ea17c360e01b81526001600160601b03851660048201526000906001600160a01b0389169063f0ea17c390602401600060405180830381865afa158015612bb5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bdd919081019061444a565b905060008160800151806020019051810190612bf99190614521565b9050612c0d8160c001518960800151611454565b92505050945094509450949050565b60008115612a74576000612c386001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612c87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612caf91908101906145ea565b6020015190506000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190613c5b565b60405163242bdc1960e21b81526001600160601b03841660048201526001600160a01b0391909116906390af70649060240161014060405180830381865afa158015612d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8d91906142a1565b90506000866001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df39190613c5b565b60405163bd7d9d8560e01b81526001600160601b03881660048201526001600160a01b03919091169063bd7d9d8590602401600060405180830381865afa158015612e42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e6a9190810190613d0d565b60208301519091506000612e866001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b038a1660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef99190613c5b565b90506000896001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5f9190613c5b565b606086015160405163f0ea17c360e01b81526001600160601b0390911660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015612fb4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fdc919081019061444a565b6060015190506000600460009054906101000a90046001600160a01b03166001600160a01b03166370e314e888876060015188608001518960e001518a61010001518b602001518c604001516040518863ffffffff1660e01b815260040161304a979695949392919061474f565b6101e060405180830381865afa158015613068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308c91906147b5565b9050888160400151146130d15760408082015190516355e9883560e11b81526001600160601b038c166004820152602481018b905260448101919091526064016105c4565b60008660e0015190508160400151856001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561311d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131419190613c5b565b604051636eb1769f60e11b81526001600160a01b0387811660048301528881166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b5919061422f565b10156131de5783858360400151604051636d675c4360e01b81526004016105c493929190614870565b846001600160a01b031663beabacc885838560e001518660600151613203919061435f565b6040518463ffffffff1660e01b815260040161322193929190614870565b600060405180830381600087803b15801561323b57600080fd5b505af115801561324f573d6000803e3d6000fd5b5050505060008c6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b79190613c5b565b6040808a01519051639ad69c6760e01b81526001600160601b0390911660048201526001600160a01b039190911690639ad69c679060240161010060405180830381865afa15801561330d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133319190614894565b90506000816080015190506000846101c001518561014001518660c00151613359919061435f565b613363919061470d565b6040516317d5759960e31b81529091506001600160a01b0389169063beabacc890613396908a9086908690600401614870565b600060405180830381600087803b1580156133b057600080fd5b505af11580156133c4573d6000803e3d6000fd5b505060055460408d8101518d820151825163d25f509560e01b81526001600160601b0390921660048301526001600160c01b03191660248201528951604482015260208a01516064820152908901516084820152606089015160a4820152608089015160c482015260a089015160e482015260c089015161010482015260e08901516101248201526101008901516101448201526101208901516101648201526101408901516101848201526101608901516101a48201526101808901516101c48201526101a08901516101e48201526101c089015161020482015261022481018590526001600160a01b03909116925063d25f5095915061024401600060405180830381600087803b1580156134da57600080fd5b505af11580156134ee573d6000803e3d6000fd5b505086516040516317d5759960e31b81526001600160a01b038c16935063beabacc89250613523918b918b9190600401614870565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b505095519c505050505050505050505050509392505050565b60008080600019858709858702925082811083820303915050806000036135a45783828161359a5761359a614935565b0492505050612a74565b8084116135eb5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016105c4565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b031681526020016136cb604051806040016040528060008152602001600081525090565b815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561372957600080fd5b81356001600160e01b031981168114612a7457600080fd5b6001600160601b03811681146102e857600080fd5b60006020828403121561376857600080fd5b8135612a7481613741565b60005b8381101561378e578181015183820152602001613776565b50506000910152565b600081518084526137af816020860160208601613773565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161382c60c08401826001600160a01b03169052565b5060c083015160e080840152613846610100840182613797565b949350505050565b6001600160a01b03811681146102e857600080fd5b60ff811681146102e857600080fd5b80151581146102e857600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b03811182821017156138b9576138b9613880565b60405290565b60405161010081016001600160401b03811182821017156138b9576138b9613880565b60405161012081016001600160401b03811182821017156138b9576138b9613880565b60405160a081016001600160401b03811182821017156138b9576138b9613880565b60405161016081016001600160401b03811182821017156138b9576138b9613880565b60405160e081016001600160401b03811182821017156138b9576138b9613880565b6040516101e081016001600160401b03811182821017156138b9576138b9613880565b604051601f8201601f191681016001600160401b03811182821017156139b7576139b7613880565b604052919050565b60006001600160401b038211156139d8576139d8613880565b50601f01601f191660200190565b600082601f8301126139f757600080fd5b8135613a0a613a05826139bf565b61398f565b818152846020838601011115613a1f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613a5557600080fd5b8635613a608161384e565b95506020870135613a7081613741565b94506040870135613a8081613863565b93506060870135613a9081613872565b92506080870135613aa08161384e565b915060a08701356001600160401b03811115613abb57600080fd5b613ac789828a016139e6565b9150509295509295509295565b600060208284031215613ae657600080fd5b81356001600160401b03811115613afc57600080fd5b613846848285016139e6565b60008060408385031215613b1b57600080fd5b8235613b268161384e565b915060208301356001600160401b03811115613b4157600080fd5b613b4d858286016139e6565b9150509250929050565b64ffffffffff811681146102e857600080fd5b60008060408385031215613b7d57600080fd5b8235613b8881613741565b91506020830135613b9881613b57565b809150509250929050565b60008060408385031215613bb657600080fd5b50508035926020909101359150565b600080600060608486031215613bda57600080fd5b8335613be581613741565b92506020840135613bf581613872565b91506040840135613c0581613b57565b809150509250925092565b600060208284031215613c2257600080fd5b8135612a748161384e565b60008060408385031215613c4057600080fd5b8235613c4b8161384e565b91506020830135613b988161384e565b600060208284031215613c6d57600080fd5b8151612a748161384e565b8051613c8381613741565b919050565b80516001600160c01b031981168114613c8357600080fd5b8051613c8381613b57565b6000613cb9613a05846139bf565b9050828152838383011115613ccd57600080fd5b612a74836020830184613773565b600082601f830112613cec57600080fd5b612a7483835160208501613cab565b805161ffff81168114613c8357600080fd5b600060208284031215613d1f57600080fd5b81516001600160401b0380821115613d3657600080fd5b908301906102008286031215613d4b57600080fd5b613d53613896565b613d5c83613c78565b8152613d6a60208401613c78565b6020820152613d7b60408401613c88565b6040820152613d8c60608401613c88565b60608201526080830151608082015260a083015160a082015260c083015160c0820152613dbb60e08401613ca0565b60e08201526101008084015183811115613dd457600080fd5b613de088828701613cdb565b8284015250506101208084015183811115613dfa57600080fd5b613e0688828701613cdb565b8284015250506101409150613e1c828401613cfb565b828201526101609150613e30828401613cfb565b82820152610180915081830151828201526101a09150613e51828401613ca0565b828201526101c09150613e65828401613ca0565b828201526101e09150613e79828401613ca0565b91810191909152949350505050565b8051613c8381613872565b600060208284031215613ea557600080fd5b8151612a7481613872565b8051613c8381613863565b600060208284031215613ecd57600080fd5b8151612a7481613863565b600060208284031215613eea57600080fd5b8151612a7481613b57565b6001600160601b038416815260606020820152613f1e6060820184516001600160601b03169052565b60006020840151613f3a60808401826001600160601b03169052565b5060408401516001600160c01b0319811660a08401525060608401516001600160c01b0319811660c084015250608084015160e083015260a0840151610100818185015260c08601519150610120828186015260e08701519250610140613fa98187018564ffffffffff169052565b82880151935061020092506101608381880152613fca610260880186613797565b9450828901519250610180605f198887030181890152613fea8685613797565b9550828a015193506101a092506140068389018561ffff169052565b9089015192506101c09061401f8883018561ffff169052565b8901516101e0888101919091529189015164ffffffffff9081169488019490945288015183166102208701528701519091166102408501525060ff841660408401529050613846565b60006020828403121561407a57600080fd5b815162ffffff81168114612a7457600080fd5b600181811c908216806140a157607f821691505b6020821081036140c157634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156140d957600080fd5b8151612a7481613741565b601f82111561412e57600081815260208120601f850160051c8101602086101561410b5750805b601f850160051c820191505b8181101561412a57828155600101614117565b5050505b505050565b81516001600160401b0381111561414c5761414c613880565b6141608161415a845461408d565b846140e4565b602080601f831160018114614195576000841561417d5750858301515b600019600386901b1c1916600185901b17855561412a565b600085815260208120601f198616915b828110156141c4578886015182559484019460019091019084016141a5565b50858210156141e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03811681146102e857600080fd5b8051613c83816141f2565b60006020828403121561422457600080fd5b8151612a74816141f2565b60006020828403121561424157600080fd5b5051919050565b8051613c838161384e565b60006040828403121561426557600080fd5b604051604081018181106001600160401b038211171561428757614287613880565b604052825181526020928301519281019290925250919050565b600061014082840312156142b457600080fd5b6142bc6138bf565b6142c583614248565b81526142d360208401614248565b60208201526142e460408401613c78565b60408201526142f560608401613c78565b60608201526143078460808501614253565b60808201526143198460c08501614253565b60a082015261432b6101008401613e88565b60c082015261433d6101208401614248565b60e08201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561155757611557614349565b60006020828403121561438457600080fd5b81516001600160401b038082111561439b57600080fd5b9083019061014082860312156143b057600080fd5b6143b86138e2565b6143c183613c78565b81526143d08660208501614253565b60208201526060830151828111156143e757600080fd5b6143f387828601613cdb565b6040830152506080830151606082015260a0830151608082015260c083015160a082015261442360e08401613ca0565b60c08201526101009150614438828401613ca0565b60e0820152613e796101208401613ca0565b60006020828403121561445c57600080fd5b81516001600160401b038082111561447357600080fd5b9083019060a0828603121561448757600080fd5b61448f613905565b82518281111561449e57600080fd5b8301601f810187136144af57600080fd5b6144be87825160208401613cab565b8252506144cd60208401614248565b60208201526144de60408401614248565b60408201526144ef60608401614248565b606082015260808301518281111561450657600080fd5b61451287828601613cdb565b60808301525095945050505050565b60006101c0828403121561453457600080fd5b61453c613927565b61454583613c78565b815261455360208401614207565b60208201526040830151604082015261456e60608401613e88565b606082015261457f60808401613e88565b608082015261459060a08401613e88565b60a082015260c083015160c082015260e083015160e08201526101006145b885828601614253565b908201526101406145cb85858301614253565b6101208301526145df856101808601614253565b908201529392505050565b6000602082840312156145fc57600080fd5b81516001600160401b038082111561461357600080fd5b9083019060e0828603121561462757600080fd5b61462f61394a565b61463883613c78565b815261464660208401613c78565b602082015261465760408401613eb0565b604082015261466860608401613e88565b606082015261467960808401614248565b608082015261468a60a08401614248565b60a082015260c0830151828111156146a157600080fd5b6146ad87828601613cdb565b60c08301525095945050505050565b60006001600160601b03808816835260a060208401526146df60a0840188613797565b818716604085015283810360608501526146f98187613797565b925050508260808301529695505050505050565b8181038181111561155757611557614349565b6000806040838503121561473357600080fd5b825161473e8161384e565b6020840151909250613b988161384e565b60006001600160601b03808a1683526001600160401b0360c01b808a16602085015288604085015264ffffffffff8816606085015260e0608085015261479860e0850188613797565b9590911660a08401529290921660c0909101525095945050505050565b60006101e082840312156147c857600080fd5b6147d061396c565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160808401519082015261018080840151908201526101a080840151908201526101c0928301519281019290925250919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600061010082840312156148a757600080fd5b60405160c081018181106001600160401b03821117156148c9576148c9613880565b60405282516148d781613741565b815260208301516148e78161384e565b60208201526148f98460408501614253565b604082015261490b8460808501614253565b606082015260c083015161491e8161384e565b608082015260e0929092015160a083015250919050565b634e487b7160e01b600052601260045260246000fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220901a3d1960436c4e8072d357d01edc16f8b989363addbec50db2d61672407b8064736f6c63430008140033",
|
844
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635fd1a5f511610104578063b68d1809116100a2578063cde749f411610071578063cde749f4146103ff578063ea86657214610407578063f21de1e814610311578063f7c34ee01461041a57600080fd5b8063b68d1809146103c7578063bbfbbfba146103dc578063caf4e3d4146103ef578063cc9fc59a146103f757600080fd5b8063675393bf116100de578063675393bf14610384578063893d20e8146103975780639ffcede91461039f578063ada9652e146103b257600080fd5b80635fd1a5f514610336578063630361f614610349578063644c45e01461035c57600080fd5b806327bb7a33116101715780633d3cf0231161014b5780633d3cf023146102da57806349bb9e4b146102eb5780634d5e16a9146102fe5780635ab1bd531461031157600080fd5b806327bb7a33146102ac578063329d6e74146102bf57806336fc697e146102d257600080fd5b80630fec111c116101ad5780630fec111c14610247578063138461e01461025c5780631eff4b2214610264578063214cdb801461029957600080fd5b806301ffc9a7146101d45780630aaba8e8146102165780630d8e6e2c1461022b575b600080fd5b6102016101e2366004613717565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610229610224366004613756565b61042d565b005b610233610a6b565b60405162ffffff909116815260200161020d565b61024f610af5565b60405161020d91906137c3565b610229610c91565b61028b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161020d565b6102296102a7366004613717565b610e93565b6102296102ba366004613a3c565b610ec0565b6102296102cd366004613ad4565b610f4c565b610229611099565b6102296102e8366004613756565b50565b6102296102f9366004613b08565b6110df565b61022961030c366004613b6a565b6111de565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161020d565b61028b610344366004613ba3565b611454565b610229610357366004613bc5565b61155d565b60008051602061494c833981519152546040516001600160601b03909116815260200161020d565b610229610392366004613c10565b611bdd565b61031e611cea565b6102296103ad366004613756565b611e21565b61028b60008051602061494c83398151915281565b60d35b60405160ff909116815260200161020d565b6102296103ea366004613b6a565b611e73565b61031e6121d5565b61031e61226c565b6103ca612296565b610229610415366004613c2d565b61230d565b610229610428366004613c2d565b6123a5565b6000610439606e61241c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a09190613c5b565b60405163bd7d9d8560e01b81526001600160601b03851660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051b9190810190613d0d565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561057b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059f9190613e93565b156105cd576040516308cbe08b60e21b81526001600160601b03851660048201526024015b60405180910390fd5b604051639096a1f360e01b81526001600160601b03851660048201526000906001600160a01b03841690639096a1f390602401602060405180830381865afa15801561061d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106419190613ebb565b905060ff811660641461067b57604051634de91cf360e11b81526001600160601b038616600482015260ff821660248201526044016105c4565b6101e0820151604051638d38cd4b60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af41580156106d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fc9190613e93565b1561072557604051634b80547760e11b81526001600160601b03861660048201526024016105c4565b8160c001518260a001511461076f5760a082015160c0830151604051632b14368360e11b81526001600160601b0388166004820152602481019290925260448201526064016105c4565b61016082015161ffff16156107b35761016082015160405163a5bb07ed60e01b81526001600160601b038716600482015261ffff90911660248201526044016105c4565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190613ed8565b6101c0830151604051634a19ad8d60e11b815264ffffffffff92831660048201529116602482015273__$d53880c81dc91c20799140d711e5ab8718$__906394335b1a90604401602060405180830381865af4158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613e93565b80156108bc57508160800151826101800151105b156108f9576101c0820151604051630e79f6e160e21b81526001600160601b038716600482015264ffffffffff90911660248201526044016105c4565b73__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190613ed8565b64ffffffffff166101e0830152600354602083015160808401516040516303c5c06160e41b81526001600160a01b0388811660048301526001600160601b03808b16602484015290931660448201526064810191909152911690633c5c061090608401600060405180830381600087803b1580156109e357600080fd5b505af11580156109f7573d6000803e3d6000fd5b50505050836001600160a01b0316631518afb98684610a1460c890565b6040518463ffffffff1660e01b8152600401610a3293929190613ef5565b600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190614068565b905090565b610afd613654565b604080516080810182527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b038116835260ff600160601b820481166020850152600160681b909104161515928201929092527f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3018054600093916060840191610b8d9061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb99061408d565b8015610c065780601f10610bdb57610100808354040283529160200191610c06565b820191906000526020600020905b815481529060010190602001808311610be957829003601f168201915b50505050508152505090506040518060e00160405280610c24600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610c75611cea565b6001600160a01b03168152602001826060015181525091505090565b600060008051602061494c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d249190613e93565b15610d505780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016105c4565b30610d636001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190613e93565b610df75760405163b9304b0d60e01b81526001600160a01b03821660048201526024016105c4565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6f91906140c7565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b610e9b612693565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610ec8612693565b610ed282876123a5565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101610f428382614133565b5050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610f6e610a6b565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190614212565b60008051602061496c8339815191528054600160401b900460ff1680611005575080546001600160401b03808416911610155b156110235760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561104d836126cc565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6110a1612693565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b60008051602061496c8339815191528054600160401b810460ff1615906001600160401b03166000811580156111125750825b90506000826001600160401b0316600114801561112e5750303b155b90508115801561113c575080155b1561115a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561118457845460ff60401b1916600160401b1785555b61118e87876126d4565b83156111d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b60006111ea606e61241c565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112519190613c5b565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa1580156112a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112cc9190810190613d0d565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af415801561132c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113509190613e93565b61139c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016105c4565b64ffffffffff8481166101a0830181905260e08301516040516352bcc5a760e11b81526004810192909252909116602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af415801561140b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142f9190613ed8565b64ffffffffff166101c08201526001600160a01b038316631518afb986836064610a14565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af41580156114a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114cd919061422f565b905060006114db8583612a5f565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af415801561152e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611552919061422f565b925050505b92915050565b600080600061156a613654565b611574606e61241c565b8095508192505050836001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de9190613c5b565b905160405163bd7d9d8560e01b81526001600160601b038916600482015291935091506000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261165d9190810190613d0d565b80519091506001600160601b038381169116146116bc5760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016105c4565b604051639096a1f360e01b81526001600160601b038816600482015261173a906001600160a01b03851690639096a1f390602401602060405180830381865afa15801561170d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117319190613ebb565b60ff16600a1490565b6117865760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016105c4565b6000806000806118148888878a6001600160a01b03166390af70648b6040518263ffffffff1660e01b81526004016117cd91906001600160601b0391909116815260200190565b61014060405180830381865afa1580156117eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180f91906142a1565b612a7b565b93509350935093506000611826602890565b905064ffffffffff8a16156118db57606464ffffffffff8b81166101a0890181905260e08901516040516352bcc5a760e11b81526004810192909252909116602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063a5798b4e90604401602060405180830381865af41580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190613ed8565b64ffffffffff166101c08701525b60008b1561190e576118f28a8e8960a00151612c1c565b90508660a001518760c00181815161190a919061435f565b9052505b600360009054906101000a90046001600160a01b03166001600160a01b031663a7e0dea78b8f8887866040518663ffffffff1660e01b815260040161198c9594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b6000604051808303816000875af11580156119ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d39190810190614372565b9350896001600160a01b0316631518afb98e89856040518463ffffffff1660e01b8152600401611a0593929190613ef5565b600060405180830381600087803b158015611a1f57600080fd5b505af1158015611a33573d6000803e3d6000fd5b505060405163f0ea17c360e01b81526001600160601b03891660048201526001600160a01b038c16925063f0ea17c39150602401600060405180830381865afa158015611a84573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611aac919081019061444a565b60800151806020019051810190611ac39190614521565b60a0015115611bce576000611ae06001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03891660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015611b2f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b5791908101906145ea565b608001519050806001600160a01b031663da65659d8f8a6101000151898960400151896040518663ffffffff1660e01b8152600401611b9a9594939291906146bc565b600060405180830381600087803b158015611bb457600080fd5b505af1158015611bc8573d6000803e3d6000fd5b50505050505b50505050505050505050505050565b611be5612693565b806001600160a01b03163b600003611c1b5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016105c4565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015611c95575060408051601f3d908101601f19168201909252611c9291810190613e93565b60015b611cbd5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016105c4565b80611ce65760405163fdeac91f60e01b81526001600160a01b03831660048201526024016105c4565b5050565b60008060008051602061494c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190613e93565b15611e0b576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e059190613c5b565b91505090565b54600160601b90046001600160a01b0316919050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233353a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016105c4565b600080611e80606e61241c565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee89190613c5b565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f639190810190613d0d565b90508060a001518160c0015103611fa55760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016105c4565b60008160c001518260a00151611fbb919061470d565b90506000611fca858984612c1c565b9050818360c001818151611fde919061435f565b9052506003546020840151604051639babe3bf60e01b81526001600160a01b0388811660048301526001600160601b03909216602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561204357600080fd5b505af1158015612057573d6000803e3d6000fd5b50505050846001600160a01b0316631518afb9898561207460ff90565b6040518463ffffffff1660e01b815260040161209293929190613ef5565b600060405180830381600087803b1580156120ac57600080fd5b505af11580156120c0573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af415801561211a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213e9190613e93565b80156121c657506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af41580156121a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c69190613e93565b15610f4257610f4288886111de565b6000806121ea6001546001600160a01b031690565b6001600160a01b031663d39e604360285b612203612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115579190613c5b565b6000806122816001546001600160a01b031690565b6001600160a01b031663d39e604360466121fb565b604051632392b61b60e21b81526003600482015260009073__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af41580156122e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190613ebb565b612315612693565b61239582836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237b91906140c7565b603c60008560405180602001604052806000815250610ec0565b611ce6637b6a51fd60e01b610e93565b6123ad612693565b6123b681611bdd565b6123be611099565b6001600160a01b0382166123e55760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061494c83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b612424613654565b6000806124396001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612480573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124a891908101906145ea565b92506124be83604001518560ff90811691161490565b6125005760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016105c4565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612556573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261257e91908101906145ea565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125eb9190613c5b565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190613e93565b1561268b57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016105c4565b505050915091565b60008051602061496c83398151915254600160401b900460ff166126ca57604051631afcd79f60e31b815260040160405180910390fd5b565b6101cf612693565b60008051602061496c8339815191528054600160401b810460ff1615906001600160401b03166000811580156127075750825b90506000826001600160401b031660011480156127235750303b155b905081158015612731575080155b1561274f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561277957845460ff60401b1916600160401b1785555b600080878060200190518101906127909190614720565b909250905061279f828a61230d565b6001546001600160a01b031663d39e6043608c6127ba612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156127ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128239190613c5b565b600280546001600160a01b0319166001600160a01b039283161790556001541663d39e604360dc612852612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bb9190613c5b565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e604360d26128ea612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561292f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129539190613c5b565b600480546001600160a01b0319166001600160a01b039283161790556001541663d39e60436078612982612296565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190613c5b565b600580546001600160a01b0319166001600160a01b0392909216919091179055612a1b63310e6c1960e11b610e93565b505083156111d557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016111cc565b6000612a748383670de0b6b3a764000061356a565b9392505050565b600080612a86613692565b60608401516020860151604051634793b4ab60e01b81526001600160601b038216600482015291945092506000906001600160a01b03881690634793b4ab90602401600060405180830381865afa158015612ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b0d9190810190614372565b80519092506001600160601b03858116911614612b655760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016105c4565b60405163f0ea17c360e01b81526001600160601b03851660048201526000906001600160a01b0389169063f0ea17c390602401600060405180830381865afa158015612bb5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bdd919081019061444a565b905060008160800151806020019051810190612bf99190614521565b9050612c0d8160c001518960800151611454565b92505050945094509450949050565b60008115612a74576000612c386001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03861660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612c87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612caf91908101906145ea565b6020015190506000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d199190613c5b565b60405163242bdc1960e21b81526001600160601b03841660048201526001600160a01b0391909116906390af70649060240161014060405180830381865afa158015612d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8d91906142a1565b90506000866001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df39190613c5b565b60405163bd7d9d8560e01b81526001600160601b03881660048201526001600160a01b03919091169063bd7d9d8590602401600060405180830381865afa158015612e42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e6a9190810190613d0d565b60208301519091506000612e866001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b038a1660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef99190613c5b565b90506000896001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5f9190613c5b565b606086015160405163f0ea17c360e01b81526001600160601b0390911660048201526001600160a01b03919091169063f0ea17c390602401600060405180830381865afa158015612fb4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fdc919081019061444a565b6060015190506000600460009054906101000a90046001600160a01b03166001600160a01b03166370e314e888876060015188608001518960e001518a61010001518b602001518c604001516040518863ffffffff1660e01b815260040161304a979695949392919061474f565b6101e060405180830381865afa158015613068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308c91906147b5565b9050888160400151146130d15760408082015190516355e9883560e11b81526001600160601b038c166004820152602481018b905260448101919091526064016105c4565b60008660e0015190508160400151856001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561311d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131419190613c5b565b604051636eb1769f60e11b81526001600160a01b0387811660048301528881166024830152919091169063dd62ed3e90604401602060405180830381865afa158015613191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b5919061422f565b10156131de5783858360400151604051636d675c4360e01b81526004016105c493929190614870565b846001600160a01b031663beabacc885838560e001518660600151613203919061435f565b6040518463ffffffff1660e01b815260040161322193929190614870565b600060405180830381600087803b15801561323b57600080fd5b505af115801561324f573d6000803e3d6000fd5b5050505060008c6001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015613293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b79190613c5b565b6040808a01519051639ad69c6760e01b81526001600160601b0390911660048201526001600160a01b039190911690639ad69c679060240161010060405180830381865afa15801561330d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133319190614894565b90506000816080015190506000846101c001518561014001518660c00151613359919061435f565b613363919061470d565b6040516317d5759960e31b81529091506001600160a01b0389169063beabacc890613396908a9086908690600401614870565b600060405180830381600087803b1580156133b057600080fd5b505af11580156133c4573d6000803e3d6000fd5b505060055460408d8101518d820151825163d25f509560e01b81526001600160601b0390921660048301526001600160c01b03191660248201528951604482015260208a01516064820152908901516084820152606089015160a4820152608089015160c482015260a089015160e482015260c089015161010482015260e08901516101248201526101008901516101448201526101208901516101648201526101408901516101848201526101608901516101a48201526101808901516101c48201526101a08901516101e48201526101c089015161020482015261022481018590526001600160a01b03909116925063d25f5095915061024401600060405180830381600087803b1580156134da57600080fd5b505af11580156134ee573d6000803e3d6000fd5b505086516040516317d5759960e31b81526001600160a01b038c16935063beabacc89250613523918b918b9190600401614870565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b505095519c505050505050505050505050509392505050565b60008080600019858709858702925082811083820303915050806000036135a45783828161359a5761359a614935565b0492505050612a74565b8084116135eb5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016105c4565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b031681526020016136cb604051806040016040528060008152602001600081525090565b815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b60006020828403121561372957600080fd5b81356001600160e01b031981168114612a7457600080fd5b6001600160601b03811681146102e857600080fd5b60006020828403121561376857600080fd5b8135612a7481613741565b60005b8381101561378e578181015183820152602001613776565b50506000910152565b600081518084526137af816020860160208601613773565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161382c60c08401826001600160a01b03169052565b5060c083015160e080840152613846610100840182613797565b949350505050565b6001600160a01b03811681146102e857600080fd5b60ff811681146102e857600080fd5b80151581146102e857600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b03811182821017156138b9576138b9613880565b60405290565b60405161010081016001600160401b03811182821017156138b9576138b9613880565b60405161012081016001600160401b03811182821017156138b9576138b9613880565b60405160a081016001600160401b03811182821017156138b9576138b9613880565b60405161016081016001600160401b03811182821017156138b9576138b9613880565b60405160e081016001600160401b03811182821017156138b9576138b9613880565b6040516101e081016001600160401b03811182821017156138b9576138b9613880565b604051601f8201601f191681016001600160401b03811182821017156139b7576139b7613880565b604052919050565b60006001600160401b038211156139d8576139d8613880565b50601f01601f191660200190565b600082601f8301126139f757600080fd5b8135613a0a613a05826139bf565b61398f565b818152846020838601011115613a1f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613a5557600080fd5b8635613a608161384e565b95506020870135613a7081613741565b94506040870135613a8081613863565b93506060870135613a9081613872565b92506080870135613aa08161384e565b915060a08701356001600160401b03811115613abb57600080fd5b613ac789828a016139e6565b9150509295509295509295565b600060208284031215613ae657600080fd5b81356001600160401b03811115613afc57600080fd5b613846848285016139e6565b60008060408385031215613b1b57600080fd5b8235613b268161384e565b915060208301356001600160401b03811115613b4157600080fd5b613b4d858286016139e6565b9150509250929050565b64ffffffffff811681146102e857600080fd5b60008060408385031215613b7d57600080fd5b8235613b8881613741565b91506020830135613b9881613b57565b809150509250929050565b60008060408385031215613bb657600080fd5b50508035926020909101359150565b600080600060608486031215613bda57600080fd5b8335613be581613741565b92506020840135613bf581613872565b91506040840135613c0581613b57565b809150509250925092565b600060208284031215613c2257600080fd5b8135612a748161384e565b60008060408385031215613c4057600080fd5b8235613c4b8161384e565b91506020830135613b988161384e565b600060208284031215613c6d57600080fd5b8151612a748161384e565b8051613c8381613741565b919050565b80516001600160c01b031981168114613c8357600080fd5b8051613c8381613b57565b6000613cb9613a05846139bf565b9050828152838383011115613ccd57600080fd5b612a74836020830184613773565b600082601f830112613cec57600080fd5b612a7483835160208501613cab565b805161ffff81168114613c8357600080fd5b600060208284031215613d1f57600080fd5b81516001600160401b0380821115613d3657600080fd5b908301906102008286031215613d4b57600080fd5b613d53613896565b613d5c83613c78565b8152613d6a60208401613c78565b6020820152613d7b60408401613c88565b6040820152613d8c60608401613c88565b60608201526080830151608082015260a083015160a082015260c083015160c0820152613dbb60e08401613ca0565b60e08201526101008084015183811115613dd457600080fd5b613de088828701613cdb565b8284015250506101208084015183811115613dfa57600080fd5b613e0688828701613cdb565b8284015250506101409150613e1c828401613cfb565b828201526101609150613e30828401613cfb565b82820152610180915081830151828201526101a09150613e51828401613ca0565b828201526101c09150613e65828401613ca0565b828201526101e09150613e79828401613ca0565b91810191909152949350505050565b8051613c8381613872565b600060208284031215613ea557600080fd5b8151612a7481613872565b8051613c8381613863565b600060208284031215613ecd57600080fd5b8151612a7481613863565b600060208284031215613eea57600080fd5b8151612a7481613b57565b6001600160601b038416815260606020820152613f1e6060820184516001600160601b03169052565b60006020840151613f3a60808401826001600160601b03169052565b5060408401516001600160c01b0319811660a08401525060608401516001600160c01b0319811660c084015250608084015160e083015260a0840151610100818185015260c08601519150610120828186015260e08701519250610140613fa98187018564ffffffffff169052565b82880151935061020092506101608381880152613fca610260880186613797565b9450828901519250610180605f198887030181890152613fea8685613797565b9550828a015193506101a092506140068389018561ffff169052565b9089015192506101c09061401f8883018561ffff169052565b8901516101e0888101919091529189015164ffffffffff9081169488019490945288015183166102208701528701519091166102408501525060ff841660408401529050613846565b60006020828403121561407a57600080fd5b815162ffffff81168114612a7457600080fd5b600181811c908216806140a157607f821691505b6020821081036140c157634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156140d957600080fd5b8151612a7481613741565b601f82111561412e57600081815260208120601f850160051c8101602086101561410b5750805b601f850160051c820191505b8181101561412a57828155600101614117565b5050505b505050565b81516001600160401b0381111561414c5761414c613880565b6141608161415a845461408d565b846140e4565b602080601f831160018114614195576000841561417d5750858301515b600019600386901b1c1916600185901b17855561412a565b600085815260208120601f198616915b828110156141c4578886015182559484019460019091019084016141a5565b50858210156141e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b03811681146102e857600080fd5b8051613c83816141f2565b60006020828403121561422457600080fd5b8151612a74816141f2565b60006020828403121561424157600080fd5b5051919050565b8051613c838161384e565b60006040828403121561426557600080fd5b604051604081018181106001600160401b038211171561428757614287613880565b604052825181526020928301519281019290925250919050565b600061014082840312156142b457600080fd5b6142bc6138bf565b6142c583614248565b81526142d360208401614248565b60208201526142e460408401613c78565b60408201526142f560608401613c78565b60608201526143078460808501614253565b60808201526143198460c08501614253565b60a082015261432b6101008401613e88565b60c082015261433d6101208401614248565b60e08201529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561155757611557614349565b60006020828403121561438457600080fd5b81516001600160401b038082111561439b57600080fd5b9083019061014082860312156143b057600080fd5b6143b86138e2565b6143c183613c78565b81526143d08660208501614253565b60208201526060830151828111156143e757600080fd5b6143f387828601613cdb565b6040830152506080830151606082015260a0830151608082015260c083015160a082015261442360e08401613ca0565b60c08201526101009150614438828401613ca0565b60e0820152613e796101208401613ca0565b60006020828403121561445c57600080fd5b81516001600160401b038082111561447357600080fd5b9083019060a0828603121561448757600080fd5b61448f613905565b82518281111561449e57600080fd5b8301601f810187136144af57600080fd5b6144be87825160208401613cab565b8252506144cd60208401614248565b60208201526144de60408401614248565b60408201526144ef60608401614248565b606082015260808301518281111561450657600080fd5b61451287828601613cdb565b60808301525095945050505050565b60006101c0828403121561453457600080fd5b61453c613927565b61454583613c78565b815261455360208401614207565b60208201526040830151604082015261456e60608401613e88565b606082015261457f60808401613e88565b608082015261459060a08401613e88565b60a082015260c083015160c082015260e083015160e08201526101006145b885828601614253565b908201526101406145cb85858301614253565b6101208301526145df856101808601614253565b908201529392505050565b6000602082840312156145fc57600080fd5b81516001600160401b038082111561461357600080fd5b9083019060e0828603121561462757600080fd5b61462f61394a565b61463883613c78565b815261464660208401613c78565b602082015261465760408401613eb0565b604082015261466860608401613e88565b606082015261467960808401614248565b608082015261468a60a08401614248565b60a082015260c0830151828111156146a157600080fd5b6146ad87828601613cdb565b60c08301525095945050505050565b60006001600160601b03808816835260a060208401526146df60a0840188613797565b818716604085015283810360608501526146f98187613797565b925050508260808301529695505050505050565b8181038181111561155757611557614349565b6000806040838503121561473357600080fd5b825161473e8161384e565b6020840151909250613b988161384e565b60006001600160601b03808a1683526001600160401b0360c01b808a16602085015288604085015264ffffffffff8816606085015260e0608085015261479860e0850188613797565b9590911660a08401529290921660c0909101525095945050505050565b60006101e082840312156147c857600080fd5b6147d061396c565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160808401519082015261018080840151908201526101a080840151908201526101c0928301519281019290925250919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600061010082840312156148a757600080fd5b60405160c081018181106001600160401b03821117156148c9576148c9613880565b60405282516148d781613741565b815260208301516148e78161384e565b60208201526148f98460408501614253565b604082015261490b8460808501614253565b606082015260c083015161491e8161384e565b608082015260e0929092015160a083015250919050565b634e487b7160e01b600052601260045260246000fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220901a3d1960436c4e8072d357d01edc16f8b989363addbec50db2d61672407b8064736f6c63430008140033",
|
904
845
|
"linkReferences": {
|
905
|
-
"contracts/types/Blocknumber.sol": {
|
906
|
-
"BlocknumberLib": [
|
907
|
-
{
|
908
|
-
"length": 20,
|
909
|
-
"start": 4870
|
910
|
-
}
|
911
|
-
]
|
912
|
-
},
|
913
|
-
"contracts/types/Fee.sol": {
|
914
|
-
"FeeLib": [
|
915
|
-
{
|
916
|
-
"length": 20,
|
917
|
-
"start": 11556
|
918
|
-
},
|
919
|
-
{
|
920
|
-
"length": 20,
|
921
|
-
"start": 11819
|
922
|
-
},
|
923
|
-
{
|
924
|
-
"length": 20,
|
925
|
-
"start": 13493
|
926
|
-
},
|
927
|
-
{
|
928
|
-
"length": 20,
|
929
|
-
"start": 13756
|
930
|
-
},
|
931
|
-
{
|
932
|
-
"length": 20,
|
933
|
-
"start": 14122
|
934
|
-
},
|
935
|
-
{
|
936
|
-
"length": 20,
|
937
|
-
"start": 14262
|
938
|
-
}
|
939
|
-
]
|
940
|
-
},
|
941
846
|
"contracts/types/NftId.sol": {
|
942
847
|
"NftIdLib": [
|
943
848
|
{
|
944
849
|
"length": 20,
|
945
|
-
"start":
|
850
|
+
"start": 3500
|
946
851
|
},
|
947
852
|
{
|
948
853
|
"length": 20,
|
949
|
-
"start":
|
854
|
+
"start": 7686
|
950
855
|
}
|
951
856
|
]
|
952
857
|
},
|
@@ -954,47 +859,43 @@
|
|
954
859
|
"TimestampLib": [
|
955
860
|
{
|
956
861
|
"length": 20,
|
957
|
-
"start":
|
862
|
+
"start": 1575
|
958
863
|
},
|
959
864
|
{
|
960
865
|
"length": 20,
|
961
|
-
"start":
|
866
|
+
"start": 1924
|
962
867
|
},
|
963
868
|
{
|
964
869
|
"length": 20,
|
965
|
-
"start":
|
870
|
+
"start": 2203
|
966
871
|
},
|
967
872
|
{
|
968
873
|
"length": 20,
|
969
|
-
"start":
|
874
|
+
"start": 2352
|
970
875
|
},
|
971
876
|
{
|
972
877
|
"length": 20,
|
973
|
-
"start":
|
878
|
+
"start": 2529
|
974
879
|
},
|
975
880
|
{
|
976
881
|
"length": 20,
|
977
|
-
"start":
|
882
|
+
"start": 5080
|
978
883
|
},
|
979
884
|
{
|
980
885
|
"length": 20,
|
981
|
-
"start":
|
886
|
+
"start": 5303
|
982
887
|
},
|
983
888
|
{
|
984
889
|
"length": 20,
|
985
|
-
"start":
|
890
|
+
"start": 6485
|
986
891
|
},
|
987
892
|
{
|
988
893
|
"length": 20,
|
989
|
-
"start":
|
894
|
+
"start": 8644
|
990
895
|
},
|
991
896
|
{
|
992
897
|
"length": 20,
|
993
|
-
"start":
|
994
|
-
},
|
995
|
-
{
|
996
|
-
"length": 20,
|
997
|
-
"start": 14689
|
898
|
+
"start": 8782
|
998
899
|
}
|
999
900
|
]
|
1000
901
|
},
|
@@ -1002,11 +903,11 @@
|
|
1002
903
|
"UFixedLib": [
|
1003
904
|
{
|
1004
905
|
"length": 20,
|
1005
|
-
"start":
|
906
|
+
"start": 5461
|
1006
907
|
},
|
1007
908
|
{
|
1008
909
|
"length": 20,
|
1009
|
-
"start":
|
910
|
+
"start": 5594
|
1010
911
|
}
|
1011
912
|
]
|
1012
913
|
},
|
@@ -1014,65 +915,31 @@
|
|
1014
915
|
"VersionLib": [
|
1015
916
|
{
|
1016
917
|
"length": 20,
|
1017
|
-
"start":
|
918
|
+
"start": 2936
|
1018
919
|
},
|
1019
920
|
{
|
1020
921
|
"length": 20,
|
1021
|
-
"start":
|
1022
|
-
}
|
922
|
+
"start": 4148
|
923
|
+
}
|
924
|
+
],
|
925
|
+
"VersionPartLib": [
|
1023
926
|
{
|
1024
927
|
"length": 20,
|
1025
|
-
"start":
|
928
|
+
"start": 9109
|
1026
929
|
}
|
1027
930
|
]
|
1028
931
|
}
|
1029
932
|
},
|
1030
933
|
"deployedLinkReferences": {
|
1031
|
-
"contracts/types/Blocknumber.sol": {
|
1032
|
-
"BlocknumberLib": [
|
1033
|
-
{
|
1034
|
-
"length": 20,
|
1035
|
-
"start": 4556
|
1036
|
-
}
|
1037
|
-
]
|
1038
|
-
},
|
1039
|
-
"contracts/types/Fee.sol": {
|
1040
|
-
"FeeLib": [
|
1041
|
-
{
|
1042
|
-
"length": 20,
|
1043
|
-
"start": 11242
|
1044
|
-
},
|
1045
|
-
{
|
1046
|
-
"length": 20,
|
1047
|
-
"start": 11505
|
1048
|
-
},
|
1049
|
-
{
|
1050
|
-
"length": 20,
|
1051
|
-
"start": 13179
|
1052
|
-
},
|
1053
|
-
{
|
1054
|
-
"length": 20,
|
1055
|
-
"start": 13442
|
1056
|
-
},
|
1057
|
-
{
|
1058
|
-
"length": 20,
|
1059
|
-
"start": 13808
|
1060
|
-
},
|
1061
|
-
{
|
1062
|
-
"length": 20,
|
1063
|
-
"start": 13948
|
1064
|
-
}
|
1065
|
-
]
|
1066
|
-
},
|
1067
934
|
"contracts/types/NftId.sol": {
|
1068
935
|
"NftIdLib": [
|
1069
936
|
{
|
1070
937
|
"length": 20,
|
1071
|
-
"start":
|
938
|
+
"start": 3270
|
1072
939
|
},
|
1073
940
|
{
|
1074
941
|
"length": 20,
|
1075
|
-
"start":
|
942
|
+
"start": 7456
|
1076
943
|
}
|
1077
944
|
]
|
1078
945
|
},
|
@@ -1080,47 +947,43 @@
|
|
1080
947
|
"TimestampLib": [
|
1081
948
|
{
|
1082
949
|
"length": 20,
|
1083
|
-
"start":
|
950
|
+
"start": 1345
|
1084
951
|
},
|
1085
952
|
{
|
1086
953
|
"length": 20,
|
1087
|
-
"start":
|
954
|
+
"start": 1694
|
1088
955
|
},
|
1089
956
|
{
|
1090
957
|
"length": 20,
|
1091
|
-
"start":
|
958
|
+
"start": 1973
|
1092
959
|
},
|
1093
960
|
{
|
1094
961
|
"length": 20,
|
1095
|
-
"start":
|
962
|
+
"start": 2122
|
1096
963
|
},
|
1097
964
|
{
|
1098
965
|
"length": 20,
|
1099
|
-
"start":
|
966
|
+
"start": 2299
|
1100
967
|
},
|
1101
968
|
{
|
1102
969
|
"length": 20,
|
1103
|
-
"start":
|
970
|
+
"start": 4850
|
1104
971
|
},
|
1105
972
|
{
|
1106
973
|
"length": 20,
|
1107
|
-
"start":
|
974
|
+
"start": 5073
|
1108
975
|
},
|
1109
976
|
{
|
1110
977
|
"length": 20,
|
1111
|
-
"start":
|
978
|
+
"start": 6255
|
1112
979
|
},
|
1113
980
|
{
|
1114
981
|
"length": 20,
|
1115
|
-
"start":
|
982
|
+
"start": 8414
|
1116
983
|
},
|
1117
984
|
{
|
1118
985
|
"length": 20,
|
1119
|
-
"start":
|
1120
|
-
},
|
1121
|
-
{
|
1122
|
-
"length": 20,
|
1123
|
-
"start": 14375
|
986
|
+
"start": 8552
|
1124
987
|
}
|
1125
988
|
]
|
1126
989
|
},
|
@@ -1128,11 +991,11 @@
|
|
1128
991
|
"UFixedLib": [
|
1129
992
|
{
|
1130
993
|
"length": 20,
|
1131
|
-
"start":
|
994
|
+
"start": 5231
|
1132
995
|
},
|
1133
996
|
{
|
1134
997
|
"length": 20,
|
1135
|
-
"start":
|
998
|
+
"start": 5364
|
1136
999
|
}
|
1137
1000
|
]
|
1138
1001
|
},
|
@@ -1140,15 +1003,17 @@
|
|
1140
1003
|
"VersionLib": [
|
1141
1004
|
{
|
1142
1005
|
"length": 20,
|
1143
|
-
"start":
|
1006
|
+
"start": 2706
|
1144
1007
|
},
|
1145
1008
|
{
|
1146
1009
|
"length": 20,
|
1147
|
-
"start":
|
1148
|
-
}
|
1010
|
+
"start": 3918
|
1011
|
+
}
|
1012
|
+
],
|
1013
|
+
"VersionPartLib": [
|
1149
1014
|
{
|
1150
1015
|
"length": 20,
|
1151
|
-
"start":
|
1016
|
+
"start": 8879
|
1152
1017
|
}
|
1153
1018
|
]
|
1154
1019
|
}
|