[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "address", "name": "_depositToken", "type": "address" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "address", "name": "_nativeRewardToken", "type": "address" }, { "components": [ { "internalType": "address", "name": "poolReward", "type": "address" }, { "internalType": "address", "name": "extraReward", "type": "address" }, { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" } ], "internalType": "struct MasterChefStrategyForLP.SwapPairs", "name": "_swapPairs", "type": "tuple" }, { "internalType": "address", "name": "_stakingRewards", "type": "address" }, { "internalType": "uint256", "name": "_pid", "type": "uint256" }, { "internalType": "address", "name": "_timelock", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "minTokensToReinvest", "type": "uint256" }, { "internalType": "uint256", "name": "adminFeeBips", "type": "uint256" }, { "internalType": "uint256", "name": "devFeeBips", "type": "uint256" }, { "internalType": "uint256", "name": "reinvestRewardBips", "type": "uint256" } ], "internalType": "struct MasterChefStrategy.StrategySettings", "name": "_strategySettings", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "AllowDepositor", "type": "event" }, { "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": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "DepositsEnabled", "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": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Recovered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newTotalDeposits", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Reinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "RemoveDepositor", "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": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateAdminFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldValue", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newValue", "type": "address" } ], "name": "UpdateDevAddr", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateDevFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateMaxTokensToDepositWithoutReinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateMinTokensToReinvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "UpdateReinvestReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "ADMIN_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEPOSITS_ENABLED", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEV_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_TOKENS_TO_DEPOSIT_WITHOUT_REINVEST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_TOKENS_TO_REINVEST", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REINVEST_REWARD_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION_HASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "depositor", "type": "address" } ], "name": "allowDepositor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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" } ], "name": "allowedDepositors", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "depositFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": "depositWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "estimateDeployedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "estimateReinvestReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extraToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getDepositTokensForShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDomainSeparator", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getSharesForDepositTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "joeChef", "outputs": [ { "internalType": "contract IJoeChef", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "numberOfAllowedDepositors", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "recoverAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "depositor", "type": "address" } ], "name": "removeDepositor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "minReturnAmountAccepted", "type": "uint256" }, { "internalType": "bool", "name": "disableDeposits", "type": "bool" } ], "name": "rescueDeployedFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "revokeAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "setAllowances", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_extraTokenSwapPair", "type": "address" } ], "name": "setExtraRewardSwapPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapPairExtraReward", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapPairRewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDeposits", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "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": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateAdminFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "updateDepositsEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newValue", "type": "address" } ], "name": "updateDevAddr", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateDevFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateMaxTokensToDepositWithoutReinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateMinTokensToReinvest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateReinvestReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e0604052600960a0819052685969656c642059616b60b81b60c09081526200002c916000919062001643565b506040805180820190915260038082526216549560ea1b6020909201918252620000599160019162001643565b503480156200006757600080fd5b506040516200671e3803806200671e8339810160408190526200008a91620017fb565b8888888888888789888888888888600001518960200151898989896000620000b76200026860201b60201c565b600680546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620066fe833981519152908290a3508951620001099060009060208d019062001643565b50600980546001600160a01b03808c166001600160a01b031992831617909255600a80548b84169083161790556080849052600b80548216732d580f9cf2fb2d09bc411532988f2afda4e7beff1790556012805492871692909116919091179055620001778888886200026c565b6200018285620004e8565b80516200018f90620006fd565b60208101516200019f9062000785565b6040810151620001af9062000853565b6060810151620001bf906200090d565b620001cb6001620009c7565b620001d68362000a6f565b7fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef2346000806040516200020a92919062001949565b60405180910390a1505050505050505050506200022f85888862000b2960201b60201c565b5050601980546001600160a01b0319166001600160a01b039c909c169b909b17909a555062001ce39d5050505050505050505050505050565b3390565b826001600160a01b0316826001600160a01b031614620004b957806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c057600080fd5b505afa158015620002d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fb9190620017de565b6001600160a01b0316826001600160a01b03161415620003cc57826001600160a01b0316816001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035957600080fd5b505afa1580156200036e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003949190620017de565b6001600160a01b031614620003c65760405162461bcd60e51b8152600401620003bd9062001a87565b60405180910390fd5b620004b9565b806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040657600080fd5b505afa1580156200041b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004419190620017de565b6001600160a01b0316826001600160a01b031614156200049f57826001600160a01b0316816001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035957600080fd5b60405162461bcd60e51b8152600401620003bd90620019d4565b601380546001600160a01b039384166001600160a01b0319918216179091556014805492909316911617905550565b6001600160a01b03811615620006dd57600a5460408051630dfe168160e01b815290516001600160a01b0392831692841691630dfe1681916004808301926020929190829003018186803b1580156200054057600080fd5b505afa15801562000555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200057b9190620017de565b6001600160a01b031614156200062657806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620005c557600080fd5b505afa158015620005da573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006009190620017de565b601680546001600160a01b0319166001600160a01b0392909216919091179055620006bc565b806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200066057600080fd5b505afa15801562000675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069b9190620017de565b601680546001600160a01b0319166001600160a01b03929092169190911790555b601580546001600160a01b0319166001600160a01b038316179055620006fa565b601580546001600160a01b03199081169091556016805490911690555b50565b6200070762000268565b6001600160a01b03166200071a62001605565b6001600160a01b031614620007435760405162461bcd60e51b8152600401620003bd9062001b87565b7f481f79ac3a523b6d6db3c5a720e190e986d1cc1b41adcdf50f9caef849901100600c54826040516200077892919062001949565b60405180910390a1600c55565b6200078f62000268565b6001600160a01b0316620007a262001605565b6001600160a01b031614620007cb5760405162461bcd60e51b8152600401620003bd9062001b87565b61271062000805600f54620007f1601154856200161460201b620020271790919060201c565b6200161460201b620020271790919060201c565b11156200081157600080fd5b7f3cc372f330f95ac9540626dc8a25f5bf21ba607215a5d58304cb804d446f104a601054826040516200084692919062001949565b60405180910390a1601055565b6200085d62000268565b6001600160a01b03166200087062001605565b6001600160a01b031614620008995760405162461bcd60e51b8152600401620003bd9062001b87565b612710620008bf600f54620007f1601054856200161460201b620020271790919060201c565b1115620008cb57600080fd5b7f2a42303d002f0ba6cfe8259c91d4684443fb0b3de286ba74991175d651726131601154826040516200090092919062001949565b60405180910390a1601155565b6200091762000268565b6001600160a01b03166200092a62001605565b6001600160a01b031614620009535760405162461bcd60e51b8152600401620003bd9062001b87565b61271062000979601154620007f1601054856200161460201b620020271790919060201c565b11156200098557600080fd5b7fe7f97d51d307dc44045597c9978bec0f842e6bb40d19b9444084cfa30d9ed4f2600f5482604051620009ba92919062001949565b60405180910390a1600f55565b620009d162000268565b6001600160a01b0316620009e462001605565b6001600160a01b03161462000a0d5760405162461bcd60e51b8152600401620003bd9062001b87565b600e5460ff161515811515141562000a2457600080fd5b600e805460ff19168215151790556040517f7b014ed3854e7f5cb0218d58b3c6ae7d53a68bb0af2f67bfb029ea42c38a7e859062000a649083906200193e565b60405180910390a150565b62000a7962000268565b6001600160a01b031662000a8c62001605565b6001600160a01b03161462000ab55760405162461bcd60e51b8152600401620003bd9062001b87565b6001600160a01b03811662000ade5760405162461bcd60e51b8152600401620003bd9062001957565b6006546040516001600160a01b03808416921690600080516020620066fe83398151915290600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600960009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b7857600080fd5b505afa15801562000b8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bb39190620017de565b6001600160a01b0316826001600160a01b03161415801562000c705750600960009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801562000c1f57600080fd5b505afa15801562000c34573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c5a9190620017de565b6001600160a01b0316826001600160a01b031614155b156200132e5760408301516001600160a01b031662000ca35760405162461bcd60e51b8152600401620003bd9062001b3e565b60608301516001600160a01b031662000cd05760405162461bcd60e51b8152600401620003bd9062001c19565b604083810151601780546001600160a01b03199081166001600160a01b0393841617918290556060870151601880549092169084161790558251630dfe168160e01b81529251858316939190921691630dfe168191600480820192602092909190829003018186803b15801562000d4657600080fd5b505afa15801562000d5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d819190620017de565b6001600160a01b0316148062000e1f57506017546040805163d21220a760e01b815290516001600160a01b0380861693169163d21220a7916004808301926020929190829003018186803b15801562000dd957600080fd5b505afa15801562000dee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e149190620017de565b6001600160a01b0316145b62000e3e5760405162461bcd60e51b8152600401620003bd9062001ad3565b600960009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801562000e8d57600080fd5b505afa15801562000ea2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ec89190620017de565b6001600160a01b0316601760009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801562000f2057600080fd5b505afa15801562000f35573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f5b9190620017de565b6001600160a01b03161480620010945750600960009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801562000fbb57600080fd5b505afa15801562000fd0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ff69190620017de565b6001600160a01b0316601760009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200104e57600080fd5b505afa15801562001063573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010899190620017de565b6001600160a01b0316145b620010b35760405162461bcd60e51b8152600401620003bd9062001bbc565b600960009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200110257600080fd5b505afa15801562001117573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200113d9190620017de565b6001600160a01b0316601860009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200119557600080fd5b505afa158015620011aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011d09190620017de565b6001600160a01b03161480620013095750600960009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200123057600080fd5b505afa15801562001245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200126b9190620017de565b6001600160a01b0316601860009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620012c357600080fd5b505afa158015620012d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012fe9190620017de565b6001600160a01b0316145b620013285760405162461bcd60e51b8152600401620003bd9062001c62565b620014c1565b600960009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200137d57600080fd5b505afa15801562001392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013b89190620017de565b6001600160a01b0316826001600160a01b03161415620013fa57600954601880546001600160a01b0319166001600160a01b03909216919091179055620014c1565b600960009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200144957600080fd5b505afa1580156200145e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014849190620017de565b6001600160a01b0316826001600160a01b03161415620014c157600954601780546001600160a01b0319166001600160a01b039092169190911790555b82600001516001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015620014ff57600080fd5b505afa15801562001514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200153a9190620017de565b6001600160a01b0316816001600160a01b031614156200160057816001600160a01b031683600001516001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200159c57600080fd5b505afa158015620015b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d79190620017de565b6001600160a01b031614620016005760405162461bcd60e51b8152600401620003bd9062001a2a565b505050565b6006546001600160a01b031690565b6000828201838110156200163c5760405162461bcd60e51b8152600401620003bd906200199d565b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200168657805160ff1916838001178555620016b6565b82800160010185558215620016b6579182015b82811115620016b657825182559160200191906001019062001699565b50620016c4929150620016c8565b5090565b5b80821115620016c45760008155600101620016c9565b80516001600160a01b0381168114620016f757600080fd5b919050565b6000608082840312156200170e578081fd5b604051608081016001600160401b03811182821017156200172b57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b6000608082840312156200176e578081fd5b604051608081016001600160401b03811182821017156200178b57fe5b6040529050806200179c83620016df565b8152620017ac60208401620016df565b6020820152620017bf60408401620016df565b6040820152620017d260608401620016df565b60608201525092915050565b600060208284031215620017f0578081fd5b6200163c82620016df565b60008060008060008060008060006101e08a8c0312156200181a578485fd5b89516001600160401b038082111562001831578687fd5b818c0191508c601f83011262001845578687fd5b8151818111156200185257fe5b602091506200186a601f8201601f1916830162001cbf565b8181528e838386010111156200187e578889fd5b885b828110156200189d57848101840151828201850152830162001880565b82811115620018ae57898484840101525b509b50620018c090508c8201620016df565b99505050620018d260408b01620016df565b9650620018e260608b01620016df565b9550620018f38b60808c016200175c565b9450620019046101008b01620016df565b93506101208a015192506200191d6101408b01620016df565b91506200192f8b6101608c01620016fc565b90509295985092959850929598565b901515815260200190565b918252602082015260400190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252604190820152600080516020620066de83398151915260408201527f6f6573206e6f7420636f6e7461696e20706f6f6c2072657761726420746f6b656060820152603760f91b608082015260a00190565b6020808252603a908201527f537761702070616972207377617050616972506f6f6c52657761726420646f6560408201527f73206e6f7420636f6e7461696e2072657761726420746f6b656e000000000000606082015260800190565b6020808252603f90820152600080516020620066de83398151915260408201527f6f6573206e6f7420636f6e7461696e2065636f73797374656d20746f6b656e00606082015260800190565b60208082526045908201527f53776170207061697220737570706c69656420646f6573206e6f74206861766560408201527f207468652072657761726420746f6b656e206173206f6e65206f662069742773606082015264103830b4b960d91b608082015260a00190565b60208082526029908201527f5377617020706169722030206973206e656365737361727920627574206e6f74604082015268081cdd5c1c1b1a595960ba1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526038908201527f537761702070616972203020737570706c69656420646f6573206e6f74206d6160408201527f74636820746865207061697220696e207175657374696f6e0000000000000000606082015260800190565b60208082526029908201527f5377617020706169722031206973206e656365737361727920627574206e6f74604082015268081cdd5c1c1b1a595960ba1b606082015260800190565b60208082526038908201527f537761702070616972203120737570706c69656420646f6573206e6f74206d6160408201527f74636820746865207061697220696e207175657374696f6e0000000000000000606082015260800190565b6040518181016001600160401b038111828210171562001cdb57fe5b604052919050565b6080516149ae62001d30600039806103e25280610c355280610dda52806111b0528061135152806119c952806122e252806125a35280612a8a5280612d95528061303652506149ae6000f3fe60806040526004361061039b5760003560e01c80638b73e606116101dc578063bd079f5511610102578063dd62ed3e116100a0578063ed24911d1161006f578063ed24911d14610b07578063f2fde38b14610b1c578063f7c618c114610b3c578063fdb5a03e14610b51576104ea565b8063dd62ed3e14610a87578063dd8ce4d614610aa7578063e21ac82514610ac7578063eab89a5a14610ae7576104ea565b8063cff1b6ef116100dc578063cff1b6ef14610a1d578063d505accf14610a3d578063da09c72c14610a5d578063dbd9a4d414610a72576104ea565b8063bd079f55146109de578063c4b24a46146109f3578063c89039c514610a08576104ea565b80639e4e73181161017a578063ac0d31ff11610149578063ac0d31ff14610974578063b52a321f14610994578063b6b55f25146109a9578063b9e57b80146109c9576104ea565b80639e4e73181461090a578063a1a4ddeb1461091f578063a8ae2b7c14610934578063a9059cbb14610954576104ea565b8063909ac8f4116101b6578063909ac8f4146108a05780639291d563146108b557806395d89b41146108d557806399729ec1146108ea576104ea565b80638b73e606146108565780638ba8d345146108765780638da5cb5b1461088b576104ea565b80634e77ace5116102c1578063789139bc1161025f578063818372301161022e57806381837230146107e15780638432e894146108015780638980f11f146108215780638aff733d14610841576104ea565b8063789139bc146107775780637ae267731461078c5780637d882097146107ac5780637ecebe00146107c1576104ea565b80635ea682ea1161029b5780635ea682ea146107185780635eaec0e41461072d57806370a0823114610742578063715018a614610762576104ea565b80634e77ace5146106b65780634ebb7916146106d65780635e5eee1b146106f6576104ea565b80632e1a7d4d116103395780633bdc6e72116103085780633bdc6e7214610641578063483c2ef0146106565780634a970be7146106765780634bebd1e714610696576104ea565b80632e1a7d4d146105c85780632f4f21e2146105ea57806330adf81f1461060a578063313ce5671461061f576104ea565b80630f23475d116103755780630f23475d1461056957806318160ddd1461057e57806320606b701461059357806323b872dd146105a8576104ea565b806306fdde03146104ef578063076771111461051a578063095ea7b31461053c576104ea565b366104ea576019546040517f1526fe270000000000000000000000000000000000000000000000000000000081526000916001600160a01b031690631526fe279061040a907f00000000000000000000000000000000000000000000000000000000000000009060040161407c565b60a06040518083038186803b15801561042257600080fd5b505afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a9190613c9d565b945050505050806001600160a01b0316336001600160a01b0316148061048a57506019546001600160a01b031633145b806104ad5750610498610b66565b6001600160a01b0316336001600160a01b0316145b806104c25750600b546001600160a01b031633145b6104e75760405162461bcd60e51b81526004016104de906142d2565b60405180910390fd5b50005b600080fd5b3480156104fb57600080fd5b50610504610b76565b6040516105119190614103565b60405180910390f35b34801561052657600080fd5b5061052f610c04565b604051610511919061407c565b34801561054857600080fd5b5061055c610557366004613c72565b610c0a565b6040516105119190614071565b34801561057557600080fd5b5061052f610c21565b34801561058a57600080fd5b5061052f610c8c565b34801561059f57600080fd5b5061052f610c92565b3480156105b457600080fd5b5061055c6105c3366004613bc5565b610cb6565b3480156105d457600080fd5b506105e86105e3366004613d7a565b610d9d565b005b3480156105f657600080fd5b506105e8610605366004613c72565b610e81565b34801561061657600080fd5b5061052f610e8f565b34801561062b57600080fd5b50610634610eb3565b6040516105119190614870565b34801561064d57600080fd5b5061052f610eb8565b34801561066257600080fd5b5061055c610671366004613b55565b610ebe565b34801561068257600080fd5b506105e8610691366004613ead565b610ed3565b3480156106a257600080fd5b506105e86106b1366004613b55565b610f6b565b3480156106c257600080fd5b506105e86106d1366004613cf4565b61104f565b3480156106e257600080fd5b506105e86106f1366004613d7a565b6110ed565b34801561070257600080fd5b5061070b611199565b6040516105119190613fc5565b34801561072457600080fd5b5061052f6111a8565b34801561073957600080fd5b5061052f6111ae565b34801561074e57600080fd5b5061052f61075d366004613b55565b6111d2565b34801561076e57600080fd5b506105e86111f1565b34801561078357600080fd5b5061052f61127a565b34801561079857600080fd5b506105e86107a7366004613b8d565b611280565b3480156107b857600080fd5b5061052f611349565b3480156107cd57600080fd5b5061052f6107dc366004613b55565b61137c565b3480156107ed57600080fd5b506105e86107fc366004613d7a565b61138e565b34801561080d57600080fd5b506105e861081c366004613b55565b61140d565b34801561082d57600080fd5b506105e861083c366004613c72565b611443565b34801561084d57600080fd5b5061052f611555565b34801561086257600080fd5b506105e8610871366004613b55565b61155b565b34801561088257600080fd5b5061070b611661565b34801561089757600080fd5b5061070b610b66565b3480156108ac57600080fd5b5061070b611670565b3480156108c157600080fd5b506105e86108d0366004613b55565b61167f565b3480156108e157600080fd5b50610504611712565b3480156108f657600080fd5b506105e8610905366004613d7a565b61176c565b34801561091657600080fd5b5061052f61181a565b34801561092b57600080fd5b5061070b61183e565b34801561094057600080fd5b506105e861094f366004613d7a565b61184d565b34801561096057600080fd5b5061055c61096f366004613c72565b6118f5565b34801561098057600080fd5b506105e861098f366004613e66565b611902565b3480156109a057600080fd5b5061055c611b09565b3480156109b557600080fd5b506105e86109c4366004613d7a565b611b12565b3480156109d557600080fd5b5061052f611b1c565b3480156109ea57600080fd5b5061052f611b5d565b3480156109ff57600080fd5b5061052f611b63565b348015610a1457600080fd5b5061070b611b77565b348015610a2957600080fd5b506105e8610a38366004613d7a565b611b86565b348015610a4957600080fd5b506105e8610a58366004613c05565b611c2e565b348015610a6957600080fd5b5061070b611ce3565b348015610a7e57600080fd5b506105e8611cf2565b348015610a9357600080fd5b5061052f610aa2366004613b8d565b611d49565b348015610ab357600080fd5b5061052f610ac2366004613d7a565b611d74565b348015610ad357600080fd5b506105e8610ae2366004613d7a565b611dae565b348015610af357600080fd5b5061052f610b02366004613d7a565b611e2d565b348015610b1357600080fd5b5061052f611e5e565b348015610b2857600080fd5b506105e8610b37366004613b55565b611ef5565b348015610b4857600080fd5b5061070b611fb6565b348015610b5d57600080fd5b506105e8611fc5565b6006546001600160a01b03165b90565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfc5780601f10610bd157610100808354040283529160200191610bfc565b820191906000526020600020905b815481529060010190602001808311610bdf57829003601f168201915b505050505081565b60105481565b6000610c17338484612053565b5060015b92915050565b600080610c2c611349565b90506000610c597f0000000000000000000000000000000000000000000000000000000000000000612107565b90506000610c78610c6861210d565b610c728585612113565b9061214d565b9050610c84838261218f565b935050505090565b60025481565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6001600160a01b038316600081815260036020908152604080832033808552925282205491929091908214801590610cf057506000198114155b15610d86576000610d1c856040518060600160405280602f81526020016148f5602f91398491906121cd565b6001600160a01b03808916600081815260036020908152604080832094891680845294909152908190208490555192935090917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d7c90859061407c565b60405180910390a3505b610d918686866121f9565b50600195945050505050565b6000610da882611e2d565b905060008111610dca5760405162461bcd60e51b81526004016104de906143fa565b610dd3816122dd565b6000610dfe7f0000000000000000000000000000000000000000000000000000000000000000612107565b90506000610e0d610c6861210d565b600954909150610e30906001600160a01b031633610e2b868561218f565b612307565b610e3a33856123a8565b336001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436484604051610e73919061407c565b60405180910390a250505050565b610e8b8282612482565b5050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60075481565b60086020526000908152604090205460ff1681565b6009546040517fd505accf0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063d505accf90610f2890339030908a908a908a908a908a90600401613ffd565b600060405180830381600087803b158015610f4257600080fd5b505af1158015610f56573d6000803e3d6000fd5b50505050610f643386612482565b5050505050565b610f73612630565b6001600160a01b0316610f84610b66565b6001600160a01b031614610faa5760405162461bcd60e51b81526004016104de906145a5565b6001600160a01b03811660009081526008602052604090205460ff1615610fe35760405162461bcd60e51b81526004016104de9061429b565b6001600160a01b0381166000908152600860205260409020805460ff1916600190811790915560075461101591612027565b6007556040516001600160a01b038216907fc0a1035c16faf8d1304056d92c00edf028f87e62b8235a938f00af9e3c0312c590600090a250565b611057612630565b6001600160a01b0316611068610b66565b6001600160a01b03161461108e5760405162461bcd60e51b81526004016104de906145a5565b600e5460ff16151581151514156110a457600080fd5b600e805460ff19168215151790556040517f7b014ed3854e7f5cb0218d58b3c6ae7d53a68bb0af2f67bfb029ea42c38a7e85906110e2908390614071565b60405180910390a150565b6110f5612630565b6001600160a01b0316611106610b66565b6001600160a01b03161461112c5760405162461bcd60e51b81526004016104de906145a5565b6000811161113957600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611166573d6000803e3d6000fd5b507f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa286000826040516110e292919061403e565b601a546001600160a01b031681565b60115481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260409020545b919050565b6111f9612630565b6001600160a01b031661120a610b66565b6001600160a01b0316146112305760405162461bcd60e51b81526004016104de906145a5565b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b600d5481565b611288612630565b6001600160a01b0316611299610b66565b6001600160a01b0316146112bf5760405162461bcd60e51b81526004016104de906145a5565b60405163095ea7b360e01b81526001600160a01b0383169063095ea7b3906112ee90849060009060040161403e565b602060405180830381600087803b15801561130857600080fd5b505af115801561131c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113409190613d10565b610e8b57600080fd5b6000806113767f000000000000000000000000000000000000000000000000000000000000000030612634565b91505090565b60056020526000908152604090205481565b611396612630565b6001600160a01b03166113a7610b66565b6001600160a01b0316146113cd5760405162461bcd60e51b81526004016104de906145a5565b7f481f79ac3a523b6d6db3c5a720e190e986d1cc1b41adcdf50f9caef849901100600c548260405161140092919061482a565b60405180910390a1600c55565b600b546001600160a01b031633146114375760405162461bcd60e51b81526004016104de90614702565b611440816126d7565b50565b61144b612630565b6001600160a01b031661145c610b66565b6001600160a01b0316146114825760405162461bcd60e51b81526004016104de906145a5565b6000811161148f57600080fd5b60405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb906114bd903390859060040161403e565b602060405180830381600087803b1580156114d757600080fd5b505af11580156114eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150f9190613d10565b61151857600080fd5b7f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28828260405161154992919061403e565b60405180910390a15050565b600f5481565b611563612630565b6001600160a01b0316611574610b66565b6001600160a01b03161461159a5760405162461bcd60e51b81526004016104de906145a5565b6000600754116115bc5760405162461bcd60e51b81526004016104de906141e1565b6001600160a01b03811660009081526008602052604090205460ff1615156001146115f95760405162461bcd60e51b81526004016104de90614431565b6001600160a01b0381166000908152600860205260409020805460ff1916905560075461162790600161218f565b6007556040516001600160a01b038216907f0e86f6608b536e5339a25b65ff531f5ea91e1313d056ecd4752b35cbd16137d490600090a250565b6019546001600160a01b031681565b6015546001600160a01b031681565b600b546001600160a01b031633146116a95760405162461bcd60e51b81526004016104de90614702565b600b546040517fa8e91499ed37682f43cffb045fcc7d379a91e8c9a14e6321877ee34dee564c00916116e8916001600160a01b03909116908490614057565b60405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfc5780601f10610bd157610100808354040283529160200191610bfc565b611774612630565b6001600160a01b0316611785610b66565b6001600160a01b0316146117ab5760405162461bcd60e51b81526004016104de906145a5565b6127106117cf600f546117c96010548561202790919063ffffffff16565b90612027565b11156117da57600080fd5b7f2a42303d002f0ba6cfe8259c91d4684443fb0b3de286ba74991175d6517261316011548260405161180d92919061482a565b60405180910390a1601155565b7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b6016546001600160a01b031681565b611855612630565b6001600160a01b0316611866610b66565b6001600160a01b03161461188c5760405162461bcd60e51b81526004016104de906145a5565b6127106118aa6011546117c96010548561202790919063ffffffff16565b11156118b557600080fd5b7fe7f97d51d307dc44045597c9978bec0f842e6bb40d19b9444084cfa30d9ed4f2600f54826040516118e892919061482a565b60405180910390a1600f55565b6000610c173384846121f9565b61190a612630565b6001600160a01b031661191b610b66565b6001600160a01b0316146119415760405162461bcd60e51b81526004016104de906145a5565b6009546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611972903090600401613fc5565b60206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c29190613d92565b90506119ed7f00000000000000000000000000000000000000000000000000000000000000006128f4565b6009546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611a1e903090600401613fc5565b60206040518083038186803b158015611a3657600080fd5b505afa158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e9190613d92565b905083611a7b828461218f565b1015611a995760405162461bcd60e51b81526004016104de90614309565b7fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef234611ac2611349565b600254604051611ad392919061482a565b60405180910390a1600e5460ff1615156001148015611af457506001831515145b15611b0357611b03600061104f565b50505050565b600e5460ff1681565b6114403382612482565b600080611b27611b63565b9050600c548110611b5557611b4d612710610c72600f548461211390919063ffffffff16565b915050610b73565b600091505090565b600c5481565b600080611b6e6129f5565b94505050505090565b6009546001600160a01b031681565b611b8e612630565b6001600160a01b0316611b9f610b66565b6001600160a01b031614611bc55760405162461bcd60e51b81526004016104de906145a5565b612710611be3600f546117c96011548561202790919063ffffffff16565b1115611bee57600080fd5b7f3cc372f330f95ac9540626dc8a25f5bf21ba607215a5d58304cb804d446f104a60105482604051611c2192919061482a565b60405180910390a1601055565b42841015611c4e5760405162461bcd60e51b81526004016104de906143c3565b6001600160a01b03871660009081526005602090815260408083208054600181019091559051611ca9927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92918c9101614085565b604051602081830303815290604052805190602001209050611cce8882868686612cb6565b611cd9888888612053565b5050505050505050565b600b546001600160a01b031681565b611cfa612630565b6001600160a01b0316611d0b610b66565b6001600160a01b031614611d315760405162461bcd60e51b81526004016104de906145a5565b60405162461bcd60e51b81526004016104de906146cb565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000611d8a611d81611349565b60025490612113565b611d955750806111ec565b610c1b611da0611349565b600254610c72908590612113565b611db6612630565b6001600160a01b0316611dc7610b66565b6001600160a01b031614611ded5760405162461bcd60e51b81526004016104de906145a5565b7fa5dae50539d56dfe1fb5273d883b0c39bc76750a25d036fc5fbd09ad8fd5f57f600d5482604051611e2092919061482a565b60405180910390a1600d55565b6000611e3a611d81611349565b611e46575060006111ec565b610c1b600254610c72611e57611349565b8590612113565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60001b6000604051611e939190613f1f565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6611ec5612d8c565b30604051602001611eda9594939291906140b9565b60405160208183030381529060405280519060200120905090565b611efd612630565b6001600160a01b0316611f0e610b66565b6001600160a01b031614611f345760405162461bcd60e51b81526004016104de906145a5565b6001600160a01b038116611f5a5760405162461bcd60e51b81526004016104de90614116565b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031681565b323314611fe45760405162461bcd60e51b81526004016104de90614173565b600080600080611ff26129f5565b9350935093509350600c5481101561201c5760405162461bcd60e51b81526004016104de90614739565b611b03828585612d90565b60008282018381101561204c5760405162461bcd60e51b81526004016104de906141aa565b9392505050565b6001600160a01b0383166120795760405162461bcd60e51b81526004016104de906145da565b6001600160a01b03821661209f5760405162461bcd60e51b81526004016104de906147a7565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906120fa90859061407c565b60405180910390a3505050565b50600090565b61271090565b60008261212257506000610c1b565b8282028284828161212f57fe5b041461204c5760405162461bcd60e51b81526004016104de90614548565b600061204c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ed7565b600061204c83836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f77008152505b600081848411156121f15760405162461bcd60e51b81526004016104de9190614103565b505050900390565b6001600160a01b03821661221f5760405162461bcd60e51b81526004016104de90614611565b61225c816040518060600160405280602e815260200161494b602e91396001600160a01b03861660009081526004602052604090205491906121cd565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461228b9082612027565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120fa90859061407c565b6114407f000000000000000000000000000000000000000000000000000000000000000082612f0e565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90612335908590859060040161403e565b602060405180830381600087803b15801561234f57600080fd5b505af1158015612363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123879190613d10565b6123a35760405162461bcd60e51b81526004016104de90614366565b505050565b6123e581604051806060016040528060278152602001614924602791396001600160a01b03851660009081526004602052604090205491906121cd565b60046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550612435816040518060600160405280602781526020016148ce6027913960025491906121cd565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061247690859061407c565b60405180910390a35050565b600e5460ff1615156001146124a95760405162461bcd60e51b81526004016104de90614770565b600d54156124e1576000806000806124bf6129f5565b9350935093509350600d548111156124dc576124dc828585612d90565b505050505b6009546040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906323b872dd9061252e90339030908690600401613fd9565b602060405180830381600087803b15801561254857600080fd5b505af115801561255c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125809190613d10565b61259c5760405162461bcd60e51b81526004016104de9061466e565b60006125c77f0000000000000000000000000000000000000000000000000000000000000000612107565b905060006125d6610c6861210d565b90506125ee846125e9610ac2868561218f565b612f8f565b6125f783613011565b836001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c84604051610e73919061407c565b3390565b6019546040517f93f1a40b0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906393f1a40b906126809086908690600401614813565b604080518083038186803b15801561269757600080fd5b505afa1580156126ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cf9190613e8a565b509392505050565b6001600160a01b038116156128d557600a54604080517f0dfe168100000000000000000000000000000000000000000000000000000000815290516001600160a01b0392831692841691630dfe1681916004808301926020929190829003018186803b15801561274657600080fd5b505afa15801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277e9190613b71565b6001600160a01b0316141561282357806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156127c657600080fd5b505afa1580156127da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fe9190613b71565b601680546001600160a01b0319166001600160a01b03929092169190911790556128b5565b806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561285c57600080fd5b505afa158015612870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128949190613b71565b601680546001600160a01b0319166001600160a01b03929092169190911790555b601580546001600160a01b0319166001600160a01b038316179055611440565b601580546001600160a01b031990811690915560168054909116905550565b60095460195460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261292b9291169060009060040161403e565b602060405180830381600087803b15801561294557600080fd5b505af1158015612959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297d9190613d10565b506019546040517f5312ea8e0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690635312ea8e906129c790849060040161407c565b600060405180830381600087803b1580156129e157600080fd5b505af1158015610f64573d6000803e3d6000fd5b6013546040516370a0823160e01b815260009182918291829182916001600160a01b0316906370a0823190612a2e903090600401613fc5565b60206040518083038186803b158015612a4657600080fd5b505afa158015612a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7e9190613d92565b90506000806000612aaf7f00000000000000000000000000000000000000000000000000000000000000003061305b565b919450925090506000612ac28585612027565b600a546013549192506000916001600160a01b0390811691161415612ae75784612b0c565b601354600a54601454612b0c9285926001600160a01b0391821692908216911661311a565b905060006001600160a01b03841615612c0b576001600160a01b03841673b31f66aa3c1e785363f0875a1b74e27b85fd66c71415612b4b575083612c0b565b6015546001600160a01b031615612c0b576016546040516370a0823160e01b8152612be5916001600160a01b0316906370a0823190612b8e903090600401613fc5565b60206040518083038186803b158015612ba657600080fd5b505afa158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde9190613d92565b8690612027565b600a54601554919650612c0891879187916001600160a01b03918216911661311a565b90505b600a546040516370a0823160e01b8152600091612c929184916001600160a01b0316906370a0823190612c42903090600401613fc5565b60206040518083038186803b158015612c5a57600080fd5b505afa158015612c6e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190613d92565b90506000612ca08285612027565b949d969c50909a50929850939650505050505050565b6000612cc0611e5e565b85604051602001612cd2929190613f8f565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051612d0f94939291906140e5565b6020604051602081039080840390855afa158015612d31573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590612d675750866001600160a01b0316816001600160a01b0316145b612d835760405162461bcd60e51b81526004016104de9061423e565b50505050505050565b4690565b612db97f00000000000000000000000000000000000000000000000000000000000000006131e7565b6000612dce612dc78461321a565b8590612027565b9050612de4612ddd8584613262565b8290612027565b506000612e02612710610c726011548561211390919063ffffffff16565b90508015612e2757600a54600b54612e27916001600160a01b03908116911683612307565b6000612e44612710610c72600f548661211390919063ffffffff16565b90508015612e6357600a54612e63906001600160a01b03163383612307565b6000612e81612e7c83612e76878761218f565b9061218f565b6133b5565b9050612e8c81613011565b7fc7606d21ac05cd309191543e409f0845c016120563783d70e4f41419dc0ef234612eb5611349565b600254604051612ec692919061482a565b60405180910390a150505050505050565b60008183612ef85760405162461bcd60e51b81526004016104de9190614103565b506000838581612f0457fe5b0495945050505050565b6019546040517f441a3e700000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063441a3e7090612f59908590859060040161482a565b600060405180830381600087803b158015612f7357600080fd5b505af1158015612f87573d6000803e3d6000fd5b505050505050565b600254612f9c9082612027565b6002556001600160a01b038216600090815260046020526040902054612fc29082612027565b6001600160a01b0383166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061247690859061407c565b600081116130315760405162461bcd60e51b81526004016104de906144eb565b6114407f0000000000000000000000000000000000000000000000000000000000000000826133e4565b6019546040517fffcd4263000000000000000000000000000000000000000000000000000000008152600091829182918291829182916001600160a01b039091169063ffcd4263906130b3908b908b90600401614813565b60006040518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131079190810190613daa565b9298509196509450505050509250925092565b600080613127858561349f565b509050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561316657600080fd5b505afa15801561317a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319e9190613d2c565b5091509150866001600160a01b0316836001600160a01b0316146131be57905b6131db88836001600160701b0316836001600160701b03166134d0565b98975050505050505050565b601954604051631c57762b60e31b81526001600160a01b039091169063e2bbb158906129c790849060009060040161482a565b601354600a546000916001600160a01b039182169116141561323d5750806111ec565b601354600a54601454610c1b9285926001600160a01b03918216929082169116613518565b600081156133ac576015546001600160a01b0316156132a757601654600a546015546132a09285926001600160a01b03918216929082169116613518565b9050610c1b565b4780156133175773b31f66aa3c1e785363f0875a1b74e27b85fd66c76001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156132fd57600080fd5b505af1158015613311573d6000803e3d6000fd5b50505050505b6040516370a0823160e01b81526133a490859073b31f66aa3c1e785363f0875a1b74e27b85fd66c7906370a0823190613354903090600401613fc5565b60206040518083038186803b15801561336c57600080fd5b505afa158015613380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e769190613d92565b915050610c1b565b50600092915050565b600a54600954601754601854600093610c1b9386936001600160a01b03928316939183169290811691166136ab565b60095460195460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261341a92911690859060040161403e565b602060405180830381600087803b15801561343457600080fd5b505af1158015613448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061346c9190613d10565b50601954604051631c57762b60e31b81526001600160a01b039091169063e2bbb15890612f59908590859060040161482a565b600080826001600160a01b0316846001600160a01b0316106134c25782846134c5565b83835b915091509250929050565b6000806134df856103e5612113565b905060006134ed8285612113565b90506000613501836117c9886103e8612113565b905061350d828261214d565b979650505050505050565b600080613525858561349f565b509050600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561356457600080fd5b505afa158015613578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359c9190613d2c565b5091509150866001600160a01b0316836001600160a01b0316146135bc57905b6000806135dc8a856001600160701b0316856001600160701b03166134d0565b9050886001600160a01b0316856001600160a01b0316146135f957905b61360489888c613825565b604080516000815260208101918290527f022c0d9f000000000000000000000000000000000000000000000000000000009091526001600160a01b0388169063022c0d9f9061365c9085908590309060248101614838565b600060405180830381600087803b15801561367657600080fd5b505af115801561368a573d6000803e3d6000fd5b5050505081811161369b578161369d565b805b9a9950505050505050505050565b6000806136b987600261214d565b9050600081116136db5760405162461bcd60e51b81526004016104de9061448e565b6000856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561371657600080fd5b505afa15801561372a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061374e9190613b71565b9050816001600160a01b03888116908316146137735761377083898489613518565b90505b6000876001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156137ae57600080fd5b505afa1580156137c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137e69190613b71565b9050836001600160a01b038a81169083161461380b57613808858b848a613518565b90505b6138168984836138c1565b9b9a5050505050505050505050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90613853908590859060040161403e565b602060405180830381600087803b15801561386d57600080fd5b505af1158015613881573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a59190613d10565b6123a35760405162461bcd60e51b81526004016104de906147de565b6000806000856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156138ff57600080fd5b505afa158015613913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139379190613d2c565b5091509150600061395b86846001600160701b0316846001600160701b0316613b15565b9050848111156139885784905061398585836001600160701b0316856001600160701b0316613b15565b95505b613a03876001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156139c457600080fd5b505afa1580156139d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139fc9190613b71565b8888613825565b613a7e876001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015613a3f57600080fd5b505afa158015613a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a779190613b71565b8883613825565b6040517f6a6278420000000000000000000000000000000000000000000000000000000081526001600160a01b03881690636a62784290613ac3903090600401613fc5565b602060405180830381600087803b158015613add57600080fd5b505af1158015613af1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061350d9190613d92565b6000613b2583610c728685612113565b949350505050565b80516001600160701b03811681146111ec57600080fd5b803560ff811681146111ec57600080fd5b600060208284031215613b66578081fd5b813561204c816148aa565b600060208284031215613b82578081fd5b815161204c816148aa565b60008060408385031215613b9f578081fd5b8235613baa816148aa565b91506020830135613bba816148aa565b809150509250929050565b600080600060608486031215613bd9578081fd5b8335613be4816148aa565b92506020840135613bf4816148aa565b929592945050506040919091013590565b600080600080600080600060e0888a031215613c1f578283fd5b8735613c2a816148aa565b96506020880135613c3a816148aa565b95506040880135945060608801359350613c5660808901613b44565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215613c84578182fd5b8235613c8f816148aa565b946020939093013593505050565b600080600080600060a08688031215613cb4578081fd5b8551613cbf816148aa565b809550506020860151935060408601519250606086015191506080860151613ce6816148aa565b809150509295509295909350565b600060208284031215613d05578081fd5b813561204c816148bf565b600060208284031215613d21578081fd5b815161204c816148bf565b600080600060608486031215613d40578283fd5b613d4984613b2d565b9250613d5760208501613b2d565b9150604084015163ffffffff81168114613d6f578182fd5b809150509250925092565b600060208284031215613d8b578081fd5b5035919050565b600060208284031215613da3578081fd5b5051919050565b60008060008060808587031215613dbf578182fd5b845193506020850151613dd1816148aa565b604086015190935067ffffffffffffffff80821115613dee578384fd5b818701915087601f830112613e01578384fd5b815181811115613e0d57fe5b604051601f8201601f191681016020018381118282101715613e2b57fe5b6040528181528382016020018a1015613e42578586fd5b613e5382602083016020870161487e565b6060989098015196999598505050505050565b60008060408385031215613e78578182fd5b823591506020830135613bba816148bf565b60008060408385031215613e9c578182fd5b505080516020909101519092909150565b600080600080600060a08688031215613ec4578283fd5b8535945060208601359350613edb60408701613b44565b94979396509394606081013594506080013592915050565b60008151808452613f0b81602086016020860161487e565b601f01601f19169290920160200192915050565b6000808354600180821660008114613f3e5760018114613f5557613f84565b60ff198316865260028304607f1686019350613f84565b600283048786526020808720875b83811015613f7c5781548a820152908501908201613f63565b505050860193505b509195945050505050565b7f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b60006020825261204c6020830184613ef3565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f59616b53747261746567793a3a6f6e6c79454f41000000000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526034908201527f5065726d697373696f6e65643a3a72656d6f76654465706f7369746f722c206e60408201527f6f20616c6c6f776564206465706f7369746f7273000000000000000000000000606082015260800190565b60208082526024908201527f417263683a3a76616c69646174655369673a20696e76616c6964207369676e6160408201527f7475726500000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601c908201527f5065726d697373696f6e65643a3a616c6c6f774465706f7369746f7200000000604082015260600190565b6020808252600b908201527f6e6f7420616c6c6f776564000000000000000000000000000000000000000000604082015260600190565b60208082526029908201527f4d617374657243686566537472617465677956313a3a7265736375654465706c60408201527f6f79656446756e64730000000000000000000000000000000000000000000000606082015260800190565b6020808252602a908201527f4d617374657243686566537472617465677956313a3a5452414e534645525f4660408201527f524f4d5f4641494c454400000000000000000000000000000000000000000000606082015260800190565b6020808252600f908201527f7065726d69743a3a657870697265640000000000000000000000000000000000604082015260600190565b6020808252601e908201527f4d617374657243686566537472617465677956313a3a77697468647261770000604082015260600190565b6020808252602a908201527f5065726d697373696f6e65643a3a72656d6f76654465706f7369746f722c206e60408201527f6f7420616c6c6f77656400000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f4465784c6962726172793a3a5f636f6e76657274526577617264546f6b656e7360408201527f546f4465706f736974546f6b656e730000000000000000000000000000000000606082015260800190565b60208082526029908201527f4d617374657243686566537472617465677956313a3a5f7374616b654465706f60408201527f736974546f6b656e730000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60408201527f7700000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f5f617070726f76653a3a6f776e6572207a65726f206164647265737300000000604082015260600190565b60208082526034908201527f5f7472616e73666572546f6b656e733a2063616e6e6f74207472616e7366657260408201527f20746f20746865207a65726f2061646472657373000000000000000000000000606082015260800190565b60208082526025908201527f4d617374657243686566537472617465677956313a3a7472616e73666572206660408201527f61696c6564000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f736574416c6c6f77616e6365733a3a6465707265636174656400000000000000604082015260600190565b60208082526014908201527f59616b53747261746567793a3a6f6e6c79446576000000000000000000000000604082015260600190565b6020808252601e908201527f4d617374657243686566537472617465677956313a3a7265696e766573740000604082015260600190565b6020808252601e908201527f4d617374657243686566537472617465677956313a3a5f6465706f7369740000604082015260600190565b6020808252601e908201527f5f617070726f76653a3a7370656e646572207a65726f20616464726573730000604082015260600190565b6020808252818101527f4465784c6962726172793a3a5452414e534645525f46524f4d5f4641494c4544604082015260600190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b60008582528460208301526001600160a01b0384166040830152608060608301526148666080830184613ef3565b9695505050505050565b60ff91909116815260200190565b60005b83811015614899578181015183820152602001614881565b83811115611b035750506000910152565b6001600160a01b038116811461144057600080fd5b801515811461144057600080fdfe5f6275726e3a206275726e20616d6f756e74206578636565647320746f74616c20737570706c797472616e7366657246726f6d3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655f6275726e3a206275726e20616d6f756e7420657863656564732066726f6d2062616c616e63655f7472616e73666572546f6b656e733a207472616e7366657220657863656564732066726f6d2062616c616e6365a26469706673582212205ec95eaadeaa994c70d257b1b55cee762fe76c6674cf97ca17b1d395152da6a564736f6c6343000703003353776170207061697220277377617050616972506f6f6c5265776172642720648be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000b8361d0e3f3b0fc5e6071f3a3c3271223c49e3d9000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000006e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd000000000000000000000000454e67025631c065d3cfad6d71e6892f74487a15000000000000000000000000b8361d0e3f3b0fc5e6071f3a3c3271223c49e3d90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8361d0e3f3b0fc5e6071f3a3c3271223c49e3d9000000000000000000000000188bed1968b795d5c9022f6a0bb5931ac4c18f00000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000302404cb8f34713a8b8dbf9b4989a41252332068000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000384000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000185969656c642059616b3a204a4c50204d4f52452d415641580000000000000000