4 txs
5 calls
constructor
constructor(address _management, address _performanceFeeRecipient, address _keeper, address _sms, address _lendingPool, address _router, address _base)
functions
base
viewfunction base() view returns (address)
deployments
viewfunction deployments(address) view returns (address)
isDeployedStrategy
viewfunction isDeployedStrategy(address _strategy) view returns (bool)
keeper
viewfunction keeper() view returns (address)
lendingPool
viewfunction lendingPool() view returns (address)
management
viewfunction management() view returns (address)
performanceFeeRecipient
viewfunction performanceFeeRecipient() view returns (address)
router
viewfunction router() view returns (address)
sms
viewfunction sms() view returns (address)
newAaveV3Lender
nonpayablefunction newAaveV3Lender(address _asset) returns (address)
setAddresses
nonpayablefunction setAddresses(address _management, address _performanceFeeRecipient, address _keeper)
events
NewAaveV3Lender
event NewAaveV3Lender(address indexed strategy, address indexed asset)
errors
AlreadyDeployed
error AlreadyDeployed(address _strategy)
creation bytecode
0x61010060405234801561001157600080fd5b506040516200493338038062004933833981016040819052610032916100a8565b600080546001600160a01b03199081166001600160a01b03998a1617909155600180548216978916979097179096556002805490961694871694909417909455908416608052831660a05290821660c0521660e05261012e565b80516001600160a01b03811681146100a357600080fd5b919050565b600080600080600080600060e0888a0312156100c357600080fd5b6100cc8861008c565b96506100da6020890161008c565b95506100e86040890161008c565b94506100f66060890161008c565b93506101046080890161008c565b925061011260a0890161008c565b915061012060c0890161008c565b905092959891949750929550565b60805160a05160c05160e0516147af620001846000396000818161014c0152610487015260008181610217015261046601526000818161018801526104450152600081816101db015261061c01526147af6000f3fe60806040523480156200001157600080fd5b5060043610620000b75760003560e01c8063a59a9973116200007a578063a59a99731462000182578063a840332714620001aa578063aced166114620001c1578063e436a60b14620001d5578063ed27f7c914620001fd578063f887ea40146200021157600080fd5b80630d00442414620000bc578063316b373914620000e8578063363bf964146200012d5780635001f3b5146200014657806388a8d602146200016e575b600080fd5b620000d3620000cd366004620007d4565b62000239565b60405190151581526020015b60405180910390f35b62000114620000f9366004620007d4565b6003602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620000df565b620001446200013e366004620007fb565b620002c9565b005b620001147f000000000000000000000000000000000000000000000000000000000000000081565b60005462000114906001600160a01b031681565b620001147f000000000000000000000000000000000000000000000000000000000000000081565b62000114620001bb366004620007d4565b62000356565b60025462000114906001600160a01b031681565b620001147f000000000000000000000000000000000000000000000000000000000000000081565b60015462000114906001600160a01b031681565b620001147f000000000000000000000000000000000000000000000000000000000000000081565b600080826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a191906200084d565b6001600160a01b03908116600090815260036020526040902054811693169290921492915050565b6000546001600160a01b03163314620003175760405162461bcd60e51b815260206004820152600b60248201526a085b585b9859d95b595b9d60aa1b60448201526064015b60405180910390fd5b600080546001600160a01b039485166001600160a01b031991821617909155600180549385169382169390931790925560028054919093169116179055565b6001600160a01b0381811660009081526003602052604081205490911615620003b1576001600160a01b03828116600090815260036020526040908190205490516329ab51bf60e01b8152911660048201526024016200030e565b6000826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620003f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200041c9190810190620008a9565b6040516020016200042e919062000962565b6040516020818303038152906040529050600083827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051620004b490620007ad565b620004c4959493929190620009a5565b604051809103906000f080158015620004e1573d6000803e3d6000fd5b5060015460405163352f8d5160e11b81526001600160a01b039182166004820152919250821690636a5f1aa290602401600060405180830381600087803b1580156200052c57600080fd5b505af115801562000541573d6000803e3d6000fd5b5050600254604051633a43a3f360e11b81526001600160a01b039182166004820152908416925063748747e69150602401600060405180830381600087803b1580156200058d57600080fd5b505af1158015620005a2573d6000803e3d6000fd5b5050600054604051630f629b7960e41b81526001600160a01b039182166004820152908416925063f629b7909150602401600060405180830381600087803b158015620005ee57600080fd5b505af115801562000603573d6000803e3d6000fd5b5050604051630d768ce560e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152841692506335da33949150602401600060405180830381600087803b1580156200066b57600080fd5b505af115801562000680573d6000803e3d6000fd5b505060405163aa290e6d60e01b81526101f460048201526001600160a01b038416925063aa290e6d9150602401600060405180830381600087803b158015620006c857600080fd5b505af1158015620006dd573d6000803e3d6000fd5b5050604051636fb4d91560e11b81526203f48060048201526001600160a01b038416925063df69b22a9150602401600060405180830381600087803b1580156200072657600080fd5b505af11580156200073b573d6000803e3d6000fd5b50506040516001600160a01b038088169350841691507f0af7b0321568b9f79652baf50d0aa93f58f651114afc2d87fece680a6bbddd4990600090a36001600160a01b03938416600090815260036020526040902080546001600160a01b031916948216949094179093555090919050565b613d798062000a0183390190565b6001600160a01b0381168114620007d157600080fd5b50565b600060208284031215620007e757600080fd5b8135620007f481620007bb565b9392505050565b6000806000606084860312156200081157600080fd5b83356200081e81620007bb565b925060208401356200083081620007bb565b915060408401356200084281620007bb565b809150509250925092565b6000602082840312156200086057600080fd5b8151620007f481620007bb565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620008a057818101518382015260200162000886565b50506000910152565b600060208284031215620008bc57600080fd5b815167ffffffffffffffff80821115620008d557600080fd5b818401915084601f830112620008ea57600080fd5b815181811115620008ff57620008ff6200086d565b604051601f8201601f19908116603f011681019083821181831017156200092a576200092a6200086d565b816040528281528760208487010111156200094457600080fd5b6200095783602083016020880162000883565b979650505050505050565b67020b0bb32902b19960c51b8152600082516200098781600885016020870162000883565b66102632b73232b960c91b6008939091019283015250600f01919050565b600060018060a01b03808816835260a0602084015286518060a0850152620009d58160c0860160208b0162000883565b95811660408401529384166060830152509116608082015260c0601f909201601f191601019291505056fe610140604052600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179091556002805490911673e592427a0aece92de3edee1f18e0157c058615641790556004805460ff60b01b1916600160b01b1790553480156200006d57600080fd5b5060405162003d7938038062003d7983398101604081905262000090916200093e565b6001600160a01b0385166080523060a05260405185908590620000f990620000c5908490849033908190819060240162000a59565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b179091526200034d16565b505073254a93feff3beef9ca004e913bb5443754e8ab197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55506001600160a01b0383811660e08190526040516335ea6a7560e01b81529187166004830152906335ea6a75906024016101e060405180830381865afa15801562000181573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a7919062000b22565b61010001516001600160a01b0316610120819052620001f75760405162461bcd60e51b815260206004820152600760248201526610b0aa37b5b2b760c91b60448201526064015b60405180910390fd5b610120516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000239573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025f919062000c66565b60ff1660c08181525050610120516001600160a01b03166375d264136040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d1919062000c8b565b6001600160a01b031661010052620002e8620003e1565b6200031360e0516000196080516001600160a01b03166200047e60201b620011ef179092919060201c565b60008055600280546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790555062000e7d915050565b606060008073254a93feff3beef9ca004e913bb5443754e8ab196001600160a01b03168460405162000380919062000cab565b600060405180830381855af49150503d8060008114620003bd576040519150601f19603f3d011682016040523d82523d6000602084013e620003c2565b606091505b509150915081620003da576040513d806000833e8082fd5b9392505050565b60e051608051604051638381995f60e01b81526001600160a01b039182166004820152600160fc1b929190911690638381995f9060240161022060405180830381865afa15801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d919062000cc9565b51516004805460ff60a01b1916929091161515600160a01b02919091179055565b801580620004fc5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa919062000e2a565b155b620005705760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620001ee565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620005c8918591620005cd16565b505050565b600062000629826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620006ae60201b62001337179092919060201c565b90508051600014806200064d5750808060200190518101906200064d919062000e44565b620005c85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620001ee565b6060620006bf8484600085620006c7565b949350505050565b6060824710156200072a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620001ee565b600080866001600160a01b0316858760405162000748919062000cab565b60006040518083038185875af1925050503d806000811462000787576040519150601f19603f3d011682016040523d82523d6000602084013e6200078c565b606091505b509092509050620007a087838387620007ab565b979650505050505050565b606083156200081f57825160000362000817576001600160a01b0385163b620008175760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001ee565b5081620006bf565b620006bf8383815115620008365781518083602001fd5b8060405162461bcd60e51b8152600401620001ee919062000e68565b6001600160a01b03811681146200086857600080fd5b50565b8051620008788162000852565b919050565b634e487b7160e01b600052604160045260246000fd5b6040516101e081016001600160401b0381118282101715620008b957620008b96200087d565b60405290565b60405161022081016001600160401b0381118282101715620008b957620008b96200087d565b604051601f8201601f191681016001600160401b03811182821017156200091057620009106200087d565b604052919050565b60005b83811015620009355781810151838201526020016200091b565b50506000910152565b600080600080600060a086880312156200095757600080fd5b8551620009648162000852565b60208701519095506001600160401b03808211156200098257600080fd5b818801915088601f8301126200099757600080fd5b815181811115620009ac57620009ac6200087d565b620009c1601f8201601f1916602001620008e5565b9150808252896020828501011115620009d957600080fd5b620009ec81602084016020860162000918565b509450620009ff9050604087016200086b565b925062000a0f606087016200086b565b915062000a1f608087016200086b565b90509295509295909350565b6000815180845262000a4581602086016020860162000918565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a0602084015262000a7d60a084018862000a2b565b9581166040840152938416606083015250911660809091015292915050565b60006020828403121562000aaf57600080fd5b604051602081016001600160401b038111828210171562000ad45762000ad46200087d565b6040529151825250919050565b80516001600160801b03811681146200087857600080fd5b805164ffffffffff811681146200087857600080fd5b805161ffff811681146200087857600080fd5b60006101e0828403121562000b3657600080fd5b62000b4062000893565b62000b4c848462000a9c565b815262000b5c6020840162000ae1565b602082015262000b6f6040840162000ae1565b604082015262000b826060840162000ae1565b606082015262000b956080840162000ae1565b608082015262000ba860a0840162000ae1565b60a082015262000bbb60c0840162000af9565b60c082015262000bce60e0840162000b0f565b60e082015261010062000be38185016200086b565b9082015261012062000bf78482016200086b565b9082015261014062000c0b8482016200086b565b9082015261016062000c1f8482016200086b565b9082015261018062000c3384820162000ae1565b908201526101a062000c4784820162000ae1565b908201526101c062000c5b84820162000ae1565b908201529392505050565b60006020828403121562000c7957600080fd5b815160ff81168114620003da57600080fd5b60006020828403121562000c9e57600080fd5b8151620003da8162000852565b6000825162000cbf81846020870162000918565b9190910192915050565b6000610220828403121562000cdd57600080fd5b62000ce7620008bf565b62000cf3848462000a9c565b815262000d036020840162000ae1565b602082015262000d166040840162000ae1565b604082015262000d296060840162000ae1565b606082015262000d3c6080840162000ae1565b608082015262000d4f60a0840162000ae1565b60a082015262000d6260c0840162000af9565b60c082015262000d7560e0840162000b0f565b60e082015261010062000d8a81850162000af9565b9082015261012062000d9e8482016200086b565b9082015261014062000db28482016200086b565b9082015261016062000dc68482016200086b565b9082015261018062000dda8482016200086b565b908201526101a062000dee84820162000ae1565b908201526101c062000e0284820162000ae1565b908201526101e062000e1684820162000ae1565b9082015261020062000c5b84820162000ae1565b60006020828403121562000e3d57600080fd5b5051919050565b60006020828403121562000e5757600080fd5b81518015158114620003da57600080fd5b602081526000620003da602083018462000a2b565b60805160a05160c05160e0516101005161012051612dcc62000fad6000396000818161045901528181610b3f015281816113e8015281816116660152818161178a01528181611b470152611ca40152600081816103dd0152611ba1015260008181610480015281816105b801528181610723015281816109f70152818161114f015281816113a201528181611616015261185a0152600061154d015260008181610671015281816107af01528181610845015281816108e501528181610f0d0152610fa3015260008181610587015281816106f4015281816109ca01528181610aca01528181610e7c01528181611016015281816111210152818161137a01528181611410015281816116400152818161181e0152818161188d01528181611c690152611dad0152612dcc6000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80635e311fa511610125578063a59a9973116100ad578063d19a3bb81161007c578063d19a3bb8146104e3578063d9aa3a33146104fe578063f3ce280a14610506578063f887ea401461054a578063fde813a81461055d57610211565b8063a59a99731461047b578063a98f9296146104a2578063abf4fde4146104b5578063b8c6f579146104d057610211565b80637b3eb8da116100f45780637b3eb8da146102b15780637d9f6db51461041a57806384d78a381461042d5780639d7fb70c14610441578063a0c1f15e1461045457610211565b80635e311fa5146103b85780636bb65f53146103d85780636c9d273b146103ff578063797bf3431461041257610211565b8063372500ab116101a85780634aca9482116101775780634aca9482146103295780635001f3b51461033c578063503160d9146103675780635d265d3f1461037a5780635d6297b1146103b057610211565b8063372500ab146102d75780633d6cb575146102fb57806346aa2f121461030e57806349317f1d1461032157610211565b806320aa49ae116101e457806320aa49ae1461028b578063227b9f5a1461029e5780632dc6b25a146102b15780632e3ecf2c146102c457610211565b806304bd46291461024c57806318144367146102725780631e17d9671461027b5780632036181414610283575b73254a93feff3beef9ca004e913bb5443754e8ab193660008037600080366000845af43d6000803e808015610245573d6000f35b3d6000fd5b005b61025f61025a3660046123ff565b610570565b6040519081526020015b60405180910390f35b61025f60005481565b61024a61065c565b61025f6106dd565b61024a61029936600461242a565b61079a565b61024a6102ac366004612447565b610830565b61024a6102bf366004612473565b6108c3565b61024a6102d23660046124a8565b6108d0565b6004546102eb90600160a81b900460ff1681565b6040519015158152602001610269565b61024a6103093660046124fb565b61099f565b61025f61031c3660046123ff565b6109b3565b61025f610be6565b61025f6103373660046123ff565b610bfd565b60015461034f906001600160a01b031681565b6040516001600160a01b039091168152602001610269565b61024a6103753660046124fb565b610c6e565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b179052905161026991600091612564565b6102eb610c7f565b61025f6103c63660046123ff565b60056020526000908152604090205481565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b61025f61040d3660046123ff565b610e4c565b61025f610e64565b60045461034f906001600160a01b031681565b6004546102eb90600160b01b900460ff1681565b61024a61044f3660046124fb565b610ef0565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b61034f7f000000000000000000000000000000000000000000000000000000000000000081565b61024a6104b036600461242a565b610ef8565b61034f73e6ab098e8582178a76dc80d55ca304d1dec11ad881565b61024a6104de3660046123ff565b610f8e565b61034f73254a93feff3beef9ca004e913bb5443754e8ab1981565b61024a61110a565b61053661051436600461257f565b600360209081526000928352604080842090915290825290205462ffffff1681565b60405162ffffff9091168152602001610269565b60025461034f906001600160a01b031681565b61024a61056b3660046124fb565b6111de565b6040516335ea6a7560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000918291610633917f0000000000000000000000000000000000000000000000000000000000000000909116906335ea6a75906024016101e060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906126e1565b51516001603c1b16151590565b6106425761063f61134e565b90505b8061064b610e64565b610655919061281a565b9392505050565b60405163d43fdcf760e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d43fdcf79060240160006040518083038186803b1580156106bb57600080fd5b505afa1580156106cf573d6000803e3d6000fd5b505050506106db61143f565b565b6040516335ea6a7560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600091610796917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa15801561076b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078f91906126e1565b515161153a565b5090565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505060048054931515600160b01b0260ff60b01b19909416939093179092555050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b5050506001600160a01b0390921660009081526005602052604090205550565b6108cb61157d565b505050565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b15801561092f57600080fd5b505afa158015610943573d6000803e3d6000fd5b505050506001600160a01b0383811660008181526003602081815260408084209588168452948152848320805462ffffff881662ffffff1991821681179092559282528584209484529390529290208054909216179055505050565b6109a76115c2565b6109b0816115f9565b50565b6040516335ea6a7560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260009182917f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015610a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6391906126e1565b515190506001603c1b8116151580610a845750670200000000000000811615155b15610a925750600092915050565b6000610a9d8261153a565b905080600003610ab257506000199392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3d919061282d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbf919061282d565b610bc9919061281a565b9050808211610bdd57506000949350505050565b90039392505050565b6000610bf06115c2565b610bf8611750565b905090565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c68919061282d565b92915050565b610c766115c2565b6109b081611807565b600046600114610c8f5750600090565b60405163091030c360e01b8152306004820152600090734da27a545c0c5b758a6ba100e3a049001de870f59063091030c3906024016040805180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d049190612846565b5164ffffffffff1690506000819003610d1f57600091505090565b6000734da27a545c0c5b758a6ba100e3a049001de870f56001600160a01b031663616e0bf96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d97919061282d565b90506000734da27a545c0c5b758a6ba100e3a049001de870f56001600160a01b031663359c4a966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e11919061282d565b9050610e1d828461281a565b4210610e425780610e2e838561281a565b610e3890426128af565b1115935050505090565b6000935050505090565b6000610e5661157d565b610c6882611889565b919050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa158015610ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061282d565b6109b06115c2565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505060048054931515600160a81b0260ff60a81b19909416939093179092555050565b6040516320b8029160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906382e00a449060240160006040518083038186803b158015610fed57600080fd5b505afa158015611001573d6000803e3d6000fd5b505050506001600160a01b038116156110e8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316631f1fcd516040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a091906128c2565b6001600160a01b0316146110e85760405162461bcd60e51b815260206004820152600a6024820152691ddc9bdb99c81dd85b9d60b21b60448201526064015b60405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b604051638381995f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600160fc1b917f000000000000000000000000000000000000000000000000000000000000000090911690638381995f9060240161022060405180830381865afa158015611199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bd91906128df565b51516004805460ff60a01b1916929091161515600160a01b02919091179055565b6111e66115c2565b6109b0816109a7565b8015806112695750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611267919061282d565b155b6112d45760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016110df565b6040516001600160a01b0383166024820152604481018290526108cb90849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611955565b60606113468484600085611a2a565b949350505050565b600454600090600160a01b900460ff16156113d1576040516337d83fcb60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636fb07f9690602401610eaf565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401610eaf565b611447610c7f565b61144d57565b6040516370a0823160e01b8152306004820152600090734da27a545c0c5b758a6ba100e3a049001de870f5906370a0823190602401602060405180830381865afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c3919061282d565b905080156109b0576040516301e9a69560e41b815230600482015260248101829052734da27a545c0c5b758a6ba100e3a049001de870f590631e9a6950906044015b600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b5050505050565b6000640fffffffff607483901c166115737f0000000000000000000000000000000000000000000000000000000000000000600a612aff565b6106559082612b0b565b6004546001600160a01b031633146106db5760405162461bcd60e51b815260206004820152600860248201526710b0bab1ba34b7b760c11b60448201526064016110df565b3330146106db5760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064016110df565b6040516370a0823160e01b81523060048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116916369328dec917f0000000000000000000000000000000000000000000000000000000000000000916116d7917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156116ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d1919061282d565b85611b05565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201523060448201526064016020604051808303816000875af1158015611728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174c919061282d565b5050565b600454600090600160a81b900460ff161561176d5761176d611b1b565b611775610e64565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd919061282d565b610bf8919061281a565b60405163617ba03760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201839052306044830152600060648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba03790608401611505565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036118f45760405162461bcd60e51b8152602060048201526005602482015264185cdcd95d60da1b60448201526064016110df565b6118fd82611dee565b6001600160a01b038316600090815260056020526040902054909150811015610e5f5760405162461bcd60e51b815260206004820152600a602482015269746f6f206c6974746c6560b01b60448201526064016110df565b60006119aa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113379092919063ffffffff16565b90508051600014806119cb5750808060200190518101906119cb9190612b22565b6108cb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016110df565b606082471015611a8b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016110df565b600080866001600160a01b03168587604051611aa79190612b3f565b60006040518083038185875af1925050503d8060008114611ae4576040519150601f19603f3d011682016040523d82523d6000602084013e611ae9565b606091505b5091509150611afa87838387611eed565b979650505050505050565b6000818310611b145781610655565b5090919050565b611b2361143f565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611b7957611b79612b5b565b6001600160a01b039283166020918202929092010152604051635fc87b1d60e11b81526000917f0000000000000000000000000000000000000000000000000000000000000000169063bf90f63a90611bd6908590600401612b71565b6000604051808303816000875af1158015611bf5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c1d9190810190612c4d565b509050611c28611f66565b600454600160b01b900460ff1615611c3e575050565b6000805b8251811015611de857828181518110611c5d57611c5d612b5b565b602002602001015191507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480611cd857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611dd857734da27a545c0c5b758a6ba100e3a049001de870f4196001600160a01b03831601611d1957737fc66500c84a76ad7e9c93437bfc5ac33e2ddae991505b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d84919061282d565b6001600160a01b038416600090815260056020526040902054909150811115611dd657611dd4837f000000000000000000000000000000000000000000000000000000000000000083600061204f565b505b505b611de181612d12565b9050611c42565b50505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa158015611e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5b919061282d565b90508015611e7d57600454611e7d906001600160a01b038581169116836122ee565b600480546040516370a0823160e01b81526001600160a01b03918216928101929092528416906370a0823190602401602060405180830381865afa158015611ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610655919061282d565b60608315611f5c578251600003611f55576001600160a01b0385163b611f555760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016110df565b5081611346565b611346838361231e565b46600114611f7057565b6040516370a0823160e01b8152306004820152600090734da27a545c0c5b758a6ba100e3a049001de870f5906370a0823190602401602060405180830381865afa158015611fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe6919061282d565b11156106db57734da27a545c0c5b758a6ba100e3a049001de870f56001600160a01b031663787a08a66040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561203b57600080fd5b505af1158015611de8573d6000803e3d6000fd5b6000805483111561134657600254612071906001600160a01b03168685612348565b6001546001600160a01b038681169116148061209a57506001546001600160a01b038581169116145b156121b45760408051610100810182526001600160a01b0387811680835287821660208085018281526000938452600382528684209284529190528482205462ffffff9081168587019081523060608701908152426080880190815260a088018c815260c089018c815260e08a019788526002549a5163414bf38960e01b81528a518a16600482015296518916602488015293519094166044860152905186166064850152516084840152905160a48301525160c48201529051821660e48201529192169063414bf38990610104016020604051808303816000875af1158015612188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ac919061282d565b915050611346565b6001600160a01b0385811660009081526003602081815260408084206001548087168652908352818520549383528185208a8716865283529381902054815160608c811b6bffffffffffffffffffffffff199081169583019590955260e895861b6001600160e81b0319908116603484015296811b851660378301529190941b909416604b8401529288901b16604e8201528151604281830301815260025461010283018452606283018281523060828501524260a285015260c2840189905260e2909301879052925163c04b8d5960e01b81529093929092169163c04b8d59916122a191600401612d2b565b6020604051808303816000875af11580156122c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e4919061282d565b9695505050505050565b6040516001600160a01b0383166024820152604481018290526108cb90849063a9059cbb60e01b90606401611300565b81511561232e5781518083602001fd5b8060405162461bcd60e51b81526004016110df9190612d83565b604051636eb1769f60e11b81523060048201526001600160a01b03848116602483015282919084169063dd62ed3e90604401602060405180830381865afa158015612397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bb919061282d565b10156108cb576123d66001600160a01b0383168460006111ef565b6108cb6001600160a01b03831684836111ef565b6001600160a01b03811681146109b057600080fd5b60006020828403121561241157600080fd5b8135610655816123ea565b80151581146109b057600080fd5b60006020828403121561243c57600080fd5b81356106558161241c565b6000806040838503121561245a57600080fd5b8235612465816123ea565b946020939093013593505050565b60008060006060848603121561248857600080fd5b8335612493816123ea565b95602085013595506040909401359392505050565b6000806000606084860312156124bd57600080fd5b83356124c8816123ea565b925060208401356124d8816123ea565b9150604084013562ffffff811681146124f057600080fd5b809150509250925092565b60006020828403121561250d57600080fd5b5035919050565b60005b8381101561252f578181015183820152602001612517565b50506000910152565b60008151808452612550816020860160208601612514565b601f01601f19169290920160200192915050565b82151581526040602082015260006113466040830184612538565b6000806040838503121561259257600080fd5b823561259d816123ea565b915060208301356125ad816123ea565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101e0810167ffffffffffffffff811182821017156125f2576125f26125b8565b60405290565b604051610220810167ffffffffffffffff811182821017156125f2576125f26125b8565b604051601f8201601f1916810167ffffffffffffffff81118282101715612645576126456125b8565b604052919050565b60006020828403121561265f57600080fd5b6040516020810181811067ffffffffffffffff82111715612682576126826125b8565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610e5f57600080fd5b805164ffffffffff81168114610e5f57600080fd5b805161ffff81168114610e5f57600080fd5b8051610e5f816123ea565b60006101e082840312156126f457600080fd5b6126fc6125ce565b612706848461264d565b81526127146020840161268f565b60208201526127256040840161268f565b60408201526127366060840161268f565b60608201526127476080840161268f565b608082015261275860a0840161268f565b60a082015261276960c084016126af565b60c082015261277a60e084016126c4565b60e082015261010061278d8185016126d6565b9082015261012061279f8482016126d6565b908201526101406127b18482016126d6565b908201526101606127c38482016126d6565b908201526101806127d584820161268f565b908201526101a06127e784820161268f565b908201526101c06127f984820161268f565b908201529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c6857610c68612804565b60006020828403121561283f57600080fd5b5051919050565b60006040828403121561285857600080fd5b6040516040810181811067ffffffffffffffff8211171561287b5761287b6125b8565b604052612887836126af565b815260208301516001600160d81b03811681146128a357600080fd5b60208201529392505050565b81810381811115610c6857610c68612804565b6000602082840312156128d457600080fd5b8151610655816123ea565b600061022082840312156128f257600080fd5b6128fa6125f8565b612904848461264d565b81526129126020840161268f565b60208201526129236040840161268f565b60408201526129346060840161268f565b60608201526129456080840161268f565b608082015261295660a0840161268f565b60a082015261296760c084016126af565b60c082015261297860e084016126c4565b60e082015261010061298b8185016126af565b9082015261012061299d8482016126d6565b908201526101406129af8482016126d6565b908201526101606129c18482016126d6565b908201526101806129d38482016126d6565b908201526101a06129e584820161268f565b908201526101c06129f784820161268f565b908201526101e0612a0984820161268f565b908201526102006127f984820161268f565b600181815b80851115612a56578160001904821115612a3c57612a3c612804565b80851615612a4957918102915b93841c9390800290612a20565b509250929050565b600082612a6d57506001610c68565b81612a7a57506000610c68565b8160018114612a905760028114612a9a57612ab6565b6001915050610c68565b60ff841115612aab57612aab612804565b50506001821b610c68565b5060208310610133831016604e8410600b8410161715612ad9575081810a610c68565b612ae38383612a1b565b8060001904821115612af757612af7612804565b029392505050565b60006106558383612a5e565b8082028115828204841417610c6857610c68612804565b600060208284031215612b3457600080fd5b81516106558161241c565b60008251612b51818460208701612514565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015612bb25783516001600160a01b031683529284019291840191600101612b8d565b50909695505050505050565b600067ffffffffffffffff821115612bd857612bd86125b8565b5060051b60200190565b600082601f830112612bf357600080fd5b81516020612c08612c0383612bbe565b61261c565b82815260059290921b84018101918181019086841115612c2757600080fd5b8286015b84811015612c425780518352918301918301612c2b565b509695505050505050565b60008060408385031215612c6057600080fd5b825167ffffffffffffffff80821115612c7857600080fd5b818501915085601f830112612c8c57600080fd5b81516020612c9c612c0383612bbe565b82815260059290921b84018101918181019089841115612cbb57600080fd5b948201945b83861015612ce2578551612cd3816123ea565b82529482019490820190612cc0565b91880151919650909350505080821115612cfb57600080fd5b50612d0885828601612be2565b9150509250929050565b600060018201612d2457612d24612804565b5060010190565b602081526000825160a06020840152612d4760c0840182612538565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b602081526000610655602083018461253856fea264697066735822122078bf059791575ccde7acc63d2600894f115fcfd9067000359b23e6cf861dd15864736f6c63430008120033a264697066735822122077530cc921b2d130ce4bdcadddd55a9957a3cf7c0aef5b7412f169f266a7fe0c64736f6c634300081200330000000000000000000000002d57bb1ad5eab2caacb50e8527eb0ee504f49e480000000000000000000000002d57bb1ad5eab2caacb50e8527eb0ee504f49e4800000000000000000000000052605bbf54845f520a3e94792d019f62407db2f800000000000000000000000001fe3347316b2223961b20689c65eaea71348e93000000000000000000000000a238dd80c259a72e81d7e4664a9801593f98d1c50000000000000000000000002626664c2603336e57b271c5c0b26f421741e4810000000000000000000000004200000000000000000000000000000000000006