[ { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_approvalDelay", "type": "uint256" }, { "internalType": "uint256", "name": "_depositFee", "type": "uint256" }, { "internalType": "uint256", "name": "_tvlCap", "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": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "total", "type": "uint256" } ], "name": "DepositsIncremented", "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": "uint256", "name": "newTvlCap", "type": "uint256" } ], "name": "TvlCapUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "UpgradeStrat", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "total", "type": "uint256" } ], "name": "WithdrawalsIncremented", "type": "event" }, { "inputs": [], "name": "PERCENT_DIVISOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "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": "constructionTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "cumulativeDeposits", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "cumulativeWithdrawals", "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": "depositFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "_strategy", "type": "address" } ], "name": "initialize", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "removeTvlCap", "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": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "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": "tvlCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "updateDepositFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newTvlCap", "type": "uint256" } ], "name": "updateTvlCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeStrat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a0604052600c805460ff191690553480156200001b57600080fd5b5060405162002533380380620025338339810160408190526200003e9162000291565b845185908590620000579060039060208501906200011e565b5080516200006d9060049060208401906200011e565b5050506200008a62000084620000c860201b60201c565b620000cc565b6001600655600e80546001600160a01b0319166001600160a01b03979097169690961790955560809190915242600d55600a555050600b5562000374565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200012c9062000337565b90600052602060002090601f0160209004810192826200015057600085556200019b565b82601f106200016b57805160ff19168380011785556200019b565b828001600101855582156200019b579182015b828111156200019b5782518255916020019190600101906200017e565b50620001a9929150620001ad565b5090565b5b80821115620001a95760008155600101620001ae565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ec57600080fd5b81516001600160401b0380821115620002095762000209620001c4565b604051601f8301601f19908116603f01168101908282118183101715620002345762000234620001c4565b816040528381526020925086838588010111156200025157600080fd5b600091505b8382101562000275578582018301518183018401529082019062000256565b83821115620002875760008385830101525b9695505050505050565b60008060008060008060c08789031215620002ab57600080fd5b86516001600160a01b0381168114620002c357600080fd5b60208801519096506001600160401b0380821115620002e157600080fd5b620002ef8a838b01620001da565b965060408901519150808211156200030657600080fd5b506200031589828a01620001da565b945050606087015192506080870151915060a087015190509295509295509295565b600181811c908216806200034c57607f821691505b602082108114156200036e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805161219c6200039760003960008181610506015261137e015261219c6000f3fe608060405234801561001057600080fd5b50600436106102475760003560e01c8063853828b61161013b578063c4d66de8116100b8578063e2d1e75c1161007c578063e2d1e75c14610501578063e668524414610528578063f06c561014610530578063f2fde38b14610539578063fc0c546a1461054c57600080fd5b8063c4d66de814610492578063d389800f146104a5578063dd62ed3e146104ad578063de5f6268146104e6578063def68a9c146104ee57600080fd5b8063a8c62e76116100ff578063a8c62e7614610431578063a9059cbb14610444578063b3ca318814610457578063b69ef8a814610477578063b6b55f251461047f57600080fd5b8063853828b6146103c95780638da5cb5b146103d157806395d89b41146103f6578063a457c2d7146103fe578063a6c8220e1461041157600080fd5b806339509351116101c957806367a527931161018d57806367a527931461035157806370a082311461035a578063715018a61461038357806376dfabb81461038b57806377c7b8fc146103c157600080fd5b806339509351146103115780633f23fa1a146103245780634870dd9a1461032d57806348a0d754146103365780635b12ff9b1461033e57600080fd5b806318160ddd1161021057806318160ddd146102c257806323b872dd146102d457806329b9d694146102e75780632e1a7d4d146102ef578063313ce5671461030257600080fd5b8062272d811461024c578063017def571461026157806306fdde0314610274578063095ea7b314610292578063158ef93e146102b5575b600080fd5b61025f61025a366004611ed6565b61055f565b005b61025f61026f366004611ed6565b6105ce565b61027c6105fd565b6040516102899190611f1b565b60405180910390f35b6102a56102a0366004611f65565b61068f565b6040519015158152602001610289565b600c546102a59060ff1681565b6002545b604051908152602001610289565b6102a56102e2366004611f8f565b6106a5565b61025f610751565b61025f6102fd366004611ed6565b610788565b60405160128152602001610289565b6102a561031f366004611f65565b6109fc565b6102c6600b5481565b6102c661271081565b6102c6610a38565b61025f61034c366004611fcb565b610aaa565b6102c6600a5481565b6102c6610368366004611fcb565b6001600160a01b031660009081526020819052604090205490565b61025f610b35565b6007546008546103a2916001600160a01b03169082565b604080516001600160a01b039093168352602083019190915201610289565b6102c6610b69565b61025f610ba6565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610289565b61027c610bbf565b6102a561040c366004611f65565b610bce565b6102c661041f366004611fcb565b60106020526000908152604090205481565b6009546103de906001600160a01b031681565b6102a5610452366004611f65565b610c67565b6102c6610465366004611fcb565b600f6020526000908152604090205481565b6102c6610c74565b61025f61048d366004611ed6565b610d62565b6102a56104a0366004611fcb565b610fdf565b61025f611100565b6102c66104bb366004611fe6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61025f611195565b61025f6104fc366004611fcb565b611203565b6102c67f000000000000000000000000000000000000000000000000000000000000000081565b61025f6112f9565b6102c6600d5481565b61025f610547366004611fcb565b6114c4565b600e546103de906001600160a01b031681565b6005546001600160a01b031633146105925760405162461bcd60e51b815260040161058990612019565b60405180910390fd5b600b8190556040518181527f2923cecec41b7140eaf657a035af4abb23ed61d16b1fc20a986838eb3ad99bd0906020015b60405180910390a150565b6005546001600160a01b031633146105f85760405162461bcd60e51b815260040161058990612019565b600a55565b60606003805461060c9061204e565b80601f01602080910402602001604051908101604052809291908181526020018280546106389061204e565b80156106855780601f1061065a57610100808354040283529160200191610685565b820191906000526020600020905b81548152906001019060200180831161066857829003601f168201915b5050505050905090565b600061069c33848461155f565b50600192915050565b60006106b2848484611684565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107375760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610589565b610744853385840361155f565b60019150505b9392505050565b6005546001600160a01b0316331461077b5760405162461bcd60e51b815260040161058990612019565b61078660001961055f565b565b600260065414156107db5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610589565b6002600655806108255760405162461bcd60e51b81526020600482015260156024820152741c1b19585cd9481c1c9bdd9a591948185b5bdd5b9d605a1b6044820152606401610589565b600061084b61083360025490565b6108458461083f610c74565b90611854565b90611860565b9050610857338361186c565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190612089565b9050818110156109d15760006108da83836119b7565b600954604051632e1a7d4d60e01b8152600481018390529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561092157600080fd5b505af1158015610935573d6000803e3d6000fd5b5050600e546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a89190612089565b905060006109b682856119b7565b9050828110156109cd576109ca84826119c3565b94505b5050505b600e546109e8906001600160a01b031633846119cf565b6109f182611a32565b505060016006555050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161069c918590610a339086906120b8565b61155f565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa59190612089565b905090565b6005546001600160a01b03163314610ad45760405162461bcd60e51b815260040161058990612019565b6040805180820182526001600160a01b038316808252426020928301819052600780546001600160a01b0319168317905560085591519182527f1aae2ec5647db56da2d513de40528ba3565c6057525637050660c4323bbac7df91016105c3565b6005546001600160a01b03163314610b5f5760405162461bcd60e51b815260040161058990612019565b6107866000611aad565b6000610b7460025490565b15610b9957610aa5610b8560025490565b610845670de0b6b3a764000061083f610c74565b50670de0b6b3a764000090565b3360009081526020819052604090205461078690610788565b60606004805461060c9061204e565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c505760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610589565b610c5d338585840361155f565b5060019392505050565b600061069c338484611684565b6000610aa5600960009054906101000a90046001600160a01b03166001600160a01b031663722713f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf09190612089565b600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c9190612089565b906119c3565b60026006541415610db55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610589565b600260065580610dff5760405162461bcd60e51b81526020600482015260156024820152741c1b19585cd9481c1c9bdd9a591948185b5bdd5b9d605a1b6044820152606401610589565b6000610e09610c74565b600b54909150610e1982846119c3565b1115610e585760405162461bcd60e51b815260206004820152600e60248201526d7661756c742069732066756c6c2160901b6044820152606401610589565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec59190612089565b600e54909150610ee0906001600160a01b0316333086611aff565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612089565b9050610f5981836119b7565b93506000610f84612710610845610f7d600a546127106119b790919063ffffffff16565b8890611854565b90506000610f9160025490565b610f9c575080610fb6565b610fb385610845610fac60025490565b8590611854565b90505b610fc03382611b37565b610fc8611100565b610fd186611c16565b505060016006555050505050565b6005546000906001600160a01b0316331461100c5760405162461bcd60e51b815260040161058990612019565b600c5460ff161561105f5760405162461bcd60e51b815260206004820181905260248201527f436f6e747261637420697320616c726561647920696e697469616c697a65642e6044820152606401610589565b600d5461106e906104b06120b8565b4211156110ce5760405162461bcd60e51b815260206004820152602860248201527f696e697469616c697a6174696f6e20706572696f64206f7665722c207573652060448201526774696d656c6f636b60c01b6064820152608401610589565b50600980546001600160a01b0319166001600160a01b038316179055600c805460ff191660019081179091555b919050565b600061110a610a38565b600954600e5491925061112a916001600160a01b039081169116836119cf565b600960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b5050505050565b600e546040516370a0823160e01b8152336004820152610786916001600160a01b0316906370a0823190602401602060405180830381865afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048d9190612089565b6005546001600160a01b0316331461122d5760405162461bcd60e51b815260040161058990612019565b600e546001600160a01b03828116911614156112745760405162461bcd60e51b815260206004820152600660248201526510ba37b5b2b760d11b6044820152606401610589565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df9190612089565b90506112f56001600160a01b03831633836119cf565b5050565b6005546001600160a01b031633146113235760405162461bcd60e51b815260040161058990612019565b6007546001600160a01b03166113735760405162461bcd60e51b81526020600482015260156024820152745468657265206973206e6f2063616e64696461746560581b6044820152606401610589565b60085442906113a2907f00000000000000000000000000000000000000000000000000000000000000006119c3565b106113e65760405162461bcd60e51b815260206004820152601460248201527311195b185e481a185cc81b9bdd081c185cdcd95960621b6044820152606401610589565b6007546040516001600160a01b0390911681527f7f37d440e85aba7fbf641c4bda5ca4ef669a80bffaacde2aa8d9feb1b048c82c9060200160405180910390a1600960009054906101000a90046001600160a01b03166001600160a01b031663fb6177876040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561147657600080fd5b505af115801561148a573d6000803e3d6000fd5b505060078054600980546001600160a01b03199081166001600160a01b03841617909155169055505064012a05f200600855610786611100565b6005546001600160a01b031633146114ee5760405162461bcd60e51b815260040161058990612019565b6001600160a01b0381166115535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610589565b61155c81611aad565b50565b6001600160a01b0383166115c15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610589565b6001600160a01b0382166116225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610589565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166116e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610589565b6001600160a01b03821661174a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610589565b6001600160a01b038316600090815260208190526040902054818110156117c25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610589565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906117f99084906120b8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161184591815260200190565b60405180910390a35b50505050565b600061074a82846120d0565b600061074a82846120ef565b6001600160a01b0382166118cc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610589565b6001600160a01b038216600090815260208190526040902054818110156119405760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610589565b6001600160a01b038316600090815260208190526040812083830390556002805484929061196f908490612111565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611677565b505050565b600061074a8284612111565b600061074a82846120b8565b6040516001600160a01b0383166024820152604481018290526119b290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c83565b3260009081526010602052604081205481611a4d84836120b8565b326000818152601060209081526040918290208490558151928352820187905281018290529091507f9141e77ca2893646d48087b1b095075541605e9b87ca091e2057b651b1e62af2906060015b60405180910390a15060019392505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b038085166024830152831660448201526064810182905261184e9085906323b872dd60e01b906084016119fb565b6001600160a01b038216611b8d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610589565b8060026000828254611b9f91906120b8565b90915550506001600160a01b03821660009081526020819052604081208054839290611bcc9084906120b8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b326000908152600f602052604081205481611c3184836120b8565b326000818152600f60209081526040918290208490558151928352820187905281018290529091507f06a0895c1a837cd12ac50bcba0b79f680b66b790598e25e296d9e998e1b7520990606001611a9b565b6000611cd8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d559092919063ffffffff16565b8051909150156119b25780806020019051810190611cf69190612128565b6119b25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610589565b6060611d648484600085611d6c565b949350505050565b606082471015611dcd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610589565b6001600160a01b0385163b611e245760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610589565b600080866001600160a01b03168587604051611e40919061214a565b60006040518083038185875af1925050503d8060008114611e7d576040519150601f19603f3d011682016040523d82523d6000602084013e611e82565b606091505b5091509150611e92828286611e9d565b979650505050505050565b60608315611eac57508161074a565b825115611ebc5782518084602001fd5b8160405162461bcd60e51b81526004016105899190611f1b565b600060208284031215611ee857600080fd5b5035919050565b60005b83811015611f0a578181015183820152602001611ef2565b8381111561184e5750506000910152565b6020815260008251806020840152611f3a816040850160208701611eef565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146110fb57600080fd5b60008060408385031215611f7857600080fd5b611f8183611f4e565b946020939093013593505050565b600080600060608486031215611fa457600080fd5b611fad84611f4e565b9250611fbb60208501611f4e565b9150604084013590509250925092565b600060208284031215611fdd57600080fd5b61074a82611f4e565b60008060408385031215611ff957600080fd5b61200283611f4e565b915061201060208401611f4e565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061206257607f821691505b6020821081141561208357634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561209b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156120cb576120cb6120a2565b500190565b60008160001904831182151516156120ea576120ea6120a2565b500290565b60008261210c57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612123576121236120a2565b500390565b60006020828403121561213a57600080fd5b8151801515811461074a57600080fd5b6000825161215c818460208701611eef565b919091019291505056fea2646970667358221220d7a99aceb3eb35830e18a20205bd5a03028e73d121ca52e9f1287378c77f8e9864736f6c634300080b0033000000000000000000000000ea32a96608495e54156ae48931a7c20f0dcc1a2100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000001a555344432d412d56322d5354415253545245414d2d5641554c54000000000000000000000000000000000000000000000000000000000000000000000000000a555344432d4e2d53535600000000000000000000000000000000000000000000
0xa2646970667358221220d7a99aceb3eb35830e18a20205bd5a03028e73d121ca52e9f1287378c77f8e9864736f6c634300080b0033000000000000000000000000ea32a96608495e54156ae48931a7c20f0dcc1a2100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000001a555344432d412d56322d5354415253545245414d2d5641554c54000000000000000000000000000000000000000000000000000000000000000000000000000a555344432d4e2d53535600000000000000000000000000000000000000000000