[ { "inputs": [ { "internalType": "address", "name": "routerAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AmountLargerThanAllowance", "type": "error" }, { "inputs": [], "name": "AmountLargerThanUnlockedAmount", "type": "error" }, { "inputs": [], "name": "AmountMustBeGreaterThanZero", "type": "error" }, { "inputs": [], "name": "AmountOutOfRange", "type": "error" }, { "inputs": [], "name": "CallerNotApproved", "type": "error" }, { "inputs": [], "name": "CallerNotOwner", "type": "error" }, { "inputs": [], "name": "Expired", "type": "error" }, { "inputs": [], "name": "FailedEthSend", "type": "error" }, { "inputs": [], "name": "InvalidAddress", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "LiquidityAddOwnerOnly", "type": "error" }, { "inputs": [], "name": "LockTimeTooLong", "type": "error" }, { "inputs": [], "name": "LockTimeTooShort", "type": "error" }, { "inputs": [], "name": "NotContractAddress", "type": "error" }, { "inputs": [], "name": "NotEnoughToCoverStakeFee", "type": "error" }, { "inputs": [], "name": "NotStakeContractRequesting", "type": "error" }, { "inputs": [], "name": "NotZero", "type": "error" }, { "inputs": [], "name": "NotZeroAddress", "type": "error" }, { "inputs": [], "name": "SandwichTradesAreDisallowed", "type": "error" }, { "inputs": [], "name": "TokenAlreadyStarted", "type": "error" }, { "inputs": [], "name": "TokenNotStarted", "type": "error" }, { "inputs": [], "name": "TransferTooLarge", "type": "error" }, { "inputs": [], "name": "Unlocked", "type": "error" }, { "inputs": [], "name": "WalletLocked", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "AutoBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "AutoBurnEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "BridgeVaultAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "deadAddress", "type": "address" } ], "name": "BurnAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "BurnableTokensZeroed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "BusinessDevelopmentAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "BusinessDevelopmentDivisorUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "BuyBackCrossChainTriggered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "BuyBackEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "BuyBackTriggerTokenLimitUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "BuyBackTriggered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "BuybackBlocksUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "BuybackMinAvailabilityUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "name": "BuybackTokensWithETH", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "BuybackUpperLimitUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "controller", "type": "address" }, { "indexed": true, "internalType": "enum EverRiseRoles.Role", "name": "role", "type": "uint8" } ], "name": "ControlAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "controller", "type": "address" }, { "indexed": true, "internalType": "enum EverRiseRoles.Role", "name": "role", "type": "uint8" } ], "name": "ControlRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "name": "ConvertTokensForETH", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "exchangeHotWallet", "type": "address" } ], "name": "ExchangeHotWalletAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "exchangeHotWallet", "type": "address" } ], "name": "ExchangeHotWalletRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "ExcludeFromFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "IncludeInFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "LiquidityFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isLocked", "type": "bool" } ], "name": "LiquidityLocked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "address", "name": "altAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "LockWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "LockWalletExtend", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newvalue", "type": "uint256" } ], "name": "MaxBuybackAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newvalue", "type": "uint256" } ], "name": "MinBuybackAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "MinStakeSizeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "MinTokensBeforeSwapUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "NftBridgedIn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "NftBridgedOut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "OffChainBalanceExcluded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "tokens", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "nfts", "type": "bool" } ], "name": "RevokeAllApprovals", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RewardStakers", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RiseBridgedIn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RiseBridgedOut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "RouterAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint16", "name": "tokensHrs", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "nftsHrs", "type": "uint16" } ], "name": "SetApprovalAutoTimeout", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "StakingAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "StakingDecreased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "numberOfmonths", "type": "uint8" } ], "name": "StakingIncreased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "SwapEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "TokenStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "TransactionCapUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "TransferExternalTokens", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newController", "type": "address" }, { "internalType": "enum EverRiseRoles.Role", "name": "role", "type": "uint8" } ], "name": "addControlRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addExchangeHotWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowances", "outputs": [ { "internalType": "uint128", "name": "tokenAmount", "type": "uint128" }, { "internalType": "uint32", "name": "nftCheck", "type": "uint32" }, { "internalType": "uint32", "name": "tokenCheck", "type": "uint32" }, { "internalType": "uint48", "name": "timestamp", "type": "uint48" }, { "internalType": "uint8", "name": "nftApproval", "type": "uint8" }, { "internalType": "uint8", "name": "tokenApproval", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "approvals", "outputs": [ { "components": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "internalType": "uint32", "name": "nftCheck", "type": "uint32" }, { "internalType": "uint32", "name": "tokenCheck", "type": "uint32" }, { "internalType": "uint16", "name": "autoRevokeNftHours", "type": "uint16" }, { "internalType": "uint16", "name": "autoRevokeTokenHours", "type": "uint16" }, { "internalType": "uint48", "name": "unlockTimestamp", "type": "uint48" } ], "internalType": "struct ApprovalChecks", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "bridgeAddress", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "approveNFTAndTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBurn", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "toAddress", "type": "address" }, { "internalType": "uint96", "name": "depositTokens", "type": "uint96" }, { "internalType": "uint8", "name": "numOfMonths", "type": "uint8" }, { "internalType": "uint48", "name": "depositTime", "type": "uint48" }, { "internalType": "uint96", "name": "withdrawnAmount", "type": "uint96" }, { "internalType": "bool", "name": "achievementClaimed", "type": "bool" } ], "name": "bridgeStakeNftIn", "outputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fromAddress", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "bridgeStakeNftOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "bridgeVaultLockedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "businessDevelopmentAddress", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "businessDevelopmentDivisor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyBackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "crossChainBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint96", "name": "amount", "type": "uint96" } ], "name": "earlyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "amount", "type": "uint96" }, { "internalType": "uint8", "name": "numOfMonths", "type": "uint8" } ], "name": "enterStaking", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "everBridgeVault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint48", "name": "length", "type": "uint48" } ], "name": "extendLockTokensAndNfts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAmountLocked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hasTokenStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "holders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint96", "name": "amount", "type": "uint96" } ], "name": "increaseStake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExchangeHotWallet", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fromAddress", "type": "address" } ], "name": "isWalletLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "bool", "name": "overrideNotClaimed", "type": "bool" } ], "name": "leaveStaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "altAccount", "type": "address" }, { "internalType": "uint48", "name": "length", "type": "uint48" } ], "name": "lockTokensAndNfts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "uint96", "name": "amount", "type": "uint96" } ], "name": "mirgateV1V2Holder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "toAddress", "type": "address" }, { "internalType": "uint96", "name": "rewards", "type": "uint96" }, { "internalType": "uint96", "name": "depositTokens", "type": "uint96" }, { "internalType": "uint8", "name": "numOfMonths", "type": "uint8" }, { "internalType": "uint48", "name": "depositTime", "type": "uint48" }, { "internalType": "uint96", "name": "withdrawnAmount", "type": "uint96" } ], "name": "mirgateV2Staker", "outputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "offchainBalanceExcluded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "oldController", "type": "address" }, { "internalType": "enum EverRiseRoles.Role", "name": "role", "type": "uint8" } ], "name": "removeControlRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeExchangeHotWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "tokens", "type": "bool" }, { "internalType": "bool", "name": "nfts", "type": "bool" } ], "name": "revokeApprovals", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum EverRiseRoles.Role", "name": "", "type": "uint8" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "roles", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fromAddress", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setAutoBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "tokensHrs", "type": "uint16" }, { "internalType": "uint16", "name": "nftsHrs", "type": "uint16" } ], "name": "setAutoTimeout", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_burnAddress", "type": "address" } ], "name": "setBurnAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setBurnableTokensZero", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setBusinessDevelopmentAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "divisor", "type": "uint256" } ], "name": "setBusinessDevelopmentDivisor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setBuyBackEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "numOfDecimals", "type": "uint256" } ], "name": "setBuybackMinAvailability", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyBackTriggerLimit", "type": "uint256" } ], "name": "setBuybackTriggerTokenLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "buyBackLimit", "type": "uint256" }, { "internalType": "uint256", "name": "numOfDecimals", "type": "uint256" } ], "name": "setBuybackUpperLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "setEverBridgeVaultAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "liquidityFeeRate", "type": "uint96" } ], "name": "setLiquidityFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setLiquidityLock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "numOfDecimals", "type": "uint256" } ], "name": "setMaxBuybackAmountUpdated", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "minAmount", "type": "uint256" }, { "internalType": "uint256", "name": "numOfDecimals", "type": "uint256" } ], "name": "setMinBuybackAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "minimumTokensBeforeSwap", "type": "uint96" } ], "name": "setNumTokensSellToAddToLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setNumberOfBlocksForBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setOffchainBalanceExcluded", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setRouterAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "setStakingAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "txAmount", "type": "uint256" } ], "name": "setTransactionCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeToken", "outputs": [ { "internalType": "contract InftEverRise", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyVolume", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSellVolume", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "transactionCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferExternalTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "transferFromWithPermit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fromAddress", "type": "address" }, { "internalType": "address", "name": "toAddress", "type": "address" }, { "internalType": "uint96", "name": "amountToTransfer", "type": "uint96" } ], "name": "transferStake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IJoeRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "actualAccount", "type": "address" } ], "name": "unlockTokensAndNfts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeComplete", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint96", "name": "amount", "type": "uint96" }, { "internalType": "bool", "name": "overrideNotClaimed", "type": "bool" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a0604052600580546001600160a01b03199081167324d8dabebd6c0d5ccc88ec40d95bf8eb64f0cf9e179091556007805490911661dead179055620000486012600a620004cc565b62000059906410acc47944620004e4565b6001600160601b0316608052600d80546001600160601b03191660061790556002600e556200008b6012600a620004cc565b6200009a90624c4b40620004e4565b600f80546001600160601b0319166001600160601b0392909216919091179055678ac7230489e80000601055620000d46012600a620004cc565b620000e390620f4240620004e4565b601155670de0b6b3a76400006012556103e860155567016345785d8a0000601655670de0b6b3a7640000601755600160185560016019556001601a556002601b556001601c556001601d556001601e553480156200014057600080fd5b506040516200650538038062006505833981016040819052620001639162000506565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3503360009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f602090815260408083208054600160ff1991821681179092557fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f845282852080548216831790557f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b845282852080548216831790557fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643845282852080548216831790557fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c845282852080548216831790557f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a845282852080548216831790557fdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237e845282852080548216831790557f4db623e5c4870b62d3fc9b4e8f893a1a77627d75ab45d9ff7e56ba19564af99b8452828520805482168317905584546001600160a01b0316855260088452828520805482168317905530808652838620805490921690921790556080516023845282852080546001600160601b0319166001600160601b039092169182179055825190815291519093927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a350600160225562000531565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200040e578160001904821115620003f257620003f2620003b7565b808516156200040057918102915b93841c9390800290620003d2565b509250929050565b6000826200042757506001620004c6565b816200043657506000620004c6565b81600181146200044f57600281146200045a576200047a565b6001915050620004c6565b60ff8411156200046e576200046e620003b7565b50506001821b620004c6565b5060208310610133831016604e8410600b84101617156200049f575081810a620004c6565b620004ab8383620003cd565b8060001904821115620004c257620004c2620003b7565b0290505b92915050565b6000620004dd60ff84168362000416565b9392505050565b6000816000190483118215151615620005015762000501620003b7565b500290565b6000602082840312156200051957600080fd5b81516001600160a01b0381168114620004dd57600080fd5b608051615faa6200055b60003960008181610667015281816132730152613a1f0152615faa6000f3fe6080604052600436106104fb5760003560e01c806370d5ae051161028c578063c0316ffe1161015a578063d98daa43116100cc578063ea2f0b3711610085578063ea2f0b371461125f578063ecc684a81461127f578063f2fde38b14611294578063f4e0d9ac146112b4578063f5dc51ec146112d4578063fa25e2de146112f457600080fd5b8063d98daa431461119f578063d9cd78f4146111bf578063da5fcc9f146111df578063dd62ed3e146111ff578063e01af92c1461121f578063e985e9c51461123f57600080fd5b8063cf913db91161011e578063cf913db9146110c6578063d1bdac24146110ff578063d505accf1461111f578063d6e03cd41461113f578063d921cd761461115f578063d96d54d81461117f57600080fd5b8063c0316ffe14611030578063c27afefc14611050578063c38c3ee614611070578063ca5f084f14611090578063cc5ba480146110a657600080fd5b80639bbe0533116101fe578063b22a6389116101b7578063b22a638914610f7a578063b51d404214610f9a578063b5d0abfd14610fba578063b971383a14610fda578063b9e5a03b14610ffa578063bfa1c45e1461101057600080fd5b80639bbe053314610ec2578063a63b91f414610ee2578063a9059cbb14610efa578063aefac34d14610f1a578063af1b597e14610f3a578063af77474414610f5a57600080fd5b80638a60c4c1116102505780638a60c4c114610de55780638aee2c2714610e055780638da5cb5b14610e255780638db2063b14610e4557806395d89b4114610e5a57806398118cb414610e8a57600080fd5b806370d5ae0514610d3b578063774a081014610d5b5780637d84ed2614610d705780637ecebe0014610d905780638188f71c14610dd057600080fd5b8063367605ca116103c95780634f27ec3e1161033b5780635f7e3821116102f45780635f7e382114610c6c5780635f898ce814610c8c578063601fdff314610cac5780636053a0e314610ceb5780636ddd171314610d0357806370a0823114610d1b57600080fd5b80634f27ec3e146109bc57806351ed6a30146109dc5780635342acb4146109fc57806355b6ed5c14610a3557806357976fb414610b045780635d0341ba14610b1c57600080fd5b806341cb87fc1161038d57806341cb87fc1461090657806341e70fa614610926578063437823ec1461093c578063445e76881461095c57806349bd5a5e1461097c5780634b0e72161461099c57600080fd5b8063367605ca1461087d57806336b1db151461089d578063379f96da146108bd578063410d3e67146108d0578063415e9718146108e657600080fd5b806320606b701161046d5780632b0e1d79116104265780632b0e1d79146107ad5780632b9afa03146107cd57806330adf81f146107ed578063313ce567146108215780633477320c146108485780633644e5151461086857600080fd5b806320606b70146106be57806323b872dd146106f257806326a17edf1461071257806329370cc61461073257806329d9ec5e146107525780632a49b6841461077257600080fd5b80630e59d5b7116104bf5780630e59d5b7146105d15780631551fe91146105e957806316758e0b146106095780631694505e1461062057806318160ddd146106585780631f5e98bb1461069e57600080fd5b806306fdde03146105075780630844c97f1461054a57806308792b1414610561578063095ea7b3146105815780630c0c91a2146105b157600080fd5b3661050257005b600080fd5b34801561051357600080fd5b50604080518082019091526008815267457665725269736560c01b60208201525b60405161054191906154f3565b60405180910390f35b34801561055657600080fd5b5061055f611314565b005b34801561056d57600080fd5b5061055f61057c366004615534565b611456565b34801561058d57600080fd5b506105a161059c366004615582565b611516565b6040519015158152602001610541565b3480156105bd57600080fd5b506105a16105cc3660046155ae565b61152e565b3480156105dd57600080fd5b50601c546002146105a1565b3480156105f557600080fd5b5061055f6106043660046155e7565b611539565b34801561061557600080fd5b50600c5415156105a1565b34801561062c57600080fd5b50601f54610640906001600160a01b031681565b6040516001600160a01b039091168152602001610541565b34801561066457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006001600160601b03165b604051908152602001610541565b3480156106aa57600080fd5b5061055f6106b93660046155e7565b6115df565b3480156106ca57600080fd5b506106907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b3480156106fe57600080fd5b506105a161070d366004615604565b611663565b34801561071e57600080fd5b5061055f61072d366004615645565b6116bb565b34801561073e57600080fd5b5061055f61074d366004615645565b61170a565b34801561075e57600080fd5b5061055f61076d366004615662565b611759565b34801561077e57600080fd5b506105a161078d366004615698565b600160209081526000928352604080842090915290825290205460ff1681565b3480156107b957600080fd5b5061055f6107c8366004615582565b6117ee565b3480156107d957600080fd5b506106906107e83660046156e9565b611a8a565b3480156107f957600080fd5b506106907f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b34801561082d57600080fd5b50610836601281565b60405160ff9091168152602001610541565b34801561085457600080fd5b5061055f6108633660046155ae565b611bb3565b34801561087457600080fd5b50610690611c0e565b34801561088957600080fd5b5061055f610898366004615769565b611ce9565b3480156108a957600080fd5b5061055f6108b83660046157c6565b611d2d565b61055f6108cb3660046157f9565b611db7565b3480156108dc57600080fd5b50610690600c5481565b3480156108f257600080fd5b5061055f610901366004615662565b611ef2565b34801561091257600080fd5b5061055f6109213660046155ae565b611f7a565b34801561093257600080fd5b50610690600b5481565b34801561094857600080fd5b5061055f6109573660046155ae565b6122c9565b34801561096857600080fd5b5061055f610977366004615827565b612362565b34801561098857600080fd5b50602054610640906001600160a01b031681565b3480156109a857600080fd5b5061055f6109b73660046155ae565b61246f565b3480156109c857600080fd5b5061055f6109d736600461584c565b6124c5565b3480156109e857600080fd5b50602154610640906001600160a01b031681565b348015610a0857600080fd5b506105a1610a173660046155ae565b6001600160a01b031660009081526008602052604090205460ff1690565b348015610a4157600080fd5b50610ab6610a50366004615865565b60036020908152600092835260408084209091529082529020546001600160801b0381169063ffffffff600160801b8204811691600160a01b81049091169065ffffffffffff600160c01b8204169060ff600160f01b8204811691600160f81b90041686565b604080516001600160801b03909716875263ffffffff9586166020880152949093169385019390935265ffffffffffff16606084015260ff91821660808401521660a082015260c001610541565b348015610b1057600080fd5b50601b546002146105a1565b348015610b2857600080fd5b50610bf8610b373660046155ae565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506001600160a01b0316600090815260026020908152604091829020825160c081018452905467ffffffffffffffff8116825263ffffffff600160401b8204811693830193909352600160601b81049092169281019290925261ffff600160801b820481166060840152600160901b820416608083015265ffffffffffff600160a01b9091041660a082015290565b6040516105419190600060c08201905067ffffffffffffffff8351168252602083015163ffffffff80821660208501528060408601511660408501525050606083015161ffff8082166060850152806080860151166080850152505065ffffffffffff60a08401511660a083015292915050565b348015610c7857600080fd5b50600554610640906001600160a01b031681565b348015610c9857600080fd5b506105a1610ca7366004615883565b612531565b348015610cb857600080fd5b50610690610cc73660046155ae565b6001600160a01b03166000908152602460205260409020546001600160601b031690565b348015610cf757600080fd5b50601a546002146105a1565b348015610d0f57600080fd5b506019546002146105a1565b348015610d2757600080fd5b50610690610d363660046155ae565b612555565b348015610d4757600080fd5b50600754610640906001600160a01b031681565b348015610d6757600080fd5b5061055f6125f8565b348015610d7c57600080fd5b5061055f610d8b3660046158b1565b612634565b348015610d9c57600080fd5b50610690610dab3660046155ae565b6001600160a01b031660009081526002602052604090205467ffffffffffffffff1690565b348015610ddc57600080fd5b50602254610690565b348015610df157600080fd5b5061055f610e0036600461584c565b612781565b348015610e1157600080fd5b5061055f610e20366004615662565b612793565b348015610e3157600080fd5b50600054610640906001600160a01b031681565b348015610e5157600080fd5b5061069061281c565b348015610e6657600080fd5b50610534604051806040016040528060048152602001635249534560e01b81525081565b348015610e9657600080fd5b50600d54610eaa906001600160601b031681565b6040516001600160601b039091168152602001610541565b348015610ece57600080fd5b5061055f610edd3660046158d6565b612839565b348015610eee57600080fd5b50601d546002146105a1565b348015610f0657600080fd5b506105a1610f15366004615582565b612940565b348015610f2657600080fd5b50600654610640906001600160a01b031681565b348015610f4657600080fd5b5061055f610f55366004615645565b612956565b348015610f6657600080fd5b5061055f610f75366004615902565b6129a5565b348015610f8657600080fd5b5061055f610f95366004615929565b612aff565b348015610fa657600080fd5b5061055f610fb5366004615662565b612c34565b348015610fc657600080fd5b5061055f610fd53660046155ae565b612cbf565b348015610fe657600080fd5b5061055f610ff5366004615944565b612d17565b34801561100657600080fd5b50610690600a5481565b34801561101c57600080fd5b5061069061102b366004615979565b612e02565b34801561103c57600080fd5b5061055f61104b3660046158d6565b612ef3565b34801561105c57600080fd5b5061055f61106b366004615604565b612ffb565b34801561107c57600080fd5b5061055f61108b3660046159eb565b613035565b34801561109c57600080fd5b50610690600e5481565b3480156110b257600080fd5b5061055f6110c13660046158b1565b613137565b3480156110d257600080fd5b506105a16110e13660046155ae565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561110b57600080fd5b5061055f61111a36600461584c565b61325f565b34801561112b57600080fd5b5061055f61113a366004615a17565b6132f5565b34801561114b57600080fd5b506105a161115a366004615a17565b613585565b34801561116b57600080fd5b5061055f61117a3660046155ae565b6135ad565b34801561118b57600080fd5b5061055f61119a3660046155ae565b613602565b3480156111ab57600080fd5b5061055f6111ba36600461584c565b61367f565b3480156111cb57600080fd5b5061055f6111da3660046155ae565b6136fa565b3480156111eb57600080fd5b5061055f6111fa366004615645565b61379d565b34801561120b57600080fd5b5061069061121a366004615865565b6137f0565b34801561122b57600080fd5b5061055f61123a366004615645565b613891565b34801561124b57600080fd5b506105a161125a366004615865565b6138dd565b34801561126b57600080fd5b5061055f61127a3660046155ae565b61391e565b34801561128b57600080fd5b5061055f6139b3565b3480156112a057600080fd5b5061055f6112af3660046155ae565b613a7a565b3480156112c057600080fd5b5061055f6112cf3660046155ae565b613b1c565b3480156112e057600080fd5b5061055f6112ef366004615a88565b613b7f565b34801561130057600080fd5b5061055f61130f36600461584c565b613bc8565b600761131f81613c37565b611327613caf565b15611356576040517f6a436cd4d025d81a64b65845b219f011a8406fee86f3a2d737f274d94e268de190600090a15b6002601d540361145357600f54601e546001600160601b039091169081101561145157601e80546001600160601b038316900390556020546007546113aa916001600160a01b039081169116836000613d26565b602060009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156113fa57600080fd5b505af115801561140e573d6000803e3d6000fd5b50506040516001600160601b03841681527fbaf2a973da603337d11f56e6730fba6606e95b5e8085627c9ead4d24672d8616925060200190505b60405180910390a15b505b50565b3360008181526002602052604090208215611499578054600163ffffffff600160401b80840482169290920116026bffffffff0000000000000000199091161781555b83156114c8578054600163ffffffff600160601b808404821692909201160263ffffffff60601b199091161781555b60408051851515815284151560208201526001600160a01b038416917f5c20d5f19f8c6bc73cb1cba38e0b27f3837b43909d18a4ef193d1fa3c6f8f0d491015b60405180910390a250505050565b60006115253384846001613f93565b90505b92915050565b600061152882614153565b600461154481613c37565b633b9aca00826001600160601b031611156115725760405163c64200e960e01b815260040160405180910390fd5b61157e6012600a615bc2565b611591906001600160601b038416615bce565b600f80546001600160601b0319166001600160601b0392831617905560405190831681527f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c0090602001611448565b60046115ea81613c37565b600a826001600160601b031611156116155760405163c64200e960e01b815260040160405180910390fd5b600d80546001600160601b0319166001600160601b0384169081179091556040519081527f5597c0e02a719eddde3b801d7abc15c0023afdcf6880c1e254427559820083c290602001611448565b6000611670848484614180565b600061167c85336137f0565b90508083111561169f57604051639b144c5760e01b815260040160405180910390fd5b8290036116af8533836000613f93565b50600195945050505050565b60046116c681613c37565b816116d25760016116d5565b60025b601b5560405182151581527fff33d24fddcb9b99aca93607453cdcbd7aa449ae3ea8a9f69421881c7eae81c990602001611448565b600161171581613c37565b81611721576001611724565b60025b601a5560405182151581527f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c090602001611448565b600161176481613c37565b633b9aca008311156117895760405163c64200e960e01b815260040160405180910390fd5b61179482600a615bc2565b6117a684670de0b6b3a7640000615bce565b6117b09190615c03565b60108190556040519081527fcc06eb9a0c57a5ee1100a0e2e4029558c04ff3b2a110a881ac9700cffed1a824906020015b60405180910390a1505050565b60026117f981613c37565b3360215460405163020604bf60e21b8152600481018590526001600160a01b03928316929091169063081812fc90602401602060405180830381865afa158015611847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186b9190615c17565b6001600160a01b03161415801561190157506021546001600160a01b031663e985e9c5336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529086166024820152604401602060405180830381865afa1580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff9190615c34565b155b1561191f57604051634014f1a560e01b815260040160405180910390fd5b611928836144fa565b602154604051632b0e1d7960e01b81526001600160a01b038581166004830152602482018590526000921690632b0e1d79906044016020604051808303816000875af115801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a09190615c51565b90506119ae84826001614521565b6006546119c89085906001600160a01b0316836000613d26565b60215460405163632abfe960e11b81526001600160a01b038681166004830152602482018690529091169063c6557fd290604401600060405180830381600087803b158015611a1657600080fd5b505af1158015611a2a573d6000803e3d6000fd5b5050600654604080518781526001600160601b03861660208201526001600160a01b038981169550909216925030917fe0bf1306ae80358ba075e7e155d3d3100bd1cb7245f654f111d39453f756356a910160405180910390a450505050565b60006002611a9781613c37565b60215460405163153d88f360e11b81526001600160a01b0390911690632a7b11e690611ad4908b908b908b908b908b906000908c90600401615c6e565b6020604051808303816000875af1158015611af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b179190615cd7565b63ffffffff1691506000611b2b8589615cf2565b600654909150611b47906001600160a01b03168a836000613d26565b611b5389828986614600565b600654604080518581526001600160601b03841660208201526001600160a01b038c811693169130917f339e4100371ca3951325b190c421cb3c67f09635d57fc14e6aacfcb52d387329910160405180910390a450509695505050505050565b611bbb6146bc565b611bc4816122c9565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f1501eda19b56071bf17a0a32e2efdeb611ccec1e2da5c7612bf674204901ce7a90600090a250565b3360009081526002602090815260409182902054825180840184526008815267457665725269736560c01b908301528251600160601b90910460e01b6001600160e01b03191681830152825180820360040181526024820184528051908301207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60448301527fce794fa9785f2c930c5f814f254aa188dca4e3e9bde647a87f3a0c8d20d90736606483015260848201524660a48201523060c4808301919091528351808303909101815260e4909101909252815191012090565b6021546001600160a01b0316336001600160a01b031614611d1d57604051637c1aebb760e01b815260040160405180910390fd5b611d288383836146e9565b505050565b6000336001600160a01b038116600081815260026020908152604091829020805463ffffffff60801b1916600160801b61ffff89811691820261ffff60901b191692909217600160901b928b169283021783558451918252928101929092529394507f6d8d587cf6c6d60a0dcd1fa635969d1d69787cfdf26d9f83ebaba44408fc1d2d9101611508565b33611dc1816144fa565b602154604080516305f00a1f60e21b8152905133926001600160a01b0316916317c0287c9160048083019260209291908290030181865afa158015611e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2e9190615d1a565b341015611e4e5760405163627554ed60e01b815260040160405180910390fd5b60215460405163615eaa5960e01b81526001600160a01b0383811660048301526001600160601b038716602483015260ff86166044830152600092169063615eaa59906064016020604051808303816000875af1158015611eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed79190615cd7565b9050611eeb8286868463ffffffff16614600565b5050505050565b6001611efd81613c37565b6103e8831115611f205760405163c64200e960e01b815260040160405180910390fd5b611f2b82600a615bc2565b611f3d84670de0b6b3a7640000615bce565b611f479190615c03565b6016556040518381527f2d2d4e5324f4ce25e3d52eea5f16c64ccd01d35f9f80f30b73346811cc9b951d906020016117e1565b611f826146bc565b6001600160a01b038116611fa9576040516366385fa360e01b815260040160405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120109190615c17565b6001600160a01b031663e6a4390530836001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120819190615c17565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156120cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f09190615c17565b602080546001600160a01b0319166001600160a01b0392909216918217905561227857806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121759190615c17565b6001600160a01b031663c9c6539630836001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e69190615c17565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122579190615c17565b602080546001600160a01b0319166001600160a01b03929092169190911790555b601f80546001600160a01b0319166001600160a01b0383811691909117909155604051908316907fafec26814d7c5e0716cdb68343bdf123509d8bae8a1a877de1c3869411985c5590600090a25050565b60056122d481613c37565b6001600160a01b03821660009081526008602052604090205460ff161561230e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600081815260086020908152604091829020805460ff1916600117905590519182527f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9101611448565b3361236c816144fa565b60003360215460405163d22d6f4360e01b81526001600160a01b0380841660048301526024820188905286151560448301529293506000929091169063d22d6f43906064016020604051808303816000875af11580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f49190615c51565b905061240282826001614521565b60215460405163632abfe960e11b81526001600160a01b038481166004830152602482018890529091169063c6557fd290604401600060405180830381600087803b15801561245057600080fd5b505af1158015612464573d6000803e3d6000fd5b505050505050505050565b600461247a81613c37565b600780546001600160a01b0319166001600160a01b0384169081179091556040517f6feb2294766fb161940a49b92df0ad4a47ffb6ef8255e0b9f80c8c05b7ec6b0f90600090a25050565b60046124d081613c37565b600d546001600160601b03168211156124fc5760405163c64200e960e01b815260040160405180910390fd5b600e8290556040518281527f160ad92b724bb5157ba7574b379ecc4ec5a5f5220cd651c3b44b4b1c12332b1190602001611448565b6000600861253e81613c37565b61254b3085856000613d26565b5060019392505050565b6006546000906001600160a01b03838116911614801561257757506002601c54145b1561258457506000919050565b600061258f83614835565b90506002601854141580156125af57506028544363ffffffff9081169116145b80156125c457506001600160a01b0383163b15155b80156125e957506001600160a01b03831660009081526008602052604090205460ff16155b15611528576115288382614859565b600461260381613c37565b6001601e556040517f38e9e1bdbb19e199e2318a4fdd4145df21973acc643c88012128eeb61a386c6090600090a150565b3361263e816144fa565b3361264981846149bd565b60215460405163e2c281db60e01b81526001600160a01b038381166004830152602482018790526001600160601b0386166044830152600092839291169063e2c281db906064016060604051808303816000875af11580156126af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d39190615d33565b6040516001600160601b03831681529094509092506001600160a01b03851691507fbedcdd66d86f5dc81286de7b36cc38398208ffb595a3e95330fca4fb21f08cba9060200160405180910390a26001600160a01b0383167ff4476f182b22aa6860f6aea0edf736040fd43167d941069fadffe4aef18ef7286127568784615d72565b604080516001600160601b03909216825260ff861660208301520160405180910390a2505050505050565b6127896146bc565b6114533382614a77565b600161279e81613c37565b620f42408311156127c25760405163c64200e960e01b815260040160405180910390fd5b6127cd82600a615bc2565b6127df84670de0b6b3a7640000615bce565b6127e99190615c03565b6017556040518381527fb25c7820d9392eafa2a90c45ca6438ae395e13490da78f2e2c77168cbb951534906020016117e1565b600654600090612834906001600160a01b0316614835565b905090565b6128416146bc565b600081600881111561285557612855615d9d565b03612872576040516252b55360e31b815260040160405180910390fd5b6001600160a01b038216612899576040516366385fa360e01b815260040160405180910390fd5b60018060008360088111156128b0576128b0615d9d565b60088111156128c1576128c1615d9d565b8152602080820192909252604090810160009081206001600160a01b03871682529092529020805460ff191691151591909117905580600881111561290857612908615d9d565b6040516001600160a01b038416907fda7159b01021254a0864c86d0163ad02e9f9ce045913f19dc9315ce339a7270a90600090a35050565b600061294d338484614180565b50600192915050565b600461296181613c37565b8161296d576001612970565b60025b601d5560405182151581527f381a2ba311289fc64532188b12030ca4ad77b2dc7c3a88ab03bacbf13da52a1c90602001611448565b336129af816144fa565b600033602154604051632af7e50d60e21b81526001600160a01b038084166004830152602482018990526001600160601b038816604483015286151560648301529293506000929091169063abdf9434906084016020604051808303816000875af1158015612a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a469190615cd7565b90506001600160601b03851615612a6357612a6382866001614521565b8063ffffffff168614158015612a7e575063ffffffff811615155b15612af757602154604051630b40697b60e31b81526001600160a01b0384811660048301526024820189905263ffffffff8416604483015290911690635a034bd8906064015b600060405180830381600087803b158015612ade57600080fd5b505af1158015612af2573d6000803e3d6000fd5b505050505b505050505050565b6312cc0300612b116201518083615db3565b65ffffffffffff161115612b3857604051635b30744d60e11b815260040160405180910390fd5b33600090815260026020526040902054600160a01b900465ffffffffffff1642811015612b78576040516319aad37160e01b815260040160405180910390fd5b6000612b848342615dd8565b90508065ffffffffffff168265ffffffffffff161115612bb757604051636badcecf60e01b815260040160405180910390fd5b336000818152600260205260409020805465ffffffffffff60a01b1916600160a01b65ffffffffffff85160217905560405165ffffffffffff851681526001600160a01b0391909116907f402f92847e995eb87d15fd380cf11ec5c61ca69a5f6cd305fd26cd1cb6a41757906020015b60405180910390a2505050565b6001612c3f81613c37565b620186a0831115612c635760405163c64200e960e01b815260040160405180910390fd5b612c6e82600a615bc2565b612c8084670de0b6b3a7640000615bce565b612c8a9190615c03565b60128190556040519081527fac218d80006936a5fb23226f25ffed76cd856dbcc539b7dd7a8abb5a418a8da4906020016117e1565b6006612cca81613c37565b6001600160a01b038216600081815260096020526040808220805460ff19166001179055517f07eccb5a6343032639dc3f1a913d254583bf745e350cdaa19ffc2b4cc2ebff6b9190a25050565b6001600160a01b03831660009081527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f602052604090205460ff16612d6f5760405163d9716e4360e01b815260040160405180910390fd5b6021546001600160a01b031663e1f21c67336040516001600160e01b031960e084901b1681526001600160a01b039182166004820152908616602482015260448101859052606401600060405180830381600087803b158015612dd157600080fd5b505af1158015612de5573d6000803e3d6000fd5b50505050612dfc612df33390565b84836001613f93565b50505050565b60006008612e0f81613c37565b60215460405163153d88f360e11b81526001600160a01b0390911690632a7b11e690612e4c908b908a908a908a908a908f90600090600401615c6e565b6020604051808303816000875af1158015612e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8f9190615cd7565b63ffffffff1691506000612ea38488615cf2565b9050612eb2308a836000613d26565b6001600160601b03881615612edb57602154612edb9030906001600160a01b03168a6000613d26565b612ee789828886614600565b50509695505050505050565b612efb6146bc565b6000816008811115612f0f57612f0f615d9d565b03612f2c576040516252b55360e31b815260040160405180910390fd5b6001600160a01b038216612f53576040516366385fa360e01b815260040160405180910390fd5b600060016000836008811115612f6b57612f6b615d9d565b6008811115612f7c57612f7c615d9d565b8152602080820192909252604090810160009081206001600160a01b03871682529092529020805460ff1916911515919091179055806008811115612fc357612fc3615d9d565b6040516001600160a01b038416907f99b197980951aeda56a24210ac7963b47fac50b2277554a4fc7dc06fd305b57490600090a35050565b6130036146bc565b6001600160a01b03831661302a576040516366385fa360e01b815260040160405180910390fd5b611d28838383614aeb565b3361303f816144fa565b6001600160a01b038316613066576040516366385fa360e01b815260040160405180910390fd5b6312cc03006130786201518084615db3565b65ffffffffffff16111561309f57604051635b30744d60e11b815260040160405180910390fd5b6130a98242615dd8565b336000818152600260209081526040808320805465ffffffffffff60a01b1916600160a01b65ffffffffffff97881602179055600482529182902080546001600160a01b0389166001600160a01b0319909116811790915582519081529386169084015290917f9141f23a32bd7f35c8ce161a6f9d05eba59799700a6a44094330bd68b3e251039101612c27565b33613141816144fa565b60003360215460405163012a6efb60e21b81526001600160a01b038084166004830152602482018890526001600160601b0387166044830152929350600092839216906304a9bbec9060640160408051808303816000875af11580156131ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cf9190615df9565b915091506131df83866001614521565b6001600160601b0381161561321a576021546132089084906001600160a01b0316836000613d26565b61321a816001600160601b0316614ba4565b602154604051630b40697b60e31b81526001600160a01b0385811660048301526024820189905263ffffffff8516604483015290911690635a034bd890606401612ac4565b600361326a81613c37565b613297620186a07f0000000000000000000000000000000000000000000000000000000000000000615e25565b6001600160601b03168210156132c05760405163c64200e960e01b815260040160405180910390fd5b600c8290556040518281527f699d1c4c28f453c7c162bf9ab9d182bcca9b5860718f5dbc0dadb620c0aa077e90602001611448565b6001600160a01b03861661331c576040516366385fa360e01b815260040160405180910390fd5b4284101561333d57604051630407b05b60e31b815260040160405180910390fd5b6001600160a01b03871660009081526002602052604081208054909167ffffffffffffffff9091169061336e611c0e565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808e1692820192909252908b166060820152608081018a905267ffffffffffffffff841660a082015260c0810189905260e0016040516020818303038152906040528051906020012060405160200161341092919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181529190528051602090910120835467ffffffffffffffff600190940193841667ffffffffffffffff199091161784559050601b60ff8716101561346b57613464601b87615e3f565b95506134c3565b601e8660ff1611156134c3576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052605c016040516020818303038152906040528051906020012090505b6040805160008082526020820180845284905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613517573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158061354c57508a6001600160a01b0316816001600160a01b031614155b1561356a57604051638baa579f60e01b815260040160405180910390fd5b6135778b8b8b6001613f93565b505050505050505050505050565b6000613596883388888888886132f5565b6135a1888888611663565b98975050505050505050565b60066135b881613c37565b6001600160a01b038216600081815260096020526040808220805460ff19169055517fe96bbe78c8bc645f0ee444e35730f56b458ea663d1b2a35cf93cefd7fce93dc19190a25050565b600461360d81613c37565b6001600160a01b038216613634576040516366385fa360e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0384169081179091556040517f6a679ad6371327969c9ddeade76f85c3e657fd6d020eeb491becdd1b6d608db390600090a25050565b600161368a81613c37565b6305f5e1008211156136af5760405163c64200e960e01b815260040160405180910390fd5b6136bb6012600a615bc2565b6136c59083615bce565b60118190556040519081527f29b4862b0ac325a5ba77a99236953f6a42e083f4f886db919d7b0b5e9f2cee0090602001611448565b6001600160a01b0381811660009081526004602052604090205416331461373457604051634014f1a560e01b815260040160405180910390fd5b33600090815260026020526040902054600160a01b900465ffffffffffff1642811015613774576040516319aad37160e01b815260040160405180910390fd5b5050336000908152600260205260409020805465ffffffffffff60a01b1916600160a01b179055565b6137a56146bc565b806137b15760016137b4565b60025b601c5560405181151581527f3d7f39af0cf901fec3da1b0ecfab4a0eb553ed671de67850e09cca22848dd866906020015b60405180910390a150565b6001600160a01b038083166000908152600260209081526040808320546003835281842094861684529390915281208054919263ffffffff600160601b909104811692600160a01b9004168214158061385857508054600160c01b900465ffffffffffff1642115b8061386f57508054600160f81b900460ff16600114155b1561387f57600092505050611528565b546001600160801b0316949350505050565b6138996146bc565b806138a55760016138a8565b60025b60195560405181151581527f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a12906020016137e5565b6021546000906001600160a01b0316336001600160a01b03161461391457604051637c1aebb760e01b815260040160405180910390fd5b6115258383614c39565b600561392981613c37565b6001600160a01b03821660009081526008602052604090205460ff166139625760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600081815260086020908152604091829020805460ff1916905590519182527fead11242b7eb5b3a03a27edc0039f1305d251bf91b3d1e94c3861c3d6e4ac1289101611448565b6139bb6146bc565b600c54156139dc5760405163e529091f60e01b815260040160405180910390fd5b613a0d303330600090815260236020526040902054613a06906001906001600160601b0316615cf2565b6000613d26565b6002601a819055601955613a436103e87f0000000000000000000000000000000000000000000000000000000000000000615e25565b6001600160601b0316600c556040517f994a0442f4498644e0bb3fe4b4c74ad21fbbb80e04b2fd1cb31f4248796d3dde90600090a1565b613a826146bc565b6001600160a01b038116613aa9576040516366385fa360e01b815260040160405180910390fd5b600080546001600160a01b031690613ac2908290614cd3565b613acd826001614cd3565b600080546001600160a01b0319166001600160a01b0384811691821783556040519192908416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613b246146bc565b602180546001600160a01b0319166001600160a01b038316179055613b48816122c9565b6040516001600160a01b038216907f8ae96d8af35324a34b19e4f33e72d620b502f69595bb43870ab5fd7a7de7823990600090a250565b82613b89816144fa565b6021546001600160a01b0316336001600160a01b031614613bbd57604051637c1aebb760e01b815260040160405180910390fd5b612dfc848484614e64565b6001613bd381613c37565b6064821080613be45750620f424082115b15613c025760405163c64200e960e01b815260040160405180910390fd5b60158290556040518281527fe24723968dd1fe95c864bec60a98788d4f02a5a3e1e9e80ccafdee9146ff54c790602001611448565b60016000826008811115613c4d57613c4d615d9d565b6008811115613c5e57613c5e615d9d565b81526020019081526020016000206000613c753390565b6001600160a01b0316815260208101919091526040016000205460ff1661145357604051634014f1a560e01b815260040160405180910390fd5b60006002601a5403613d2357601254479081118015613cdc5750601554601454613cd99190615e64565b43115b15613d2157613cec600a82615c03565b60135460175491925090811115613d0257506017545b81811115613d0d5750805b8015613d1f57613d1c81614f76565b92505b505b505b90565b6001600160a01b038416600090815260236020526040812054613d539084906001600160601b0316615cf2565b6001600160a01b038616600090815260236020526040812080546001600160601b0319166001600160601b03841617905590915082613d93576000613db6565b600d54606490613dac906001600160601b031686615e7c565b613db69190615e25565b90506000613dc48286615cf2565b6001600160a01b0387166000908152602360205260409020549091506001600160601b0316613df38282615d72565b6001600160a01b038816600090815260236020526040902080546001600160601b0319166001600160601b03928316179055831615613e79573060009081526023602052604081208054859290613e549084906001600160601b0316615d72565b92506101000a8154816001600160601b0302191690836001600160601b031602179055505b613e8384826150b1565b6006546001600160a01b0390811690891603613eeb576006546040516001600160601b03881681526001600160a01b038981169216907f0e128c83dc42be0b80a07793e5b69c77c3981238a44754802b90d92ae85b3b489060200160405180910390a3613f4f565b6006546001600160a01b0390811690881603613f4f576006546040516001600160601b03881681526001600160a01b038a81169216907f5cd522aff7a2bf4d0c00ba029b9cebb7a25ed4a77695101f28f01f865421d0409060200160405180910390a35b6040516001600160601b03831681526001600160a01b0380891691908a1690600080516020615f558339815191529060200160405180910390a35050505050505050565b60006001600160a01b038516613fbc576040516366385fa360e01b815260040160405180910390fd5b6001600160a01b038416613fe3576040516366385fa360e01b815260040160405180910390fd5b6001600160801b03831115613ffd576001600160801b0392505b6001600160a01b03858116600090815260026020908152604080832060038352818420948916845293909152902080546fffffffffffffffffffffffffffffffff1981166001600160801b0387169081178355835477ffffffff00000000ffffffffffffffffffffffffffffffff1990921617600160601b90910463ffffffff16600160a01b0217815583156140e9578154600160901b900461ffff1680156140bb576140ac81610e10615eab565b6140b69042615dd8565b6140c3565b65ffffffffffff5b825465ffffffffffff91909116600160c01b0265ffffffffffff60c01b19909116178255505b80546001600160f81b0316600160f81b1781556040516001600160a01b0380881691908916907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061413e9089815260200190565b60405180910390a35060019695505050505050565b6001600160a01b031660009081526002602052604090205442600160a01b90910465ffffffffffff161190565b8261418a816144fa565b6001600160a01b03841615806141a757506001600160a01b038316155b156141c5576040516366385fa360e01b815260040160405180910390fd5b816000036141e657604051635e85ae7360e01b815260040160405180910390fd5b6001600160a01b0384166000908152602460205260409020546001600160601b031661421185614835565b61421b9190615ed0565b82111561423b576040516305c2afdf60e21b815260040160405180910390fd5b6001600160a01b03841660009081526008602052604081205460ff168061427a57506001600160a01b03841660009081526008602052604090205460ff165b601854909150600214156000614291600c54151590565b6020549091506001600160a01b039081169087811682149089168214856143f057306001600160a01b038a16036142db5760405163d9716e4360e01b815260040160405180910390fd5b600c548811156142fe57604051631b97a87560e01b815260040160405180910390fd5b8361431c576040516306c3d31f60e51b815260040160405180910390fd5b84156143f057818061432b5750805b801561434557503260009081526025602052604090205443145b156143635760405163e069ee1d60e01b815260040160405180910390fd5b32600090815260256020526040902043905581801561438457506002601954145b156143f057600f546001600160601b03168061439f30614835565b11156143b7576143b7816001600160601b03166150fe565b6143bf613caf565b156143ee576040517fac401825222c905dafef53f897e1fe565e107a9b114737f28ad26c699784bd8d90600090a15b505b83156144885780156144195787600a600082825461440e9190615e64565b909155506144889050565b81156144885787600b60008282546144319190615e64565b909155505060115488111561448857600061444d606447615c03565b9050600060646010546144609190615c03565b90508082111561446e578091505b81601360008282546144809190615e64565b909155505050505b600186806144ae57506001600160a01b038a1660009081526009602052604090205460ff165b156144b7575060005b85156144e15786156144d8576028805463ffffffff191660011790556144e1565b6144e18a615258565b6144ed8b8b8b84613d26565b5050505050505050505050565b61450381614153565b15611453576040516335543b4960e21b815260040160405180910390fd5b6001600160a01b038316600090815260246020526040812080548492906145529084906001600160601b0316615cf2565b92506101000a8154816001600160601b0302191690836001600160601b031602179055508015611d28576040516001600160601b03831681526001600160a01b038416907fbedcdd66d86f5dc81286de7b36cc38398208ffb595a3e95330fca4fb21f08cba9060200160405180910390a26040516001600160601b03831681526001600160a01b038416908190600080516020615f55833981519152906020015b60405180910390a3505050565b61460a84846149bd565b60215460405163238d3a8f60e11b81526001600160a01b038681166004830152602482018490529091169063471a751e90604401600060405180830381600087803b15801561465857600080fd5b505af115801561466c573d6000803e3d6000fd5b5050604080516001600160601b038716815260ff861660208201526001600160a01b03881693507ff4476f182b22aa6860f6aea0edf736040fd43167d941069fadffe4aef18ef728925001611508565b6000546001600160a01b031633146146e757604051632e6c18c960e11b815260040160405180910390fd5b565b6001600160a01b038216614710576040516366385fa360e01b815260040160405180910390fd5b6001600160a01b0380841660008181526003602090815260408083209487168352938152838220928252600290529190912082156147f0578054600160801b900461ffff166000811561477c5761476982610e10615ee7565b6147779061ffff1642615dd8565b614784565b65ffffffffffff5b8354855460ff60f01b1965ffffffffffff909316600160c01b0265ffffffffffff60c01b19600160801b63ffffffff600160401b9095049490941693909302929092166dffffffffffff00000000ffffffff60801b19909116171716600160f01b17845550611eeb9050565b5481546eff00000000000000000000ffffffff60801b1916600160801b600160401b90920463ffffffff90811660001901169190910260ff60f01b1916179055505050565b6001600160a01b03166000908152602360205260409020546001600160601b031690565b602754600160601b90046001600160a01b03163214158061488f57506026546001600160a01b03838116600160601b9092041614155b15614898575050565b6000806148ad846001600160a01b031661539b565b90925090506001600160a01b0381166148c65750505050565b6000306001600160a01b038316036148e3575081905060016148fa565b6001600160a01b03831630146148fa575050505050565b6040516370a0823160e01b81526001600160a01b038681166004830152600091908416906370a0823190602401602060405180830381865afa158015614944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149689190615d1a565b6026549091506001600160601b03166dffffffffffffffffffffffffffff861611801561499f57506027546001600160601b031681115b15612af75760405163878d636360e01b815260040160405180910390fd5b6001600160a01b0382166000908152602460205260408120546149ea9083906001600160601b0316615d72565b90506149f583614835565b816001600160601b03161115614a1e576040516305c2afdf60e21b815260040160405180910390fd5b6001600160a01b03831660008181526024602090815260409182902080546001600160601b0319166001600160601b0386811691909117909155915191851682528291600080516020615f5583398151915291016145f3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614ac4576040519150601f19603f3d011682016040523d82523d6000602084013e614ac9565b606091505b5050905080611d285760405163b5747cc760e01b815260040160405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015614b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b5e9190615c34565b50816001600160a01b0316836001600160a01b03167ff217402c85197de87cd806653771027d1e91101ef79ab35684a580c62b91a9b5836040516145f391815260200190565b80156114535760215460405163d9fbb1e960e01b8152600481018390526001600160a01b039091169063d9fbb1e990602401600060405180830381600087803b158015614bf057600080fd5b505af1158015614c04573d6000803e3d6000fd5b505050507fd3be3dbc076afa976ee7dfe1f596f6d7905e9441a1a426a244a12ef071272dd4816040516137e591815260200190565b6001600160a01b038083166000908152600260209081526040808320546003835281842094861684529390915281208054919263ffffffff600160401b909104811692600160801b90041682141580614ca157508054600160c01b900465ffffffffffff1642115b80614cb857508054600160f01b900460ff16600114155b15614cc857600092505050611528565b506001949350505050565b6001600160a01b039190911660009081527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f60209081526040808320805494151560ff1995861681179091557fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f835281842080548616821790557f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b835281842080548616821790557fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643835281842080548616821790557fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c835281842080548616821790557f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a835281842080548616821790557fdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237e835281842080548616821790557f4db623e5c4870b62d3fc9b4e8f893a1a77627d75ab45d9ff7e56ba19564af99b9092529091208054909216179055565b614e7083826000614521565b6001600160a01b038316600090815260236020526040812054614e9d9083906001600160601b0316615cf2565b6001600160a01b0385811660009081526023602052604080822080546001600160601b0319166001600160601b0386811691909117909155928716825290205491925016614eeb8382615d72565b6001600160a01b038516600090815260236020526040902080546001600160601b0319166001600160601b0392909216919091179055614f2b84846149bd565b614f3582826150b1565b6040516001600160601b03841681526001600160a01b038086169190871690600080516020615f558339815191529060200160405180910390a35050505050565b6000600260185403614f8757600080fd5b600260185560165460135581156150a757602154600090614fb0906001600160a01b0316614835565b601f5460215460405163611ea9f560e11b81526001600160a01b03928316600482015291166024820152604481018590529091507399fe7b37639ae33d0f15f61f4288a2fc9cff7bc19063c23d53ea9060640160006040518083038186803b15801561501b57600080fd5b505af415801561502f573d6000803e3d6000fd5b50506021546000925083915061504d906001600160a01b0316614835565b6150579190615ed0565b60408051868152602081018390529192507f3967d46c5aa65ced73be27b4c6d249e552274da7a605101a66ef571a8e2608a4910160405180910390a1436014556150a081614ba4565b6001925050505b6001601855919050565b602254806001600160601b0384166000036150d2576150cf81615f08565b90505b826001600160601b03166000036150ef576150ec81615f1f565b90505b808214612dfc57602255505050565b60026018540361510d57600080fd5b6002601855601f54479061512e9030906001600160a01b0316846001613f93565b50816001600160601b0316601e600082825461514a9190615e64565b9091555050601f54604051637418a7c560e01b81526001600160a01b039091166004820152602481018390527399fe7b37639ae33d0f15f61f4288a2fc9cff7bc190637418a7c59060440160006040518083038186803b1580156151ad57600080fd5b505af41580156151c1573d6000803e3d6000fd5b50505050600081476151d39190615ed0565b60408051858152602081018390529192507f1d835182508bc46cfe26167d5d6ca20231bf92fb2ee0d558d40553b29a40fdf9910160405180910390a1600d54600e546001600160601b039091169061522b9083615bce565b6152359190615c03565b60055490915061524e906001600160a01b031682614a77565b5050600160185550565b600061526382614835565b905060008061527a846001600160a01b031661539b565b9092509050306001600160a01b038216036152925750805b6001600160a01b0381166152b65750506028805463ffffffff191660011790555050565b6040516370a0823160e01b81526001600160a01b038581166004830152600091908316906370a0823190602401602060405180830381865afa158015615300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153249190615d1a565b6040805160a0810182526001600160601b039687168082526001600160a01b0398909816602082018190529290961690860181905232606087018190524363ffffffff166080909701879052600160601b928302909717602655950290941760275550506028805463ffffffff1916909117905550565b6000806001600160a01b0383163b6153b857506000928392509050565b6040805160048152602481019091526020810180516001600160e01b0316630dfe168160e01b1790526153ec908490615429565b6040805160048152602481019091526020810180516001600160e01b031663d21220a760e01b179052615420908590615429565b91509150915091565b6000806000846001600160a01b0316846040516154469190615f38565b600060405180830381855afa9150503d8060008114615481576040519150601f19603f3d011682016040523d82523d6000602084013e615486565b606091505b509150915081801561549a57506020815110155b156154bc57808060200190518101906154b39190615c17565b92505050611528565b506000949350505050565b60005b838110156154e25781810151838201526020016154ca565b83811115612dfc5750506000910152565b60208152600082518060208401526155128160408501602087016154c7565b601f01601f19169190910160400192915050565b801515811461145357600080fd5b6000806040838503121561554757600080fd5b823561555281615526565b9150602083013561556281615526565b809150509250929050565b6001600160a01b038116811461145357600080fd5b6000806040838503121561559557600080fd5b82356155a08161556d565b946020939093013593505050565b6000602082840312156155c057600080fd5b81356155cb8161556d565b9392505050565b6001600160601b038116811461145357600080fd5b6000602082840312156155f957600080fd5b81356155cb816155d2565b60008060006060848603121561561957600080fd5b83356156248161556d565b925060208401356156348161556d565b929592945050506040919091013590565b60006020828403121561565757600080fd5b81356155cb81615526565b6000806040838503121561567557600080fd5b50508035926020909101359150565b80356009811061569357600080fd5b919050565b600080604083850312156156ab57600080fd5b6156b483615684565b915060208301356155628161556d565b60ff8116811461145357600080fd5b803565ffffffffffff8116811461569357600080fd5b60008060008060008060c0878903121561570257600080fd5b863561570d8161556d565b9550602087013561571d816155d2565b9450604087013561572d816156c4565b935061573b606088016156d3565b9250608087013561574b816155d2565b915060a087013561575b81615526565b809150509295509295509295565b60008060006060848603121561577e57600080fd5b83356157898161556d565b925060208401356157998161556d565b915060408401356157a981615526565b809150509250925092565b803561ffff8116811461569357600080fd5b600080604083850312156157d957600080fd5b6157e2836157b4565b91506157f0602084016157b4565b90509250929050565b6000806040838503121561580c57600080fd5b8235615817816155d2565b91506020830135615562816156c4565b6000806040838503121561583a57600080fd5b82359150602083013561556281615526565b60006020828403121561585e57600080fd5b5035919050565b6000806040838503121561587857600080fd5b82356156b48161556d565b6000806040838503121561589657600080fd5b82356158a18161556d565b91506020830135615562816155d2565b600080604083850312156158c457600080fd5b823591506020830135615562816155d2565b600080604083850312156158e957600080fd5b82356158f48161556d565b91506157f060208401615684565b60008060006060848603121561591757600080fd5b833592506020840135615799816155d2565b60006020828403121561593b57600080fd5b611525826156d3565b60008060006060848603121561595957600080fd5b83356159648161556d565b95602085013595506040909401359392505050565b60008060008060008060c0878903121561599257600080fd5b863561599d8161556d565b955060208701356159ad816155d2565b945060408701356159bd816155d2565b935060608701356159cd816156c4565b92506159db608088016156d3565b915060a087013561575b816155d2565b600080604083850312156159fe57600080fd5b8235615a098161556d565b91506157f0602084016156d3565b600080600080600080600060e0888a031215615a3257600080fd5b8735615a3d8161556d565b96506020880135615a4d8161556d565b955060408801359450606088013593506080880135615a6b816156c4565b9699959850939692959460a0840135945060c09093013592915050565b600080600060608486031215615a9d57600080fd5b8335615aa88161556d565b92506020840135615ab88161556d565b915060408401356157a9816155d2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115615b19578160001904821115615aff57615aff615ac8565b80851615615b0c57918102915b93841c9390800290615ae3565b509250929050565b600082615b3057506001611528565b81615b3d57506000611528565b8160018114615b535760028114615b5d57615b79565b6001915050611528565b60ff841115615b6e57615b6e615ac8565b50506001821b611528565b5060208310610133831016604e8410600b8410161715615b9c575081810a611528565b615ba68383615ade565b8060001904821115615bba57615bba615ac8565b029392505050565b60006115258383615b21565b6000816000190483118215151615615be857615be8615ac8565b500290565b634e487b7160e01b600052601260045260246000fd5b600082615c1257615c12615bed565b500490565b600060208284031215615c2957600080fd5b81516155cb8161556d565b600060208284031215615c4657600080fd5b81516155cb81615526565b600060208284031215615c6357600080fd5b81516155cb816155d2565b6001600160a01b039790971687526001600160601b03958616602088015260ff94909416604087015265ffffffffffff9290921660608601528316608085015290911660a0830152151560c082015260e00190565b805163ffffffff8116811461569357600080fd5b600060208284031215615ce957600080fd5b61152582615cc3565b60006001600160601b0383811690831681811015615d1257615d12615ac8565b039392505050565b600060208284031215615d2c57600080fd5b5051919050565b600080600060608486031215615d4857600080fd5b615d5184615cc3565b92506020840151615d61816155d2565b60408501519092506157a9816156c4565b60006001600160601b03808316818516808303821115615d9457615d94615ac8565b01949350505050565b634e487b7160e01b600052602160045260246000fd5b600065ffffffffffff80841680615dcc57615dcc615bed565b92169190910492915050565b600065ffffffffffff808316818516808303821115615d9457615d94615ac8565b60008060408385031215615e0c57600080fd5b615e1583615cc3565b91506020830151615562816155d2565b60006001600160601b0380841680615dcc57615dcc615bed565b600060ff821660ff84168060ff03821115615e5c57615e5c615ac8565b019392505050565b60008219821115615e7757615e77615ac8565b500190565b60006001600160601b0380831681851681830481118215151615615ea257615ea2615ac8565b02949350505050565b600065ffffffffffff80831681851681830481118215151615615ea257615ea2615ac8565b600082821015615ee257615ee2615ac8565b500390565b600061ffff80831681851681830481118215151615615ea257615ea2615ac8565b600081615f1757615f17615ac8565b506000190190565b600060018201615f3157615f31615ac8565b5060010190565b60008251615f4a8184602087016154c7565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205fcf0e9b4929713a5356a59c6331dc69c113fecfec6e461c4a092f491d8b0f5d64736f6c634300080d003300000000000000000000000060ae616a2155ee3d9a68541ba4544862310933d4