[ { "inputs": [ { "internalType": "address", "name": "multiSignature", "type": "address" }, { "internalType": "address", "name": "origin0", "type": "address" }, { "internalType": "address", "name": "origin1", "type": "address" }, { "internalType": "address", "name": "_dsOracle", "type": "address" }, { "internalType": "address payable", "name": "_FeePool", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "previousOrigin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOrigin", "type": "address" } ], "name": "OriginTransferred", "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": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_feePool", "type": "address" } ], "name": "SetFeePoolAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_feeRate", "type": "uint256" } ], "name": "SetFeeRate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_enterFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "leaveFee", "type": "uint256" } ], "name": "SetMeltFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "_reward", "type": "uint8" }, { "indexed": false, "internalType": "bool", "name": "_bClosed", "type": "bool" }, { "indexed": false, "internalType": "address", "name": "_rewardToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_sellLimit", "type": "uint256" } ], "name": "SetReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_slipRate", "type": "uint256" } ], "name": "SetSlipRate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token0", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token1", "type": "address" }, { "indexed": false, "internalType": "address[]", "name": "swapPath", "type": "address[]" } ], "name": "SetSwapRoutingPath", "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" }, { "inputs": [], "name": "FeePool", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "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": "compound", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "crvUSDBTCETH", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "curveGauge", "outputs": [ { "internalType": "contract ICurveGaugeBTCETH", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "curvePool", "outputs": [ { "internalType": "contract ICurvePoolBTCETH", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "enter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enterFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "enterAmount", "type": "uint256" } ], "name": "getEnterMeltFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "leaveAmount", "type": "uint256" } ], "name": "getLeaveMeltFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultiSignatureAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOracleAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getStakeTokenPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "getSwapRouterPath", "outputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" } ], "name": "getSwapRouterPathInfo", "outputs": [ { "internalType": "address[]", "name": "path", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isOrigin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestCompoundTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_share", "type": "uint256" } ], "name": "leave", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "leaveFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "melt", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "meltFeePool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardInfos", "outputs": [ { "internalType": "uint8", "name": "rewardType", "type": "uint8" }, { "internalType": "bool", "name": "bClosed", "type": "bool" }, { "internalType": "address", "name": "rewardToken", "type": "address" }, { "internalType": "uint256", "name": "sellLimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "feeAddress", "type": "address" } ], "name": "setFeePoolAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_feeRate", "type": "uint256" } ], "name": "setFeeRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_enterFee", "type": "uint256" }, { "internalType": "uint256", "name": "_leaveFee", "type": "uint256" } ], "name": "setMeltFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "oracle", "type": "address" } ], "name": "setOracleAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint8", "name": "_reward", "type": "uint8" }, { "internalType": "bool", "name": "_bClosed", "type": "bool" }, { "internalType": "address", "name": "_rewardToken", "type": "address" }, { "internalType": "uint256", "name": "_sellLimit", "type": "uint256" } ], "name": "setReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_slipRate", "type": "uint256" } ], "name": "setSlipRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" }, { "internalType": "address[]", "name": "swapPath", "type": "address[]" } ], "name": "setSwapRoutingPathInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "slipRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakeBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakeToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapRouter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "swapRoutingPath", "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": "totalSupply", "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": "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": "_oldOrigin", "type": "address" }, { "internalType": "address", "name": "_newOrigin", "type": "address" } ], "name": "transferOrigin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "txOrigin", "outputs": [ { "internalType": "address", "name": "_origin0", "type": "address" }, { "internalType": "address", "name": "_origin1", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526005805460ff60a81b1916905561251c6008556107d0600955660470de4df82000600a556000600b55600e80546001600160a01b03199081167360ae616a2155ee3d9a68541ba4544862310933d417909155600f805482167347eb6f7525c1aa999fbc9ee92715f5231eb1241d1790556011805490911673a7d7079b0fead91f3e65f86e8915cb59c1a4c664179055348015620000a057600080fd5b506040516200508238038062005082833981810160405260a0811015620000c657600080fd5b5080516020820151604083015160608401516080909401519293919290919084848473445fe580ef8d70ff569ab36e80c647af338db3518585858585826001600160a01b0381166200014a5760405162461bcd60e51b815260040180806020018281038252604381526020018062004f8d6043913960600191505060405180910390fd5b6200017f7f860a69b4e688133bace199665ed9e08fba224f0ea3198771160e97c111c09e4c6001600160a01b03831662000502565b506001600160a01b03831615801590620001a157506001600160a01b03821615155b8015620001b657506001600160a01b03811615155b62000208576040805162461bcd60e51b815260206004820152601f60248201527f70726f78794f776e6572203a20696e707574207a65726f206164647265737300604482015290519081900360640190fd5b620002133362000506565b6200022060008362000562565b6200022d60008262000562565b5050600780546001600160a01b038085166001600160a01b0319928316179092556005805486841661010002610100600160a81b03199091161790556006805492871692909116919091179055506200028562000659565b505050505050620002bd600080600073b31f66aa3c1e785363f0875a1b74e27b85fd66c766038d7ea4c6800062000a3460201b60201c565b620002e960018060007347536f17f4ff30e64a96a7555826b8f9e66ec468662386f26fc1000062000a34565b60115462000324906001600160a01b03167358e57ca18b7a47112b877e31929798cd3d703b0f60001962000db6602090811b62001e8517901c565b62000366731dab6560494b04473a0be3e7d83cf3fdf3a5182873445fe580ef8d70ff569ab36e80c647af338db35160001962000db660201b62001e851760201c565b604080516003808252608082019092527347536f17f4ff30e64a96a7555826b8f9e66ec46891602082016060803683375050506001600160a01b038281166000908152600d6020908152604080832060115490941683529281529190208251620003d7939192919091019062001242565b506001600160a01b038082166000908152600d60209081526040808320601154909416835292905290812080548392906200040e57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558383168252600d81526040808320601154909416835292905220805473b31f66aa3c1e785363f0875a1b74e27b85fd66c7919060019081106200047557fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790556011548484168352600d8252604080842091909416808452915291902080546002908110620004c857fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050505062001346565b9055565b6001600160a01b0381166200051a62000ed5565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008051602062004fd083398151915255565b806001600160a01b0316826001600160a01b03167f6b0ba40b63fe0a4e591f25c6d723a40b532ff7cf536f3ce5abc7f6fb9969418060405160405180910390a3600080620005af62000ee9565b91509150836001600160a01b0316826001600160a01b03161415620005e75760008051602062004f6d83398151915283905562000653565b836001600160a01b0316816001600160a01b031614156200061b5760008051602062004f4d83398151915283905562000653565b60405162461bcd60e51b8152600401808060200182810382526032815260200180620050506032913960400191505060405180910390fd5b50505050565b600654604080516306fdde0360e01b815290516001600160a01b039092169160609183916306fdde0391600480820192600092909190829003018186803b158015620006a457600080fd5b505afa158015620006b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015620006e357600080fd5b81019080805160405193929190846401000000008211156200070457600080fd5b9083019060208201858111156200071a57600080fd5b82516401000000008111828201881017156200073557600080fd5b82525081516020918201929091019080838360005b83811015620007645781810151838201526020016200074a565b50505050905090810190601f168015620007925780820380516001836020036101000a031916815260200191505b50604052505050604051602001808065029bab832b9160d51b81525060060182805190602001908083835b60208310620007de5780518252601f199092019160209182019101620007bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405290506060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200085057600080fd5b505afa15801562000865573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200088f57600080fd5b8101908080516040519392919084640100000000821115620008b057600080fd5b908301906020820185811115620008c657600080fd5b8251640100000000811182820188101715620008e157600080fd5b82525081516020918201929091019080838360005b8381101562000910578181015183820152602001620008f6565b50505050905090810190601f1680156200093e5780820380516001836020036101000a031916815260200191505b506040525050506040516020018080605360f81b81525060010182805190602001908083835b60208310620009855780518252601f19909201916020918201910162000964565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052905062000a2f8282856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620009fb57600080fd5b505afa15801562000a10573d6000803e3d6000fd5b505050506040513d602081101562000a2757600080fd5b505162000f0f565b505050565b60105485101562000bbc5760006010868154811062000a4f57fe5b60009182526020909120600290910201805460ff191660ff87161761ff001916610100861515021762010000600160b01b031916620100006001600160a01b038616021781556001810183905590508362000b77576001600160a01b0383161580159062000b3c5750600e5460408051636eb1769f60e11b81523060048201526001600160a01b03928316602482015290519185169163dd62ed3e91604480820192602092909190829003018186803b15801562000b0c57600080fd5b505afa15801562000b21573d6000803e3d6000fd5b505050506040513d602081101562000b3857600080fd5b5051155b1562000b715762000b7183600e60009054906101000a90046001600160a01b031660001962000db660201b62001e851760201c565b62000bb5565b6001600160a01b0383161562000bb55762000bb583600e60009054906101000a90046001600160a01b0316600062000db660201b62001e851760201c565b5062000d53565b6040805160808101825260ff8087168252851515602083019081526001600160a01b038087169484018581526060850187815260108054600181018255600091909152955160029096027f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728101805495519351909416620100000262010000600160b01b03199315156101000261ff00199890971660ff1990961695909517969096169490941716919091179055517f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae673909101551580159062000d1e5750600e5460408051636eb1769f60e11b81523060048201526001600160a01b03928316602482015290519184169163dd62ed3e91604480820192602092909190829003018186803b15801562000cee57600080fd5b505afa15801562000d03573d6000803e3d6000fd5b505050506040513d602081101562000d1a57600080fd5b5051155b1562000d535762000d5382600e60009054906101000a90046001600160a01b031660001962000db660201b62001e851760201c565b6040805186815260ff86166020820152841515818301526001600160a01b038416606082015260808101839052905133917fc9ed0cc3bedda8d5f6d31c3b9351ce17b1478ca1d10281ce8e5e958cb38cc219919081900360a00190a25050505050565b80158062000e40575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801562000e1057600080fd5b505afa15801562000e25573d6000803e3d6000fd5b505050506040513d602081101562000e3c57600080fd5b5051155b62000e7d5760405162461bcd60e51b81526004018080602001828103825260368152602001806200501a6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b1790915262000a2f91859162000f5316565b60008051602062004fd08339815191525490565b60008051602062004f6d8339815191525460008051602062004f4d833981519152549091565b825162000f24906003906020860190620012ac565b50815162000f3a906004906020850190620012ac565b506005805460ff191660ff929092169190911790555050565b606062000faf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200100f60201b62001f98179092919060201c565b80519091501562000a2f5780806020019051602081101562000fd057600080fd5b505162000a2f5760405162461bcd60e51b815260040180806020018281038252602a81526020018062004ff0602a913960400191505060405180910390fd5b60606200102084846000856200102a565b90505b9392505050565b6060824710156200106d5760405162461bcd60e51b815260040180806020018281038252602681526020018062004f276026913960400191505060405180910390fd5b620010788562001192565b620010ca576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106200110b5780518252601f199092019160209182019101620010ea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146200116f576040519150601f19603f3d011682016040523d82523d6000602084013e62001174565b606091505b5090925090506200118782828662001198565b979650505050505050565b3b151590565b60608315620011a957508162001023565b825115620011ba5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562001206578181015183820152602001620011ec565b50505050905090810190601f168015620012345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b8280548282559060005260206000209081019282156200129a579160200282015b828111156200129a57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062001263565b50620012a89291506200132f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620012e457600085556200129a565b82601f10620012ff57805160ff19168380011785556200129a565b828001600101855582156200129a579182015b828111156200129a57825182559160200191906001019062001312565b5b80821115620012a8576000815560010162001330565b613bd180620013566000396000f3fe6080604052600436106103035760003560e01c80637fc245f411610190578063b18b78dd116100dc578063dd62ed3e11610095578063f595416f1161006f578063f595416f14610b86578063f69e204614610b9b578063f6c1da1a14610bb0578063f96757d114610beb5761030a565b8063dd62ed3e14610b03578063ea3460cc14610b3e578063f2fde38b14610b535761030a565b8063b18b78dd14610a52578063b22a8ffb14610a67578063b2df3dd514610a91578063b40643a914610aa6578063c31c9c0714610abb578063d94969ad14610ad05761030a565b806395d89b4111610149578063a457c2d711610123578063a457c2d714610922578063a59f3e0c1461095b578063a9059cbb14610985578063afe5e5b6146109be5761030a565b806395d89b41146108a8578063978bbdb9146108bd57806397c86edf146108d25761030a565b80637fc245f4146107c8578063888eb377146107dd57806389d6517f1461080d5780638da5cb5b146108695780638f32d59b1461087e57806393bc9dfe146108935761030a565b80633bb857111161024f57806362f7ef6b11610208578063693ca371116101e2578063693ca371146107415780636f307dc31461076b57806370a082311461078057806373b295c2146107b35761030a565b806362f7ef6b146106ed578063638c7e171461070257806367dfd4c9146107175761030a565b80633bb85711146105ee578063447d10f11461062157806345596e2e146106645780634c69c00f1461069057806351ed6a30146106c35780635220f510146106d85761030a565b8063209f315b116102bc578063280718e211610296578063280718e2146105605780632de5f58814610575578063313ce5671461058a57806339509351146105b55761030a565b8063209f315b146104d7578063218751b21461050857806323b872dd1461051d5761030a565b806306fdde031461030f578063095ea7b3146103995780630bb52153146103e657806315ffeea91461040d57806318160ddd146104375780631d4c3b051461044c5761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c2f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035e578181015183820152602001610346565b50505050905090810190601f16801561038b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a557600080fd5b506103d2600480360360408110156103bc57600080fd5b506001600160a01b038135169060200135610cc5565b604080519115158252519081900360200190f35b3480156103f257600080fd5b506103fb610cdc565b60408051918252519081900360200190f35b34801561041957600080fd5b506103fb6004803603602081101561043057600080fd5b5035610ce2565b34801561044357600080fd5b506103fb610cf8565b34801561045857600080fd5b506104876004803603604081101561046f57600080fd5b506001600160a01b0381358116916020013516610cfe565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104c35781810151838201526020016104ab565b505050509050019250505060405180910390f35b3480156104e357600080fd5b506104ec610e4e565b604080516001600160a01b039092168252519081900360200190f35b34801561051457600080fd5b506104ec610e66565b34801561052957600080fd5b506103d26004803603606081101561054057600080fd5b506001600160a01b03813581169160208101359091169060400135610e7e565b34801561056c57600080fd5b506104ec610f08565b34801561058157600080fd5b506103fb610f20565b34801561059657600080fd5b5061059f610f47565b6040805160ff9092168252519081900360200190f35b3480156105c157600080fd5b506103d2600480360360408110156105d857600080fd5b506001600160a01b038135169060200135610f50565b3480156105fa57600080fd5b506104876004803603602081101561061157600080fd5b50356001600160a01b0316610f83565b34801561062d57600080fd5b506104ec6004803603606081101561064457600080fd5b506001600160a01b03813581169160208101359091169060400135610f9d565b34801561067057600080fd5b5061068e6004803603602081101561068757600080fd5b5035610fe2565b005b34801561069c57600080fd5b5061068e600480360360208110156106b357600080fd5b50356001600160a01b03166110b9565b3480156106cf57600080fd5b506104ec611144565b3480156106e457600080fd5b506104ec611153565b3480156106f957600080fd5b506103fb611162565b34801561070e57600080fd5b506104ec611168565b34801561072357600080fd5b5061068e6004803603602081101561073a57600080fd5b5035611198565b34801561074d57600080fd5b506103fb6004803603602081101561076457600080fd5b503561122e565b34801561077757600080fd5b506104ec61128a565b34801561078c57600080fd5b506103fb600480360360208110156107a357600080fd5b50356001600160a01b0316611299565b3480156107bf57600080fd5b506104ec6112b4565b3480156107d457600080fd5b506104ec6112cc565b3480156107e957600080fd5b5061068e6004803603604081101561080057600080fd5b50803590602001356112d1565b34801561081957600080fd5b506108376004803603602081101561083057600080fd5b5035611364565b6040805160ff909516855292151560208501526001600160a01b03909116838301526060830152519081900360800190f35b34801561087557600080fd5b506104ec6113ad565b34801561088a57600080fd5b506103d26113d2565b34801561089f57600080fd5b506103fb611400565b3480156108b457600080fd5b5061032461147c565b3480156108c957600080fd5b506103fb6114dd565b3480156108de57600080fd5b5061068e600480360360a08110156108f557600080fd5b5080359060ff6020820135169060408101351515906001600160a01b0360608201351690608001356114e3565b34801561092e57600080fd5b506103d26004803603604081101561094557600080fd5b506001600160a01b038135169060200135611542565b34801561096757600080fd5b5061068e6004803603602081101561097e57600080fd5b50356115bc565b34801561099157600080fd5b506103d2600480360360408110156109a857600080fd5b506001600160a01b038135169060200135611667565b3480156109ca57600080fd5b5061068e600480360360608110156109e157600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b811115610a1457600080fd5b820183602082011115610a2657600080fd5b803590602001918460208302840111600160201b83111715610a4757600080fd5b509092509050611674565b348015610a5e57600080fd5b506104ec611777565b348015610a7357600080fd5b5061068e60048036036020811015610a8a57600080fd5b503561178b565b348015610a9d57600080fd5b506103fb611863565b348015610ab257600080fd5b506103d2611869565b348015610ac757600080fd5b506104ec61189e565b348015610adc57600080fd5b5061068e60048036036020811015610af357600080fd5b50356001600160a01b03166118ad565b348015610b0f57600080fd5b506103fb60048036036040811015610b2657600080fd5b506001600160a01b03813581169160200135166119ac565b348015610b4a57600080fd5b506103fb6119d7565b348015610b5f57600080fd5b5061068e60048036036020811015610b7657600080fd5b50356001600160a01b03166119dd565b348015610b9257600080fd5b506104ec611a2c565b348015610ba757600080fd5b5061068e611a3b565b348015610bbc57600080fd5b5061068e60048036036040811015610bd357600080fd5b506001600160a01b0381358116916020013516611de4565b348015610bf757600080fd5b50610c00611e3d565b60405180836001600160a01b03168152602001826001600160a01b031681526020019250505060405180910390f35b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cbb5780601f10610c9057610100808354040283529160200191610cbb565b820191906000526020600020905b815481529060010190602001808311610c9e57829003601f168201915b5050505050905090565b6000610cd2338484611faf565b5060015b92915050565b600a5481565b6000610cf0600a548361209b565b90505b919050565b60025490565b6001600160a01b038083166000908152600d60209081526040808320938516835292815290829020805483518184028101840190945280845260609392830182828015610d7457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d56575b50505050509050600181511115610d8a57610cd6565b60408051600280825260608201835290916020830190803683370190505090506001600160a01b03831615610dbf5782610dd5565b73b31f66aa3c1e785363f0875a1b74e27b85fd66c75b81600081518110610de257fe5b6001600160a01b039283166020918202929092010152821615610e055781610e1b565b73b31f66aa3c1e785363f0875a1b74e27b85fd66c75b81600181518110610e2857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505092915050565b731dab6560494b04473a0be3e7d83cf3fdf3a5182881565b7358e57ca18b7a47112b877e31929798cd3d703b0f81565b6000610e8b8484846120fb565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610eee5760405162461bcd60e51b8152600401808060200182810382526028815260200180613a2b6028913960400191505060405180910390fd5b610efb8533858403611faf565b60019150505b9392505050565b73445fe580ef8d70ff569ab36e80c647af338db35181565b600080610f40731dab6560494b04473a0be3e7d83cf3fdf3a51828612246565b9250505090565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610cd29185908501611faf565b601154606090610cf09083906001600160a01b0316610cfe565b600d6020528260005260406000206020528160005260406000208181548110610fc557600080fd5b6000918252602090912001546001600160a01b0316925083915050565b610fea611869565b6110255760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b61102d612359565b611388811061107b576040805162461bcd60e51b815260206004820152601560248201527466656552617465206f7574206f662072616e67652160581b604482015290519081900360640190fd5b600981905560408051828152905133917fcfb4ca721b9a64dcc3626a15f4a4e53a6b1edd2a79e24527ac117aa8d9f1e4dd919081900360200190a250565b6110c16113d2565b156110cb5761111c565b6110d3611869565b156110e5576110e0612359565b61111c565b60405162461bcd60e51b81526004018080602001828103825260298152602001806139e16029913960400191505060405180910390fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6006546001600160a01b031681565b600f546001600160a01b031681565b60085481565b60006111937f860a69b4e688133bace199665ed9e08fba224f0ea3198771160e97c111c09e4c6124a0565b905090565b600554600160a81b900460ff16156111af57600080fd5b6005805460ff60a81b1916600160a81b17905560006111cc610cf8565b905060006111d8611400565b905060006111f0836111ea86856124a4565b906124fd565b90506111fc338561253f565b611206338261263d565b61121b33611216600b548461209b565b612654565b50506005805460ff60a81b191690555050565b600080611239610cf8565b90506000611245611400565b9050811561127557600061125d836111ea87856124a4565b905061126b600b548261209b565b9350505050610cf3565b611281600b548561209b565b92505050610cf3565b6011546001600160a01b031681565b6001600160a01b031660009081526020819052604090205490565b73b31f66aa3c1e785363f0875a1b74e27b85fd66c781565b600181565b6112d9611869565b6113145760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b61131c612359565b600a829055600b8190556040805183815260208101839052815133927f3500782ce2a3d459d1e698f482fd5249b727c7509b402592ce2b851699c71d48928290030190a25050565b6010818154811061137457600080fd5b60009182526020909120600290910201805460019091015460ff8083169350610100830416916201000090046001600160a01b03169084565b7f1221c3ca8a23c3a74a18c944c7b23b29e262f9cd12de4c345744293e8adf4ba75490565b60006113dc6113ad565b6001600160a01b0316336001600160a01b0316148015611193575061119333612673565b600654604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561144b57600080fd5b505afa15801561145f573d6000803e3d6000fd5b505050506040513d602081101561147557600080fd5b5051905090565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610cbb5780601f10610c9057610100808354040283529160200191610cbb565b60095481565b6114eb611869565b6115265760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b61152e612359565b61153b8585858585612679565b5050505050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156115a55760405162461bcd60e51b8152600401808060200182810382526025815260200180613b1d6025913960400191505060405180910390fd5b6115b23385858403611faf565b5060019392505050565b600554600160a81b900460ff16156115d357600080fd5b6005805460ff60a81b1916600160a81b17905560006115f0611400565b905060006115fc610cf8565b9050801580611609575081155b1561161d5761161833846129ac565b61163b565b600061162d836111ea86856124a4565b905061163933826129ac565b505b6116453384612a64565b61165533611216600a548661209b565b50506005805460ff60a81b1916905550565b6000610cd23384846120fb565b61167c611869565b6116b75760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b6116bf612359565b6001600160a01b038085166000908152600d602090815260408083209387168352929052206116ef9083836137f9565b50826001600160a01b0316846001600160a01b0316336001600160a01b03167fa851f77711bcf61336489e08bc8cd6e6881bbec2471fe5fc66d11c434eb4e7de858560405180806020018281038252848482818152602001925060200280828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b60055461010090046001600160a01b031690565b611793611869565b6117ce5760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b6117d6612359565b6127108110611825576040805162461bcd60e51b8152602060048201526016602482015275736c697052617465206f7574206f662072616e67652160501b604482015290519081900360640190fd5b600881905560408051828152905133917f35ca6ad09ac0fa0744e2b856c92f3844ed78e24b972c93c417891d5bfa512a60919081900360200190a250565b600c5481565b6000806000611876611e3d565b9092509050336001600160a01b0383161480610f4057506001600160a01b0316331492915050565b600e546001600160a01b031681565b6118b5611869565b6118f05760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b6118f8612359565b806001600160a01b038116611954576040805162461bcd60e51b815260206004820152601f60248201527f7375706572546f6b656e203a20696e707574207a65726f206164647265737300604482015290519081900360640190fd5b600780546001600160a01b0384166001600160a01b03199091168117909155604080519182525133917f120ec17136aa7b279af12e8fea5a8e3ef6d422f449550263bfe434adc1790472919081900360200190a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b5481565b6119e56113d2565b611a205760405162461bcd60e51b81526004018080602001828103825260498152602001806139446049913960600191505060405180910390fd5b611a2981612a7c565b50565b6007546001600160a01b031681565b42600c5560408051634274debf60e11b8152306004820152905173445fe580ef8d70ff569ab36e80c647af338db351916384e9bd7e91602480830192600092919082900301818387803b158015611a9157600080fd5b505af1158015611aa5573d6000803e3d6000fd5b50506010549150600090505b81811015611b4c57611ac161385c565b60108281548110611ace57fe5b6000918252602091829020604080516080810182526002909302909101805460ff8082168552610100820416158015958501959095526001600160a01b036201000090910416918301919091526001015460608201529150611b305750611b44565b611b4281604001518260600151612ae7565b505b600101611ab1565b50601154604080516370a0823160e01b815230600482015290516001600160a01b039092169160009183916370a0823191602480820192602092909190829003018186803b158015611b9d57600080fd5b505afa158015611bb1573d6000803e3d6000fd5b505050506040513d6020811015611bc757600080fd5b505190508015611ddf576000612710611beb600954846124a490919063ffffffff16565b81611bf257fe5b6007549190049150611c11906001600160a01b03858116911683612b98565b611c19613883565b6040805160a081019091526000815260208101611c368585612bea565b81526020016000815260200160008152602001600081525090507358e57ca18b7a47112b877e31929798cd3d703b0f6001600160a01b031663847384998260006040518363ffffffff1660e01b81526004018083600560200280838360005b83811015611cad578181015183820152602001611c95565b5050505090500182815260200192505050600060405180830381600087803b158015611cd857600080fd5b505af1158015611cec573d6000803e3d6000fd5b5050604080516370a0823160e01b81523060048201529051731dab6560494b04473a0be3e7d83cf3fdf3a5182893506370a0823192506024808301926020929190829003018186803b158015611d4157600080fd5b505afa158015611d55573d6000803e3d6000fd5b505050506040513d6020811015611d6b57600080fd5b50516040805163b6b55f2560e01b815260048101839052905191945073445fe580ef8d70ff569ab36e80c647af338db3519163b6b55f259160248082019260009290919082900301818387803b158015611dc457600080fd5b505af1158015611dd8573d6000803e3d6000fd5b5050505050505b505050565b611dec611869565b611e275760405162461bcd60e51b8152600401808060200182810382526028815260200180613b746028913960400191505060405180910390fd5b611e2f612359565b611e398282612c2c565b5050565b7fee9b9820fda27ccc82feea30836537c02da450e0ad29802ab27eb365a487b2ec547f818a65c6406db960713d1d26b13346eae9aaa5d405f0581dbb44b0b4e3c82cac549091565b801580611f0b575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051155b611f465760405162461bcd60e51b8152600401808060200182810382526036815260200180613ae76036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611ddf908490612d3e565b6060611fa78484600085612def565b949350505050565b6001600160a01b038316611ff45760405162461bcd60e51b8152600401808060200182810382526024815260200180613a996024913960400191505060405180910390fd5b6001600160a01b0382166120395760405162461bcd60e51b81526004018080602001828103825260228152602001806138fc6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082156120f25760006120ad610f20565b90506000670de0b6b3a76400006120c485846124a4565b816120cb57fe5b049050670de0b6b3a76400006120e182876124a4565b816120e857fe5b0492505050610cd6565b50600092915050565b6001600160a01b0383166121405760405162461bcd60e51b8152600401808060200182810382526025815260200180613a746025913960400191505060405180910390fd5b6001600160a01b0382166121855760405162461bcd60e51b81526004018080602001828103825260238152602001806138b76023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054818110156121dd5760405162461bcd60e51b815260040180806020018281038252602681526020018061391e6026913960400191505060405180910390fd5b6001600160a01b038085166000818152602081815260408083208787039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b600080600080600560019054906101000a90046001600160a01b03166001600160a01b0316638edbf436866040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050604080518083038186803b1580156122ad57600080fd5b505afa1580156122c1573d6000803e3d6000fd5b505050506040513d60408110156122d757600080fd5b5080516020909101519092509050606481108015906123095750722cd76fe086b93ce2f768a00b22a000000000008111155b61234f576040805162461bcd60e51b815260206004820152601260248201527137b930b1b63290383934b1b29032b93937b960711b604482015290519081900360640190fd5b9092509050915091565b6000349050600033308360003660405160200180866001600160a01b031660601b8152601401856001600160a01b031660601b8152601401848152602001838380828437808301925050509550505050505060405160208183030381529060405280519060200120905060006123cd611168565b905060006123da836124a0565b90506000826001600160a01b0316631ebaa16685846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b505190508181116124965760405162461bcd60e51b815260040180806020018281038252602e81526020018061398d602e913960400191505060405180910390fd5b61153b8482612f4b565b5490565b6000826124b357506000610cd6565b828202828482816124c057fe5b0414610f015760405162461bcd60e51b8152600401808060200182810382526021815260200180613a0a6021913960400191505060405180910390fd5b6000610f0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f4f565b6001600160a01b0382166125845760405162461bcd60e51b8152600401808060200182810382526021815260200180613a536021913960400191505060405180910390fd5b6001600160a01b038216600090815260208190526040902054818110156125dc5760405162461bcd60e51b81526004018080602001828103825260228152602001806138da6022913960400191505060405180910390fd5b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055805186815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b600654611e39906001600160a01b03168383612b98565b8015611e3957600f54611e39906001600160a01b031683600184612ff1565b3b151590565b6010548510156127cc5760006010868154811061269257fe5b60009182526020909120600290910201805460ff191660ff87161761ff001916610100861515021762010000600160b01b031916620100006001600160a01b038616021781556001810183905590508361279e576001600160a01b0383161580159061277a5750600e5460408051636eb1769f60e11b81523060048201526001600160a01b03928316602482015290519185169163dd62ed3e91604480820192602092909190829003018186803b15801561274c57600080fd5b505afa158015612760573d6000803e3d6000fd5b505050506040513d602081101561277657600080fd5b5051155b1561279957600e546127999084906001600160a01b0316600019611e85565b6127c6565b6001600160a01b038316156127c657600e546127c69084906001600160a01b03166000611e85565b50612949565b6040805160808101825260ff8087168252851515602083019081526001600160a01b038087169484018581526060850187815260108054600181018255600091909152955160029096027f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728101805495519351909416620100000262010000600160b01b03199315156101000261ff00199890971660ff1990961695909517969096169490941716919091179055517f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae673909101551580159061292a5750600e5460408051636eb1769f60e11b81523060048201526001600160a01b03928316602482015290519184169163dd62ed3e91604480820192602092909190829003018186803b1580156128fc57600080fd5b505afa158015612910573d6000803e3d6000fd5b505050506040513d602081101561292657600080fd5b5051155b1561294957600e546129499083906001600160a01b0316600019611e85565b6040805186815260ff86166020820152841515818301526001600160a01b038416606082015260808101839052905133917fc9ed0cc3bedda8d5f6d31c3b9351ce17b1478ca1d10281ce8e5e958cb38cc219919081900360a00190a25050505050565b6001600160a01b038216612a07576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60028054820190556001600160a01b038216600081815260208181526040808320805486019055805185815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050565b600654611e39906001600160a01b0316833084612ff1565b806001600160a01b0316612a8e6113ad565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a37f1221c3ca8a23c3a74a18c944c7b23b29e262f9cd12de4c345744293e8adf4ba755565b60006001600160a01b038316612afd5747612b70565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b158015612b4357600080fd5b505afa158015612b57573d6000803e3d6000fd5b505050506040513d6020811015612b6d57600080fd5b50515b905081811015612b805750611e39565b601154611ddf9084906001600160a01b03168361304b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611ddf908490612d3e565b6000610f0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134c4565b806001600160a01b0316826001600160a01b03167f6b0ba40b63fe0a4e591f25c6d723a40b532ff7cf536f3ce5abc7f6fb9969418060405160405180910390a3600080612c77611e3d565b91509150836001600160a01b0316826001600160a01b03161415612cbe577fee9b9820fda27ccc82feea30836537c02da450e0ad29802ab27eb365a487b2ec839055612d38565b836001600160a01b0316816001600160a01b03161415612d01577f818a65c6406db960713d1d26b13346eae9aaa5d405f0581dbb44b0b4e3c82cac839055612d38565b60405162461bcd60e51b8152600401808060200182810382526032815260200180613b426032913960400191505060405180910390fd5b50505050565b6060612d93826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611f989092919063ffffffff16565b805190915015611ddf57808060200190516020811015612db257600080fd5b5051611ddf5760405162461bcd60e51b815260040180806020018281038252602a815260200180613abd602a913960400191505060405180910390fd5b606082471015612e305760405162461bcd60e51b81526004018080602001828103825260268152602001806139bb6026913960400191505060405180910390fd5b612e3985612673565b612e8a576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310612ec95780518252601f199092019160209182019101612eaa565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612f2b576040519150601f19603f3d011682016040523d82523d6000602084013e612f30565b606091505b5091509150612f4082828661351e565b979650505050505050565b9055565b60008183612fdb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612fa0578181015183820152602001612f88565b50505050905090810190601f168015612fcd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612fe757fe5b0495945050505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612d38908590612d3e565b816001600160a01b0316836001600160a01b0316141561306a57611ddf565b6000613077848484613584565b905060606130858585610cfe565b90506001600160a01b03851661322057600e60009054906101000a90046001600160a01b03166001600160a01b031663a2a1623d8484843042601e016040518663ffffffff1660e01b81526004018085815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561312b578181015183820152602001613113565b50505050905001955050505050506000604051808303818588803b15801561315257600080fd5b505af1158015613166573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052602081101561319057600080fd5b8101908080516040519392919084600160201b8211156131af57600080fd5b9083019060208201858111156131c457600080fd5b82518660208202830111600160201b821117156131e057600080fd5b82525081516020918201928201910280838360005b8381101561320d5781810151838201526020016131f5565b505050509050016040525050505061153b565b6001600160a01b03841661333057600e60009054906101000a90046001600160a01b03166001600160a01b031663676528d18484843042601e016040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156132ca5781810151838201526020016132b2565b505050509050019650505050505050600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561319057600080fd5b600e60009054906101000a90046001600160a01b03166001600160a01b03166338ed17398484843042601e016040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156133cc5781810151838201526020016133b4565b505050509050019650505050505050600060405180830381600087803b1580156133f557600080fd5b505af1158015613409573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561343257600080fd5b8101908080516040519392919084600160201b82111561345157600080fd5b90830190602082018581111561346657600080fd5b82518660208202830111600160201b8211171561348257600080fd5b82525081516020918201928201910280838360005b838110156134af578181015183820152602001613497565b50505050905001604052505050505050505050565b600081848411156135165760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612fa0578181015183820152602001612f88565b505050900390565b6060831561352d575081610f01565b82511561353d5782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315612fa0578181015183820152602001612f88565b604080516002808252606080830184526000939092919060208301908036833701905050905084816000815181106135b857fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083816001815181106135e657fe5b6001600160a01b039283166020918202929092018101919091526005546040516347dad24160e11b81526004810183815285516024830152855160609561010090940490931693638fb5a4829387938392604490910191858201910280838360005b83811015613660578181015183820152602001613648565b505050509050019250505060006040518083038186803b15801561368357600080fd5b505afa158015613697573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156136c057600080fd5b8101908080516040519392919084600160201b8211156136df57600080fd5b9083019060208201858111156136f457600080fd5b82518660208202830111600160201b8211171561371057600080fd5b82525081516020918201928201910280838360005b8381101561373d578181015183820152602001613725565b50505050905001604052505050905060008160008151811061375b57fe5b6020026020010151118015613784575060008160018151811061377a57fe5b6020026020010151115b156137ed576127108160018151811061379957fe5b60200260200101516137d46008546137ce856000815181106137b757fe5b6020026020010151896124a490919063ffffffff16565b906124a4565b816137db57fe5b04816137e357fe5b0492505050610f01565b50600095945050505050565b82805482825590600052602060002090810192821561384c579160200282015b8281111561384c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190613819565b506138589291506138a1565b5090565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040518060a001604052806005906020820280368337509192915050565b5b8082111561385857600081556001016138a256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636570726f78794f776e65723a2063616c6c6572206d757374206265207468652070726f7879206f776e657220616e64206120636f6e747261637420616e64206e6f7420657870697265646d756c74695369676e6174757265436c69656e74203a2054686973207478206973206e6f7420617072726f766564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c70726f78794f776e65723a2063616c6c6572206973206e6f74206f776e6572206f72206f726967696e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4f726967696e5472616e73666572726564203a206f6c64206f726967696e20697320696c6c6567616c20616464726573732170726f78794f776e65723a2063616c6c6572206973206e6f7420746865207478206f726967696e21a26469706673582212203094cb93bcbe0a5ccefd5541271edeeb80b2a120ffe47ff4ac42eea09f8bfbcb64736f6c63430007050033416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c818a65c6406db960713d1d26b13346eae9aaa5d405f0581dbb44b0b4e3c82cacee9b9820fda27ccc82feea30836537c02da450e0ad29802ab27eb365a487b2ec6d756c74695369676e6174757265436c69656e74203a204d756c7469706c65207369676e617475726520636f6e74726163742061646472657373206973207a65726f211221c3ca8a23c3a74a18c944c7b23b29e262f9cd12de4c345744293e8adf4ba75361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e63654f726967696e5472616e73666572726564203a206f6c64206f726967696e20697320696c6c6567616c2061646472657373210000000000000000000000007f08ba62fadaf3b4b70a8ddc22b3c63669bddeb20000000000000000000000003cd5854fe3a13707b7882d8290d3cae793a7751a000000000000000000000000b18de9512ac891b926c6b5d6838433ac5e52818b000000000000000000000000edf62d4bd9c59e7cb1f3b74748891424f2bc67b90000000000000000000000001238681af57194779793fb21d51e1ee9be6f162b