[ { "inputs": [ { "internalType": "contract IStrategy", "name": "_strategy", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_approvalDelay", "type": "uint256" } ], "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": false, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "NewStratCandidate", "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": 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": "address", "name": "implementation", "type": "address" } ], "name": "UpgradeStrat", "type": "event" }, { "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": [], "name": "approvalDelay", "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": [], "name": "available", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "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": "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": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "earn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getPricePerFullShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "inCaseTokensGetStuck", "outputs": [], "stateMutability": "nonpayable", "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": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_implementation", "type": "address" } ], "name": "proposeStrat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stratCandidate", "outputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "uint256", "name": "proposedTime", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "strategy", "outputs": [ { "internalType": "contract IStrategy", "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": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeStrat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "want", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040523480156200001157600080fd5b50604051620040e2380380620040e28339818101604052810190620000379190620002ed565b82828160039080519060200190620000519291906200019d565b5080600490805190602001906200006a9291906200019d565b506012600560006101000a81548160ff021916908360ff160217905550505060006200009b6200019560201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160068190555083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080608081815250505050505062000542565b600033905090565b828054620001ab906200047a565b90600052602060002090601f016020900481019282620001cf57600085556200021b565b82601f10620001ea57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021a578251825591602001919060010190620001fd565b5b5090506200022a91906200022e565b5090565b5b80821115620002495760008160009055506001016200022f565b5090565b6000620002646200025e84620003bf565b6200038b565b9050828152602081018484840111156200027d57600080fd5b6200028a84828562000444565b509392505050565b600081519050620002a3816200050e565b92915050565b600082601f830112620002bb57600080fd5b8151620002cd8482602086016200024d565b91505092915050565b600081519050620002e78162000528565b92915050565b600080600080608085870312156200030457600080fd5b6000620003148782880162000292565b945050602085015167ffffffffffffffff8111156200033257600080fd5b6200034087828801620002a9565b935050604085015167ffffffffffffffff8111156200035e57600080fd5b6200036c87828801620002a9565b92505060606200037f87828801620002d6565b91505092959194509250565b6000604051905081810181811067ffffffffffffffff82111715620003b557620003b4620004df565b5b8060405250919050565b600067ffffffffffffffff821115620003dd57620003dc620004df565b5b601f19601f8301169050602081019050919050565b6000620003ff826200041a565b9050919050565b60006200041382620003f2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200046457808201518184015260208101905062000447565b8381111562000474576000848401525b50505050565b600060028204905060018216806200049357607f821691505b60208210811415620004aa57620004a9620004b0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620005198162000406565b81146200052557600080fd5b50565b62000533816200043a565b81146200053f57600080fd5b50565b608051613b7d620005656000396000818161181a01526119530152613b7d6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063853828b611610104578063b6b55f25116100a2578063def68a9c11610071578063def68a9c146104eb578063e2d1e75c14610507578063e668524414610525578063f2fde38b1461052f576101cf565b8063b6b55f251461048b578063d389800f146104a7578063dd62ed3e146104b1578063de5f6268146104e1576101cf565b8063a457c2d7116100de578063a457c2d7146103ef578063a8c62e761461041f578063a9059cbb1461043d578063b69ef8a81461046d576101cf565b8063853828b6146103a95780638da5cb5b146103b357806395d89b41146103d1576101cf565b8063395093511161017157806370a082311161014b57806370a0823114610332578063715018a61461036257806376dfabb81461036c57806377c7b8fc1461038b576101cf565b806339509351146102c857806348a0d754146102f85780635b12ff9b14610316576101cf565b80631f1fcd51116101ad5780631f1fcd511461024057806323b872dd1461025e5780632e1a7d4d1461028e578063313ce567146102aa576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc61054b565b6040516101e99190613485565b60405180910390f35b61020c60048036038101906102079190612b82565b6105dd565b6040516102199190613434565b60405180910390f35b61022a6105fb565b6040516102379190613727565b60405180910390f35b610248610605565b604051610255919061344f565b60405180910390f35b61027860048036038101906102739190612b33565b6106ac565b6040516102859190613434565b60405180910390f35b6102a860048036038101906102a39190612c10565b610785565b005b6102b2610a0a565b6040516102bf9190613742565b60405180910390f35b6102e260048036038101906102dd9190612b82565b610a21565b6040516102ef9190613434565b60405180910390f35b610300610ad4565b60405161030d9190613727565b60405180910390f35b610330600480360381019061032b9190612aa5565b610b6b565b005b61034c60048036038101906103479190612aa5565b610d8d565b6040516103599190613727565b60405180910390f35b61036a610dd5565b005b610374610f12565b60405161038292919061340b565b60405180910390f35b610393610f44565b6040516103a09190613727565b60405180910390f35b6103b1610fa3565b005b6103bb610fb6565b6040516103c891906133b9565b60405180910390f35b6103d9610fe0565b6040516103e69190613485565b60405180910390f35b61040960048036038101906104049190612b82565b611072565b6040516104169190613434565b60405180910390f35b61042761113f565b604051610434919061346a565b60405180910390f35b61045760048036038101906104529190612b82565b611165565b6040516104649190613434565b60405180910390f35b610475611183565b6040516104829190613727565b60405180910390f35b6104a560048036038101906104a09190612c10565b6112cb565b005b6104af611464565b005b6104cb60048036038101906104c69190612af7565b611549565b6040516104d89190613727565b60405180910390f35b6104e96115d0565b005b61050560048036038101906105009190612aa5565b61166a565b005b61050f611818565b60405161051c9190613727565b60405180910390f35b61052d61183c565b005b61054960048036038101906105449190612aa5565b611b68565b005b60606003805461055a90613986565b80601f016020809104026020016040519081016040528092919081815260200182805461058690613986565b80156105d35780601f106105a8576101008083540402835291602001916105d3565b820191906000526020600020905b8154815290600101906020018083116105b657829003601f168201915b5050505050905090565b60006105f16105ea611d14565b8484611d1c565b6001905092915050565b6000600254905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f1fcd516040518163ffffffff1660e01b815260040160206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a79190612be7565b905090565b60006106b9848484611ee7565b61077a846106c5611d14565b61077585604051806060016040528060288152602001613afb60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072b611d14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217c9092919063ffffffff16565b611d1c565b600190509392505050565b60006107ba6107926105fb565b6107ac8461079e611183565b6121da90919063ffffffff16565b61225590919063ffffffff16565b90506107c633836122ad565b60006107d0610605565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161080891906133b9565b60206040518083038186803b15801561082057600080fd5b505afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190612c39565b9050818110156109d3576000610877828461245b90919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b81526004016108d49190613727565b600060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506000610910610605565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161094891906133b9565b60206040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190612c39565b905060006109af848361245b90919063ffffffff16565b9050828110156109cf576109cc81856124b490919063ffffffff16565b94505b5050505b610a0533836109e0610605565b73ffffffffffffffffffffffffffffffffffffffff166125129092919063ffffffff16565b505050565b6000600560009054906101000a900460ff16905090565b6000610aca610a2e611d14565b84610ac58560016000610a3f611d14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b490919063ffffffff16565b611d1c565b6001905092915050565b6000610ade610605565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b1691906133b9565b60206040518083038186803b158015610b2e57600080fd5b505afa158015610b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190612c39565b905090565b610b73611d14565b73ffffffffffffffffffffffffffffffffffffffff16610b91610fb6565b73ffffffffffffffffffffffffffffffffffffffff1614610be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bde90613607565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190612ace565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906135c7565b60405180910390fd5b60405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200142815250600760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050507f1aae2ec5647db56da2d513de40528ba3565c6057525637050660c4323bbac7df81604051610d8291906133b9565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ddd611d14565b73ffffffffffffffffffffffffffffffffffffffff16610dfb610fb6565b73ffffffffffffffffffffffffffffffffffffffff1614610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60078060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b600080610f4f6105fb565b14610f9457610f8f610f5f6105fb565b610f81670de0b6b3a7640000610f73611183565b6121da90919063ffffffff16565b61225590919063ffffffff16565b610f9e565b670de0b6b3a76400005b905090565b610fb4610faf33610d8d565b610785565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610fef90613986565b80601f016020809104026020016040519081016040528092919081815260200182805461101b90613986565b80156110685780601f1061103d57610100808354040283529160200191611068565b820191906000526020600020905b81548152906001019060200180831161104b57829003601f168201915b5050505050905090565b600061113561107f611d14565b8461113085604051806060016040528060258152602001613b2360259139600160006110a9611d14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217c9092919063ffffffff16565b611d1c565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611179611172611d14565b8484611ee7565b6001905092915050565b60006112c6600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663722713f76040518163ffffffff1660e01b815260040160206040518083038186803b1580156111f057600080fd5b505afa158015611204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112289190612c39565b611230610605565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161126891906133b9565b60206040518083038186803b15801561128057600080fd5b505afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b89190612c39565b6124b490919063ffffffff16565b905090565b60026006541415611311576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611308906136e7565b60405180910390fd5b6002600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663573fef0a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561138357600080fd5b505af1158015611397573d6000803e3d6000fd5b5050505060006113a5611183565b90506113db3330846113b5610605565b73ffffffffffffffffffffffffffffffffffffffff16612598909392919063ffffffff16565b6113e3611464565b60006113ed611183565b9050611402828261245b90919063ffffffff16565b925060008061140f6105fb565b141561141d5783905061144c565b6114498361143b61142c6105fb565b876121da90919063ffffffff16565b61225590919063ffffffff16565b90505b6114563382612621565b505050600160068190555050565b600061146e610ad4565b90506114c4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261149f610605565b73ffffffffffffffffffffffffffffffffffffffff166125129092919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561152e57600080fd5b505af1158015611542573d6000803e3d6000fd5b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116686115db610605565b73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161161391906133b9565b60206040518083038186803b15801561162b57600080fd5b505afa15801561163f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116639190612c39565b6112cb565b565b611672611d14565b73ffffffffffffffffffffffffffffffffffffffff16611690610fb6565b73ffffffffffffffffffffffffffffffffffffffff16146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90613607565b60405180910390fd5b6116ee610605565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611753906135a7565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161179791906133b9565b60206040518083038186803b1580156117af57600080fd5b505afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190612c39565b905061181433828473ffffffffffffffffffffffffffffffffffffffff166125129092919063ffffffff16565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611844611d14565b73ffffffffffffffffffffffffffffffffffffffff16611862610fb6565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194490613667565b60405180910390fd5b426119867f00000000000000000000000000000000000000000000000000000000000000006007600101546124b490919063ffffffff16565b106119c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bd90613587565b60405180910390fd5b7f7f37d440e85aba7fbf641c4bda5ca4ef669a80bffaacde2aa8d9feb1b048c82c600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611a1a91906133b9565b60405180910390a1600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb6177876040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b50505050600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555064012a05f200600760010181905550611b66611464565b565b611b70611d14565b73ffffffffffffffffffffffffffffffffffffffff16611b8e610fb6565b73ffffffffffffffffffffffffffffffffffffffff1614611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90613607565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b906134c7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8390613687565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df3906134e7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eda9190613727565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e90613647565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbe906134a7565b60405180910390fd5b611fd28383836127b5565b61203d81604051806060016040528060268152602001613ad5602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217c9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120d0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216f9190613727565b60405180910390a3505050565b60008383111582906121c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bb9190613485565b60405180910390fd5b5082846121d19190613870565b90509392505050565b6000808314156121ed576000905061224f565b600082846121fb9190613816565b905082848261220a91906137e5565b1461224a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612241906135e7565b60405180910390fd5b809150505b92915050565b6000808211612299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229090613567565b60405180910390fd5b81836122a591906137e5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561231d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231490613627565b60405180910390fd5b612329826000836127b5565b61239481604051806060016040528060228152602001613ab3602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217c9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123eb8160025461245b90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161244f9190613727565b60405180910390a35050565b6000828211156124a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249790613527565b60405180910390fd5b81836124ac9190613870565b905092915050565b60008082846124c3919061378f565b905083811015612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90613507565b60405180910390fd5b8091505092915050565b6125938363a9059cbb60e01b848460405160240161253192919061340b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506127ba565b505050565b61261b846323b872dd60e01b8585856040516024016125b9939291906133d4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506127ba565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613707565b60405180910390fd5b61269d600083836127b5565b6126b2816002546124b490919063ffffffff16565b600281905550612709816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b490919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127a99190613727565b60405180910390a35050565b505050565b600061281c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166128819092919063ffffffff16565b905060008151111561287c578080602001905181019061283c9190612bbe565b61287b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612872906136c7565b60405180910390fd5b5b505050565b60606128908484600085612899565b90509392505050565b6060824710156128de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d590613547565b60405180910390fd5b6128e7856129ad565b612926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291d906136a7565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161294f91906133a2565b60006040518083038185875af1925050503d806000811461298c576040519150601f19603f3d011682016040523d82523d6000602084013e612991565b606091505b50915091506129a18282866129c0565b92505050949350505050565b600080823b905060008111915050919050565b606083156129d057829050612a20565b6000835111156129e35782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a179190613485565b60405180910390fd5b9392505050565b600081359050612a3681613a56565b92915050565b600081519050612a4b81613a56565b92915050565b600081519050612a6081613a6d565b92915050565b600081519050612a7581613a84565b92915050565b600081359050612a8a81613a9b565b92915050565b600081519050612a9f81613a9b565b92915050565b600060208284031215612ab757600080fd5b6000612ac584828501612a27565b91505092915050565b600060208284031215612ae057600080fd5b6000612aee84828501612a3c565b91505092915050565b60008060408385031215612b0a57600080fd5b6000612b1885828601612a27565b9250506020612b2985828601612a27565b9150509250929050565b600080600060608486031215612b4857600080fd5b6000612b5686828701612a27565b9350506020612b6786828701612a27565b9250506040612b7886828701612a7b565b9150509250925092565b60008060408385031215612b9557600080fd5b6000612ba385828601612a27565b9250506020612bb485828601612a7b565b9150509250929050565b600060208284031215612bd057600080fd5b6000612bde84828501612a51565b91505092915050565b600060208284031215612bf957600080fd5b6000612c0784828501612a66565b91505092915050565b600060208284031215612c2257600080fd5b6000612c3084828501612a7b565b91505092915050565b600060208284031215612c4b57600080fd5b6000612c5984828501612a90565b91505092915050565b612c6b816138a4565b82525050565b612c7a816138b6565b82525050565b6000612c8b8261375d565b612c958185613773565b9350612ca5818560208601613953565b80840191505092915050565b612cba8161390b565b82525050565b612cc98161392f565b82525050565b6000612cda82613768565b612ce4818561377e565b9350612cf4818560208601613953565b612cfd81613a45565b840191505092915050565b6000612d1560238361377e565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612d7b60268361377e565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612de160228361377e565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e47601b8361377e565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000612e87601e8361377e565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612ec760268361377e565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f2d601a8361377e565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612f6d60148361377e565b91507f44656c617920686173206e6f74207061737365640000000000000000000000006000830152602082019050919050565b6000612fad60068361377e565b91507f21746f6b656e00000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000612fed60218361377e565b91507f50726f706f73616c206e6f742076616c696420666f722074686973205661756c60008301527f74000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061305360218361377e565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130b960208361377e565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006130f960218361377e565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061315f60258361377e565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131c560158361377e565b91507f5468657265206973206e6f2063616e64696461746500000000000000000000006000830152602082019050919050565b600061320560248361377e565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061326b601d8361377e565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b60006132ab602a8361377e565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000613311601f8361377e565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b6000613351601f8361377e565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61338d816138f4565b82525050565b61339c816138fe565b82525050565b60006133ae8284612c80565b915081905092915050565b60006020820190506133ce6000830184612c62565b92915050565b60006060820190506133e96000830186612c62565b6133f66020830185612c62565b6134036040830184613384565b949350505050565b60006040820190506134206000830185612c62565b61342d6020830184613384565b9392505050565b60006020820190506134496000830184612c71565b92915050565b60006020820190506134646000830184612cb1565b92915050565b600060208201905061347f6000830184612cc0565b92915050565b6000602082019050818103600083015261349f8184612ccf565b905092915050565b600060208201905081810360008301526134c081612d08565b9050919050565b600060208201905081810360008301526134e081612d6e565b9050919050565b6000602082019050818103600083015261350081612dd4565b9050919050565b6000602082019050818103600083015261352081612e3a565b9050919050565b6000602082019050818103600083015261354081612e7a565b9050919050565b6000602082019050818103600083015261356081612eba565b9050919050565b6000602082019050818103600083015261358081612f20565b9050919050565b600060208201905081810360008301526135a081612f60565b9050919050565b600060208201905081810360008301526135c081612fa0565b9050919050565b600060208201905081810360008301526135e081612fe0565b9050919050565b6000602082019050818103600083015261360081613046565b9050919050565b60006020820190508181036000830152613620816130ac565b9050919050565b60006020820190508181036000830152613640816130ec565b9050919050565b6000602082019050818103600083015261366081613152565b9050919050565b60006020820190508181036000830152613680816131b8565b9050919050565b600060208201905081810360008301526136a0816131f8565b9050919050565b600060208201905081810360008301526136c08161325e565b9050919050565b600060208201905081810360008301526136e08161329e565b9050919050565b6000602082019050818103600083015261370081613304565b9050919050565b6000602082019050818103600083015261372081613344565b9050919050565b600060208201905061373c6000830184613384565b92915050565b60006020820190506137576000830184613393565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061379a826138f4565b91506137a5836138f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137da576137d96139b8565b5b828201905092915050565b60006137f0826138f4565b91506137fb836138f4565b92508261380b5761380a6139e7565b5b828204905092915050565b6000613821826138f4565b915061382c836138f4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613865576138646139b8565b5b828202905092915050565b600061387b826138f4565b9150613886836138f4565b925082821015613899576138986139b8565b5b828203905092915050565b60006138af826138d4565b9050919050565b60008115159050919050565b60006138cd826138a4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139168261391d565b9050919050565b6000613928826138d4565b9050919050565b600061393a82613941565b9050919050565b600061394c826138d4565b9050919050565b60005b83811015613971578082015181840152602081019050613956565b83811115613980576000848401525b50505050565b6000600282049050600182168061399e57607f821691505b602082108114156139b2576139b1613a16565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613a5f816138a4565b8114613a6a57600080fd5b50565b613a76816138b6565b8114613a8157600080fd5b50565b613a8d816138c2565b8114613a9857600080fd5b50565b613aa4816138f4565b8114613aaf57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202ddc13cfd02841d6e77cc15db319817ab5396c9465a4b3c00cf21acdeef15df864736f6c634300080000330000000000000000000000007c6b7d280d660e6b2bddae39952637d4c530c34e000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000000b6176334352565661756c74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b6176334352565661756c74000000000000000000000000000000000000000000