1 tx
2 calls
constructor
constructor(address pool_, address swapper_, string name_)
functions
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
crvLp
viewfunction crvLp() view returns (address)
CURVE_ADDRESS_PROVIDER
viewfunction CURVE_ADDRESS_PROVIDER() view returns (address)
feeCollector
viewfunction feeCollector() view returns (address)
governor
viewfunction governor() view returns (address)
isReservedToken
viewfunction isReservedToken(address token_) view returns (bool)
keepers
viewfunction keepers() view returns (address[])
lpBalanceHere
viewfunction lpBalanceHere() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
pool
viewfunction pool() view returns (address)
receiptToken
viewfunction receiptToken() view returns (address)
swapper
viewfunction swapper() view returns (address)
token
viewfunction token() view returns (address)
tvl
viewfunction tvl() view returns (uint256)
VERSION
viewfunction VERSION() view returns (string)
addKeeper
nonpayablefunction addKeeper(address _keeperAddress)
approveToken
nonpayablefunction approveToken(uint256 _approvalAmount)
claimAndSwapRewards
nonpayablefunction claimAndSwapRewards(uint256 _minAmountOut) returns (uint256 _amountOut)
migrate
nonpayablefunction migrate(address _newStrategy)
rebalance
nonpayablefunction rebalance() returns (uint256 _profit, uint256 _loss, uint256 _payback)
removeKeeper
nonpayablefunction removeKeeper(address _keeperAddress)
reportEarning
nonpayablefunction reportEarning() returns (uint256 _profit, uint256 _loss, uint256 _payback)
reportLoss
nonpayablefunction reportLoss(uint256 lossAmount_)
swapExactInput
nonpayablefunction swapExactInput(uint256 amountIn_, uint256 minAmountOut_, address[9] route_, uint256[3][4] params_, address[4] pools_) returns (uint256 _amountOut)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
withdrawAndReportEarning
nonpayablefunction withdrawAndReportEarning(uint256 lpToBurn_, uint256 minDolaOut_, uint256 minFraxPyusdOut_, uint256 minFraxOut_)
withdrawFromCurve
nonpayablefunction withdrawFromCurve(uint256 lpToBurn_, uint256 minDolaOut_, uint256 minFraxPyusdOut_, uint256 minFraxOut_) returns (uint256 _dolaOut, uint256 _fraxPyusdOut, uint256 _fraxOut)
events
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162003d8c38038062003d8c83398101604081905262000034916200038a565b828273ef484de8c07b6e2d732a92b5f78e81b38f99f95e6001600160a01b038316620000a75760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000ff5760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016200009e565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200015d57600080fd5b505afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000198919062000494565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001df620001c93390565b60036200024360201b620022cd1790919060201c565b620002215760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b60448201526064016200009e565b505081516200023991506005906020840190620002b5565b50505050620004f8565b60006200025a836001600160a01b03841662000263565b90505b92915050565b6000818152600183016020526040812054620002ac575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200025d565b5060006200025d565b828054620002c390620004bb565b90600052602060002090601f016020900481019282620002e7576000855562000332565b82601f106200030257805160ff191683800117855562000332565b8280016001018555821562000332579182015b828111156200033257825182559160200191906001019062000315565b506200034092915062000344565b5090565b5b8082111562000340576000815560010162000345565b6001600160a01b03811681146200037157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215620003a057600080fd5b8351620003ad816200035b565b80935050602080850151620003c2816200035b565b60408601519093506001600160401b0380821115620003e057600080fd5b818701915087601f830112620003f557600080fd5b8151818111156200040a576200040a62000374565b604051601f8201601f19908116603f0116810190838211818310171562000435576200043562000374565b816040528281528a868487010111156200044e57600080fd5b600093505b8284101562000472578484018601518185018701529285019262000453565b82841115620004845760008684830101525b8096505050505050509250925092565b600060208284031215620004a757600080fd5b8151620004b4816200035b565b9392505050565b600181811c90821680620004d057607f821691505b60208210811415620004f257634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161375d6200062f6000396000818161026801528181610774015281816109dd01528181610d8501528181610ecc01528181610f9c015281816110440152818161141a015281816114e7015281816117120152818161191001528181611b0001528181611c0401528181611cee0152818161272d01528181612ac90152612c2d015260008181610310015281816103f301528181610463015281816105a301528181610625015281816108650152818161090001528181610b6701528181610e1201528181610eaa01528181610f1301528181610fcf0152818161169601528181611e0501528181611ed801528181611f5a01528181611fe4015281816121b2015281816121f00152818161270b0152818161277401528181612a0801528181612b660152612cae015261375d6000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637d7c2a1c1161010f578063d3033c39116100a2578063ec78e83211610071578063ec78e832146104a2578063ee330ee3146104b5578063fc0c546a146104c8578063ffa1ad74146104d957600080fd5b8063d3033c391461044e578063d8dfeb4514610461578063ddd6d26014610487578063e5328e061461049a57600080fd5b8063b2016bd4116100de578063b2016bd4146103ee578063c415b95c14610415578063ce5494bb14610428578063d2c35ce81461043b57600080fd5b80637d7c2a1c146103a15780637f44579b146103a9578063951dc22c146103c4578063a3f4df7e146103d957600080fd5b80633ac9fc1111610187578063509bf00e11610156578063509bf00e14610350578063527a71e114610363578063795dae66146103915780637a75cc4c1461039957600080fd5b80633ac9fc11146102c35780633d9bb179146102d65780634032b72b146102ed578063440d72481461030057600080fd5b806316f0115b116101c357806316f0115b146102635780632b3297f91461028a5780632bb4186c1461029d5780632e1a7d4d146102b057600080fd5b806301681a62146101f55780630c340a241461020a5780631026013a1461022f57806314ae9f2e14610250575b600080fd5b610208610203366004613320565b6104fd565b005b610212610770565b6040516001600160a01b0390911681526020015b60405180910390f35b61024261023d36600461333d565b610808565b604051908152602001610226565b61020861025e366004613320565b6109db565b6102127f000000000000000000000000000000000000000000000000000000000000000081565b600254610212906001600160a01b031681565b6102426102ab366004613356565b610b20565b6102086102be36600461333d565b610d82565b6102086102d136600461333d565b610ff6565b6102126f22d53366457f9d5e68ec105046fc438381565b6102086102fb366004613320565b611042565b61034061030e366004613320565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610226565b61020861035e3660046133c7565b611187565b6103766103713660046133c7565b6111ea565b60408051938452602084019290925290820152606001610226565b61024261124e565b6103766112d3565b61037661132d565b61021273ef484de8c07b6e2d732a92b5f78e81b38f99f95e81565b6103cc61137d565b60405161022691906133f9565b6103e1611389565b6040516102269190613472565b6102127f000000000000000000000000000000000000000000000000000000000000000081565b600154610212906001600160a01b031681565b610208610436366004613320565b611417565b610208610449366004613320565b611710565b61020861045c366004613320565b61190e565b7f0000000000000000000000000000000000000000000000000000000000000000610212565b61020861049536600461333d565b611afe565b610242611d56565b600054610212906001600160a01b031681565b6102426104c33660046134a5565b611e91565b6000546001600160a01b0316610212565b6103e1604051806040016040528060058152602001640352e322e360dc1b81525081565b61050a335b6003906122eb565b6105495760405162461bcd60e51b8152602060048201526016602482015260008051602061370883398151915260448201526064015b60405180910390fd5b6001546001600160a01b03166105a15760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d73657400000000000000000000006044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156106235760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c006044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690821614156106975760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b6044820152606401610540565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156106d5576001546106d2906001600160a01b03164761230d565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561071757600080fd5b505afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906134d1565b60015490915061076c906001600160a01b0384811691168361242b565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080391906134ea565b905090565b600061081333610502565b61084d5760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156108af57600080fd5b505afa1580156108c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e791906134d1565b90506040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561094a57600080fd5b505afa15801561095e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098291906134d1565b61098c919061351d565b9150828210156109d55760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b6044820152606401610540565b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6c91906134ea565b6001600160a01b0316336001600160a01b031614610ac95760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b6044820152606401610540565b610ad46003826124a3565b6106d25760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c65640000000000000000000000006044820152606401610540565b6000610b2b33610502565b610b655760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b9c6020860186613320565b6001600160a01b03161415610bf35760405162461bcd60e51b815260206004820152601560248201527f746f6b656e496e2d69732d636f6c6c61746572616c00000000000000000000006044820152606401610540565b600060085b6000868260098110610c0c57610c0c613534565b602002016020810190610c1f9190613320565b6001600160a01b031614610c5957858160098110610c3f57610c3f613534565b602002016020810190610c529190613320565b9150610c69565b610c628161354a565b9050610bf8565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610cac57600080fd5b505afa158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce491906134d1565b9050610cf388888888886124b8565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b158015610d3457600080fd5b505afa158015610d48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6c91906134d1565b610d76919061351d565b98975050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610dfa5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c000000000000006044820152606401610540565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610e5c57600080fd5b505afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9491906134d1565b9050818110610ef15761076c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000008461242b565b610efe6106d2828461351d565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610f5d57600080fd5b505afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9591906134d1565b905061076c7f0000000000000000000000000000000000000000000000000000000000000000610fc584846126e8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016919061242b565b610fff33610502565b6110395760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b6106d2816126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d391906134ea565b6001600160a01b0316336001600160a01b0316146111305760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b6044820152606401610540565b61113b6003826122cd565b6106d25760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c65640000000000000000000000000000006044820152606401610540565b61119033610502565b6111ca5760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b6111d684848484612752565b5050506111e1612aa3565b50505050505050565b600080806111f733610502565b6112315760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b61123d87878787612752565b9250925092505b9450945094915050565b6040516370a0823160e01b815230600482015260009073ef484de8c07b6e2d732a92b5f78e81b38f99f95e906370a082319060240160206040518083038186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080391906134d1565b600080806112e033610502565b61131a5760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b611322612aa3565b925092509250909192565b6000808061133a33610502565b6113745760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b60008080611322565b60606108036003612c98565b6005805461139690613561565b80601f01602080910402602001604051908101604052809291908181526020018280546113c290613561565b801561140f5780601f106113e45761010080835404028352916020019161140f565b820191906000526020600020905b8154815290600101906020018083116113f257829003601f168201915b505050505081565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461148f5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c000000000000006044820152606401610540565b6001600160a01b0381166114e55760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f000000006044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154857600080fd5b505afa15801561155c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158091906134ea565b6001600160a01b0316146115d65760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d7374726174656779000000000000000000006044820152606401610540565b6115df81612cac565b6000546040516370a0823160e01b81523060048201526116739183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166091906134d1565b6000546001600160a01b0316919061242b565b6040516370a0823160e01b81523060048201526106d29082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc591906134d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561176957600080fd5b505afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a191906134ea565b6001600160a01b0316336001600160a01b0316146117fe5760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b6044820152606401610540565b6001600160a01b0381166118545760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f0000006044820152606401610540565b6001546001600160a01b03828116911614156118b25760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d6500000000000000000000006044820152606401610540565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561196757600080fd5b505afa15801561197b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199f91906134ea565b6001600160a01b0316336001600160a01b0316146119fc5760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b6044820152606401610540565b6001600160a01b038116611a525760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f0000000000000000006044820152606401610540565b6002546001600160a01b0382811691161415611aa25760405162461bcd60e51b815260206004820152600f60248201526e737761707065722d69732d73616d6560881b6044820152606401610540565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5757600080fd5b505afa158015611b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8f91906134ea565b6001600160a01b0316336001600160a01b031614611bec5760405162461bcd60e51b815260206004820152601a60248201527931b0b63632b916b4b996b737ba16ba343296b3b7bb32b93737b960311b6044820152606401610540565b604051636a9eee1360e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d53ddc269060240160206040518083038186803b158015611c4e57600080fd5b505afa158015611c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8691906134d1565b905080821115611cd85760405162461bcd60e51b815260206004820152601860248201527f6c6f73732d69732d6869676865722d7468616e2d6465627400000000000000006044820152606401610540565b6040516306eeb69360e51b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ddd6d26090602401600060405180830381600087803b158015611d3a57600080fd5b505af1158015611d4e573d6000803e3d6000fd5b505050505050565b600073ef484de8c07b6e2d732a92b5f78e81b38f99f95e63cc2b27d7611d7a61124e565b6040516001600160e01b031960e084901b16815260048101919091526001602482015260440160206040518083038186803b158015611db857600080fd5b505afa158015611dcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df091906134d1565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611e4f57600080fd5b505afa158015611e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8791906134d1565b6108039190613596565b6000611e9c33610502565b611ed65760405162461bcd60e51b815260206004820152601660248201526000805160206137088339815191526044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415611f585760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c006044820152606401610540565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169084161415611fcc5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b6044820152606401610540565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561202e57600080fd5b505afa158015612042573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206691906134d1565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b1580156120ab57600080fd5b505afa1580156120bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e391906134d1565b905080156121d957600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b15801561213657600080fd5b505afa15801561214a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216e91906134d1565b8111156121ac57600254612190906001600160a01b0387811691166000612d9d565b6002546121ac906001600160a01b038781169116600019612d9d565b6121d7857f000000000000000000000000000000000000000000000000000000000000000083612ec8565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561223a57600080fd5b505afa15801561224e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227291906134d1565b61227c919061351d565b9250838310156122c55760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b6044820152606401610540565b505092915050565b60006122e2836001600160a01b038416612f6c565b90505b92915050565b6001600160a01b038116600090815260018301602052604081205415156122e2565b8047101561235d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610540565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146123aa576040519150601f19603f3d011682016040523d82523d6000602084013e6123af565b606091505b50509050806124265760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610540565b505050565b6040516001600160a01b03831660248201526044810182905261242690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152612fbb565b60006122e2836001600160a01b038416613093565b60405163124fd3dd60e21b8152600260048201526000906f22d53366457f9d5e68ec105046fc43839063493f4f749060240160206040518083038186803b15801561250257600080fd5b505afa158015612516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253a91906134ea565b9050600061254b6020860186613320565b60405163095ea7b360e01b81526001600160a01b038481166004830152600060248301529192509082169063095ea7b390604401602060405180830381600087803b15801561259957600080fd5b505af11580156125ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d191906135ae565b5060405163095ea7b360e01b81526001600160a01b0383811660048301526024820189905282169063095ea7b390604401602060405180830381600087803b15801561261c57600080fd5b505af1158015612630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265491906135ae565b50604051634eda7bd560e11b81526001600160a01b03831690639db4f7aa9060009061268c90899089908d908d908b90600401613606565b6020604051808303818588803b1580156126a557600080fd5b505af11580156126b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906126de91906134d1565b5050505050505050565b60008183106126f757816122e2565b5090919050565b6106d26001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612d9d565b600080808615611244576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156127be57600080fd5b505afa1580156127d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f691906134d1565b90506128006132ed565b878152602081018790526040516316cd8e2760e21b815273ef484de8c07b6e2d732a92b5f78e81b38f99f95e90635b36389c90612843908c90859060040161369d565b600060405180830381600087803b15801561285d57600080fd5b505af1158015612871573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015273865377367054516e17014ccded1e7d814edc9ce492506370a08231915060240160206040518083038186803b1580156128bf57600080fd5b505afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f791906134d1565b6040516370a0823160e01b815230600482015290955073a5588f7cdf560811710a2d82d3c9c99769db1dcb906370a082319060240160206040518083038186803b15801561294457600080fd5b505afa158015612958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297c91906134d1565b604051630d2680e960e11b815260048101829052600060248201526044810188905290945073a5588f7cdf560811710a2d82d3c9c99769db1dcb90631a4d01d290606401600060405180830381600087803b1580156129da57600080fd5b505af11580156129ee573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528492507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a082319060240160206040518083038186803b158015612a5357600080fd5b505afa158015612a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8b91906134d1565b612a95919061351d565b925050509450945094915050565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b158015612b0b57600080fd5b505afa158015612b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4391906134d1565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015612ba857600080fd5b505afa158015612bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be091906134d1565b9050612bec81836126e8565b9250828111612bfc576000612c06565b612c06838261351d565b6040516302df682360e11b81526004810182905260248101869052604481018590529095507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906305bed04690606401600060405180830381600087803b158015612c7957600080fd5b505af1158015612c8d573d6000803e3d6000fd5b505050505050909192565b60606000612ca583613186565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612d0f57600080fd5b505afa158015612d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4791906134ea565b6001600160a01b0316146106d25760405162461bcd60e51b815260206004820152601660248201527f77726f6e672d636f6c6c61746572616c2d746f6b656e000000000000000000006044820152606401610540565b801580612e265750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015612dec57600080fd5b505afa158015612e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2491906134d1565b155b612e985760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610540565b6040516001600160a01b03831660248201526044810182905261242690849063095ea7b360e01b90606401612457565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b158015612f2c57600080fd5b505af1158015612f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6491906134d1565b949350505050565b6000818152600183016020526040812054612fb3575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556122e5565b5060006122e5565b6000613010826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166131e29092919063ffffffff16565b805190915015612426578080602001905181019061302e91906135ae565b6124265760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610540565b50505050565b6000818152600183016020526040812054801561317c5760006130b760018361351d565b85549091506000906130cb9060019061351d565b90508181146131305760008660000182815481106130eb576130eb613534565b906000526020600020015490508087600001848154811061310e5761310e613534565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613141576131416136d5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122e5565b60009150506122e5565b6060816000018054806020026020016040519081016040528092919081815260200182805480156131d657602002820191906000526020600020905b8154815260200190600101908083116131c2575b50505050509050919050565b6060612f64848460008585843b61323b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610540565b600080866001600160a01b0316858760405161325791906136eb565b60006040518083038185875af1925050503d8060008114613294576040519150601f19603f3d011682016040523d82523d6000602084013e613299565b606091505b50915091506132a98282866132b4565b979650505050505050565b606083156132c3575081612ca5565b8251156132d35782518084602001fd5b8160405162461bcd60e51b81526004016105409190613472565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146106d257600080fd5b60006020828403121561333257600080fd5b8135612ca58161330b565b60006020828403121561334f57600080fd5b5035919050565b600080600080600061036080878903121561337057600080fd5b863595506020870135945061016087018881111561338d57600080fd5b6040880194506102e08801898111156133a557600080fd5b81945089838a0111156133b757600080fd5b8093505050509295509295909350565b600080600080608085870312156133dd57600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252825182820181905260009190848201906040850190845b8181101561343a5783516001600160a01b031683529284019291840191600101613415565b50909695505050505050565b60005b83811015613461578181015183820152602001613449565b8381111561308d5750506000910152565b6020815260008251806020840152613491816040850160208701613446565b601f01601f19169190910160400192915050565b600080604083850312156134b857600080fd5b82356134c38161330b565b946020939093013593505050565b6000602082840312156134e357600080fd5b5051919050565b6000602082840312156134fc57600080fd5b8151612ca58161330b565b634e487b7160e01b600052601160045260246000fd5b60008282101561352f5761352f613507565b500390565b634e487b7160e01b600052603260045260246000fd5b60008161355957613559613507565b506000190190565b600181811c9082168061357557607f821691505b602082108114156109d557634e487b7160e01b600052602260045260246000fd5b600082198211156135a9576135a9613507565b500190565b6000602082840312156135c057600080fd5b81518015158114612ca557600080fd5b8060005b600481101561308d5781356135e88161330b565b6001600160a01b0316845260209384019391909101906001016135d4565b610360810181876000805b60098110156136435782356136258161330b565b6001600160a01b031684526020938401939290920191600101613611565b5061012085019250889150805b600481101561367357606080848637938401828152939290920191600101613650565b50505050846102a0830152836102c08301526136936102e08301846135d0565b9695505050505050565b8281526060810160208083018460005b60028110156136ca578151835291830191908301906001016136ad565b505050509392505050565b634e487b7160e01b600052603160045260246000fd5b600082516136fd818460208701613446565b919091019291505056fe63616c6c65722d69732d6e6f742d612d6b656570657200000000000000000000a2646970667358221220bc716e91df5ed07f20d443977cd4337ac004e0799c79aeee91bb499a02af306b64736f6c63430008090033000000000000000000000000c14900dfb1aa54e7674e1ecf9ce02b3b35157ba5000000000000000000000000229f19942612a8dbdec3643cb23f88685ccd56a500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000022436f6e766578466f72467261785f446f6c614672617850797573645f465241585f32000000000000000000000000000000000000000000000000000000000000