6 txs
212 calls
constructor
constructor(address _vault, address _v3Vault, string name_)
functions
apiVersion
purefunction apiVersion() pure returns (string)
balanceOfVault
viewfunction balanceOfVault() view returns (uint256)
balanceOfWant
viewfunction balanceOfWant() view returns (uint256)
baseFeeOracle
viewfunction baseFeeOracle() view returns (address)
creditThreshold
viewfunction creditThreshold() view returns (uint256)
delegatedAssets
viewfunction delegatedAssets() view returns (uint256)
doHealthCheck
viewfunction doHealthCheck() view returns (bool)
emergencyExit
viewfunction emergencyExit() view returns (bool)
estimatedTotalAssets
viewfunction estimatedTotalAssets() view returns (uint256)
ethToWant
viewfunction ethToWant(uint256 _amtInWei) view returns (uint256)
forceHarvestTriggerOnce
viewfunction forceHarvestTriggerOnce() view returns (bool)
harvestTrigger
viewfunction harvestTrigger(uint256 callCostInWei) view returns (bool)
healthCheck
viewfunction healthCheck() view returns (address)
isActive
viewfunction isActive() view returns (bool)
isBaseFeeAcceptable
viewfunction isBaseFeeAcceptable() view returns (bool)
isOriginal
viewfunction isOriginal() view returns (bool)
keeper
viewfunction keeper() view returns (address)
maxLoss
viewfunction maxLoss() view returns (uint256)
maxReportDelay
viewfunction maxReportDelay() view returns (uint256)
metadataURI
viewfunction metadataURI() view returns (string)
minReportDelay
viewfunction minReportDelay() view returns (uint256)
name
viewfunction name() view returns (string)
rewards
viewfunction rewards() view returns (address)
strategist
viewfunction strategist() view returns (address)
tendTrigger
viewfunction tendTrigger(uint256 callCostInWei) view returns (bool)
v3Vault
viewfunction v3Vault() view returns (address)
vault
viewfunction vault() view returns (address)
want
viewfunction want() view returns (address)
clone
nonpayablefunction clone(address _vault, address _strategist, address _rewards, address _keeper) returns (address newStrategy)
clone
nonpayablefunction clone(address _vault) returns (address)
cloneV3Router
nonpayablefunction cloneV3Router(address _vault, address _v3Vault, string name_, address _strategist, address _rewards, address _keeper) returns (address _newV3Router)
harvest
nonpayablefunction harvest()
initialize
nonpayablefunction initialize(address _vault, address _strategist, address _rewards, address _keeper)
initializeThis
nonpayablefunction initializeThis(address _v3Vault, string name_)
migrate
nonpayablefunction migrate(address _newStrategy)
setBaseFeeOracle
nonpayablefunction setBaseFeeOracle(address _baseFeeOracle)
setCreditThreshold
nonpayablefunction setCreditThreshold(uint256 _creditThreshold)
setDoHealthCheck
nonpayablefunction setDoHealthCheck(bool _doHealthCheck)
setEmergencyExit
nonpayablefunction setEmergencyExit()
setForceHarvestTriggerOnce
nonpayablefunction setForceHarvestTriggerOnce(bool _forceHarvestTriggerOnce)
setHealthCheck
nonpayablefunction setHealthCheck(address _healthCheck)
setKeeper
nonpayablefunction setKeeper(address _keeper)
setMaxLoss
nonpayablefunction setMaxLoss(uint256 _newMaxLoss)
setMaxReportDelay
nonpayablefunction setMaxReportDelay(uint256 _delay)
setMetadataURI
nonpayablefunction setMetadataURI(string _metadataURI)
setMinReportDelay
nonpayablefunction setMinReportDelay(uint256 _delay)
setRewards
nonpayablefunction setRewards(address _rewards)
setStrategist
nonpayablefunction setStrategist(address _strategist)
sweep
nonpayablefunction sweep(address _token)
tend
nonpayablefunction tend()
withdraw
nonpayablefunction withdraw(uint256 _amountNeeded) returns (uint256 _loss)
events
Cloned
event Cloned(address indexed clone)
EmergencyExitEnabled
event EmergencyExitEnabled()
ForcedHarvestTrigger
event ForcedHarvestTrigger(bool triggerState)
Harvested
event Harvested(uint256 profit, uint256 loss, uint256 debtPayment, uint256 debtOutstanding)
SetDoHealthCheck
event SetDoHealthCheck(bool)
SetHealthCheck
event SetHealthCheck(address)
UpdatedBaseFeeOracle
event UpdatedBaseFeeOracle(address baseFeeOracle)
UpdatedCreditThreshold
event UpdatedCreditThreshold(uint256 creditThreshold)
UpdatedKeeper
event UpdatedKeeper(address newKeeper)
UpdatedMaxReportDelay
event UpdatedMaxReportDelay(uint256 delay)
UpdatedMetadataURI
event UpdatedMetadataURI(string metadataURI)
UpdatedMinReportDelay
event UpdatedMinReportDelay(uint256 delay)
UpdatedRewards
event UpdatedRewards(address rewards)
UpdatedStrategist
event UpdatedStrategist(address newStrategist)
errors
No errors.
creation bytecode
0x6080604052600b805461ff0019166101001790553480156200002057600080fd5b50604051620040d2380380620040d2833981016040819052620000439162000891565b828062000053813380806200006b565b506200006290508282620002d6565b50505062000cbe565b6006546001600160a01b031615620000ca5760405162461bcd60e51b815260206004820152601c60248201527f537472617465677920616c726561647920696e697469616c697a65640000000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b03861690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a919062000971565b600680546001600160a01b0319166001600160a01b0392909216918217905562000184908560001962000467602090811b62001c0c17901c565b600380546001600160a01b038086166001600160a01b031992831617909255600480548584169083161781556005805485851693169290921790915562278d006008556002546040805163313ce56760e01b81529051919093169263313ce56792818101926020929091908290030181865afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f919062000996565b6200023c90600a62000ac5565b6200024b90620f424062000ad3565b600a556002546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000aed565b5050505050565b600b546201000090046001600160a01b031615620003265760405162461bcd60e51b815260206004820152600c60248201526b085a5b9a5d1a585b1a5e995960a21b6044820152606401620000c1565b600654604080516338d52e0f60e01b815290516001600160a01b03928316928516916338d52e0f9160048083019260209291908290030181865afa15801562000373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000399919062000971565b6001600160a01b031614620003de5760405162461bcd60e51b815260206004820152600a6024820152691ddc9bdb99c81dd85b9d60b21b6044820152606401620000c1565b60065462000405906001600160a01b03168360001962000467602090811b62001c0c17901c565b600b805462010000600160b01b031916620100006001600160a01b038516021790556001600c55600d6200043a828262000b9f565b505060018054610100600160a81b03191674ddcea799ff1699e98edf118e0629a974df7df0120017905550565b801580620004e55750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015620004bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e3919062000996565b155b620005595760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401620000c1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620005b1918591620005b616565b505050565b600062000612826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200069460201b62001d59179092919060201c565b805190915015620005b1578080602001905181019062000633919062000aed565b620005b15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401620000c1565b6060620006a58484600085620006ad565b949350505050565b606082471015620007105760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620000c1565b600080866001600160a01b031685876040516200072e919062000c6b565b60006040518083038185875af1925050503d80600081146200076d576040519150601f19603f3d011682016040523d82523d6000602084013e62000772565b606091505b509092509050620007868783838762000791565b979650505050505050565b6060831562000805578251600003620007fd576001600160a01b0385163b620007fd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620000c1565b5081620006a5565b620006a583838151156200081c5781518083602001fd5b8060405162461bcd60e51b8152600401620000c1919062000c89565b80516001600160a01b03811681146200085057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620008885781810151838201526020016200086e565b50506000910152565b600080600060608486031215620008a757600080fd5b620008b28462000838565b9250620008c26020850162000838565b60408501519092506001600160401b0380821115620008e057600080fd5b818601915086601f830112620008f557600080fd5b8151818111156200090a576200090a62000855565b604051601f8201601f19908116603f0116810190838211818310171562000935576200093562000855565b816040528281528960208487010111156200094f57600080fd5b620009628360208301602088016200086b565b80955050505050509250925092565b6000602082840312156200098457600080fd5b6200098f8262000838565b9392505050565b600060208284031215620009a957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000a07578160001904821115620009eb57620009eb620009b0565b80851615620009f957918102915b93841c9390800290620009cb565b509250929050565b60008262000a205750600162000abf565b8162000a2f5750600062000abf565b816001811462000a48576002811462000a535762000a73565b600191505062000abf565b60ff84111562000a675762000a67620009b0565b50506001821b62000abf565b5060208310610133831016604e8410600b841016171562000a98575081810a62000abf565b62000aa48383620009c6565b806000190482111562000abb5762000abb620009b0565b0290505b92915050565b60006200098f838362000a0f565b808202811582820484141762000abf5762000abf620009b0565b60006020828403121562000b0057600080fd5b815180151581146200098f57600080fd5b600181811c9082168062000b2657607f821691505b60208210810362000b4757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005b157600081815260208120601f850160051c8101602086101562000b765750805b601f850160051c820191505b8181101562000b975782815560010162000b82565b505050505050565b81516001600160401b0381111562000bbb5762000bbb62000855565b62000bd38162000bcc845462000b11565b8462000b4d565b602080601f83116001811462000c0b576000841562000bf25750858301515b600019600386901b1c1916600185901b17855562000b97565b600085815260208120601f198616915b8281101562000c3c5788860151825594840194600190910190840162000c1b565b508582101562000c5b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825162000c7f8184602087016200086b565b9190910192915050565b602081526000825180602084015262000caa8160408501602087016200086b565b601f01601f19169190910160400192915050565b6134048062000cce6000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c8063780022a01161019d578063b252720b116100e9578063ed882c2b116100a2578063f8c8765e1161007c578063f8c8765e14610634578063fbfa77cf14610647578063fcf2d0ad1461065a578063fe2508a61461066257600080fd5b8063ed882c2b14610606578063efbb5cb014610619578063f017c92f1461062157600080fd5b8063b252720b1461059a578063c1a3d44c146105b2578063c7b9d530146105ba578063ce5494bb146105cd578063d0511842146105e0578063ec38a862146105f357600080fd5b80639994673d11610156578063a763cf5b11610130578063a763cf5b1461055e578063aa5480cf1461056b578063ac00ff2614610574578063aced16611461058757600080fd5b80639994673d146105305780639ec5a894146105385780639f450b5a1461054b57600080fd5b8063780022a0146104dc5780638124b78e146104ed578063826cddf6146105005780638e6350e21461051857806395326e2d1461051f57806395e80c501461052757600080fd5b8063258294101161025c5780635641ec03116102155780636718835f116101ef5780636718835f146104975780636f392ce7146104a4578063748747e6146104b6578063750521f5146104c957600080fd5b80635641ec031461046d5780635783fe391461047a578063650d18801461048357600080fd5b806325829410146103ff57806328b7ccf7146104205780632e1a7d4d1461043757806339a172a81461044a578063440368a31461045d5780634641257d1461046557600080fd5b806311bc8245116102ae57806311bc8245146103885780631f1fcd511461039b5780631fe4a686146103ae57806321397853146103c157806322f3e2d4146103d457806324be6628146103ec57600080fd5b806301681a62146102f657806303ee438c1461030b57806306fdde031461032957806307661c9714610331578063080f96b3146103445780630ada4dab14610375575b600080fd5b610309610304366004612bd3565b610675565b005b610313610820565b6040516103209190612c40565b60405180910390f35b6103136108ae565b61030961033f366004612d20565b610940565b600b5461035d906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610320565b610309610383366004612d7e565b610aba565b610309610396366004612bd3565b610b0a565b60065461035d906001600160a01b031681565b60035461035d906001600160a01b031681565b61035d6103cf366004612d9b565b610b76565b6103dc610bf1565b6040519015158152602001610320565b6103096103fa366004612e36565b610c7f565b60408051808201909152600581526418171a171b60d91b6020820152610313565b61042960085481565b604051908152602001610320565b610429610445366004612e36565b610cc9565b610309610458366004612e36565b610d3d565b610309610d7a565b610309610df8565b6009546103dc9060ff1681565b610429600c5481565b6103dc610491366004612e36565b50600090565b6001546103dc9060ff1681565b600b546103dc90610100900460ff1681565b6103096104c4366004612bd3565b6111a6565b6103096104d7366004612e4f565b61120f565b6104296104ea366004612e36565b90565b61035d6104fb366004612bd3565b611262565b60095461035d9061010090046001600160a01b031681565b6000610429565b6103dc611276565b61042960075481565b61042961130b565b60045461035d906001600160a01b031681565b610309610559366004612bd3565b6113e5565b600b546103dc9060ff1681565b610429600a5481565b610309610582366004612d7e565b611443565b60055461035d906001600160a01b031681565b60015461035d9061010090046001600160a01b031681565b610429611493565b6103096105c8366004612bd3565b6114c4565b6103096105db366004612bd3565b61152d565b61035d6105ee366004612ec1565b611658565b610309610601366004612bd3565b611797565b6103dc610614366004612e36565b6118f5565b610429611a45565b61030961062f366004612e36565b611a61565b610309610642366004612ec1565b611a9e565b60025461035d906001600160a01b031681565b610309611ab0565b610309610670366004612e36565b611bcf565b61067d611d70565b6006546001600160a01b03908116908216036106c85760405162461bcd60e51b8152602060048201526005602482015264085dd85b9d60da1b60448201526064015b60405180910390fd5b6002546001600160a01b03908116908216036107105760405162461bcd60e51b81526020600482015260076024820152662173686172657360c81b60448201526064016106bf565b606060005b81518110156107975781818151811061073057610730612f1d565b60200260200101516001600160a01b0316836001600160a01b0316036107855760405162461bcd60e51b815260206004820152600a602482015269085c1c9bdd1958dd195960b21b60448201526064016106bf565b8061078f81612f49565b915050610715565b5061081c6107a3611d95565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190612f62565b6001600160a01b0385169190611e03565b5050565b6000805461082d90612f7b565b80601f016020809104026020016040519081016040528092919081815260200182805461085990612f7b565b80156108a65780601f1061087b576101008083540402835291602001916108a6565b820191906000526020600020905b81548152906001019060200180831161088957829003601f168201915b505050505081565b6060600d80546108bd90612f7b565b80601f01602080910402602001604051908101604052809291908181526020018280546108e990612f7b565b80156109365780601f1061090b57610100808354040283529160200191610936565b820191906000526020600020905b81548152906001019060200180831161091957829003601f168201915b5050505050905090565b600b546201000090046001600160a01b03161561098e5760405162461bcd60e51b815260206004820152600c60248201526b085a5b9a5d1a585b1a5e995960a21b60448201526064016106bf565b600654604080516338d52e0f60e01b815290516001600160a01b03928316928516916338d52e0f9160048083019260209291908290030181865afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190612faf565b6001600160a01b031614610a415760405162461bcd60e51b815260206004820152600a6024820152691ddc9bdb99c81dd85b9d60b21b60448201526064016106bf565b600654610a5a906001600160a01b031683600019611c0c565b600b805462010000600160b01b031916620100006001600160a01b038516021790556001600c55600d610a8d828261301a565b505060018054610100600160a81b03191674ddcea799ff1699e98edf118e0629a974df7df0120017905550565b610ac2611e33565b600b805460ff19168215159081179091556040519081527f6ad28df1b554fa6cacd46ae82fa811748d53798feeb437ddf234bf3083953319906020015b60405180910390a150565b610b12611e33565b6040516001600160a01b03821681527fc8db9c35f716b87af1fbb83f03c78646061931269301fd7ba6dcf189b4cdc2fc9060200160405180910390a1600180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000610b8487858585611658565b6040516307661c9760e01b81529091506001600160a01b038216906307661c9790610bb590899089906004016130da565b600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b505050509695505050505050565b6002546040516339ebf82360e01b815230600482015260009182916001600160a01b03909116906339ebf8239060240161012060405180830381865afa158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6391906130fe565b604001511180610c7a57506000610c78611a45565b115b905090565b610c87611ed5565b612710811115610cc45760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b60448201526064016106bf565b600c55565b6002546000906001600160a01b03163314610d0f5760405162461bcd60e51b8152602060048201526006602482015265085d985d5b1d60d21b60448201526064016106bf565b6000610d1a83611ef1565b600654909350909150610d37906001600160a01b03163383611e03565b50919050565b610d45611ed5565b60078190556040518181527fbb2c369a0355a34b02ab5fce0643150c87e1c8dfe7c918d465591879f57948b190602001610aff565b610d826121b1565b6002546040805163bf3759b560e01b81529051610df6926001600160a01b03169163bf3759b59160048083019260209291908290030181865afa158015610dcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df19190612f62565b612306565b565b610e006121b1565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b031663bf3759b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190612f62565b60095490915060009060ff1615610ed9576000610e976123ca565b905082811015610eb257610eab8184613179565b9350610ec7565b82811115610ec757610ec48382613179565b94505b610ed18484613179565b915050610eea565b610ee2826124c5565b919550935090505b600b805460ff19169055604051600081527f6ad28df1b554fa6cacd46ae82fa811748d53798feeb437ddf234bf30839533199060200160405180910390a16002546040516339ebf82360e01b81523060048201526000916001600160a01b0316906339ebf8239060240161012060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9691906130fe565b60c001516002546040516328766ebf60e21b81526004810188905260248101879052604481018590529192506001600160a01b03169063a1d9bafc906064016020604051808303816000875af1158015610ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110189190612f62565b925061102383612306565b60015460ff168015611044575060015461010090046001600160a01b031615155b156111165760015460405163c70fa00b60e01b815260048101879052602481018690526044810184905260648101859052608481018390526101009091046001600160a01b03169063c70fa00b9060a401602060405180830381865afa1580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d6919061318c565b6111115760405162461bcd60e51b815260206004820152600c60248201526b216865616c7468636865636b60a01b60448201526064016106bf565b611157565b604051600181527ff769f6bf659bbbdabf212d830720ce893eedc57f25ebb8e44edf5b300618a35b9060200160405180910390a16001805460ff1916811790555b6040805186815260208101869052908101839052606081018490527f4c0f499ffe6befa0ca7c826b0916cf87bea98de658013e76938489368d60d5099060800160405180910390a15050505050565b6111ae611ed5565b6001600160a01b0381166111c157600080fd5b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f202ddb4a2e345f6323ed90f8fc8559d770a7abbbeee84dde8aca3351fe715490602001610aff565b611217611ed5565b60006112248284836131a9565b507f300e67d5a415b6d015a471d9c7b95dd58f3e8290af965e84e0f845de2996dda68282604051611256929190613269565b60405180910390a15050565b600061127082333333611658565b92915050565b60095460009061010090046001600160a01b03166112945750600190565b600960019054906101000a90046001600160a01b03166001600160a01b03166334a9e75c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a919061318c565b600b546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa158015611362573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113869190612f62565b6040518263ffffffff1660e01b81526004016113a491815260200190565b602060405180830381865afa1580156113c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190612f62565b6113ed611e33565b60098054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f711be97287cb9ec921887b9be36e148e1a27c6b158547b22b9704ffc54447a0f90602001610aff565b61144b611e33565b60405181151581527ff769f6bf659bbbdabf212d830720ce893eedc57f25ebb8e44edf5b300618a35b9060200160405180910390a16001805460ff1916911515919091179055565b6006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024016113a4565b6114cc611ed5565b6001600160a01b0381166114df57600080fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f352ececae6d7d1e6d26bcf2c549dfd55be1637e9b22dc0cf3b71ddb36097a6b490602001610aff565b6002546001600160a01b0316331461154457600080fd5b6002546040805163fbfa77cf60e01b815290516001600160a01b039283169284169163fbfa77cf9160048083019260209291908290030181865afa158015611590573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190612faf565b6001600160a01b0316146115c757600080fd5b6115d0816125c3565b6006546040516370a0823160e01b81523060048201526116559183916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561161e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116429190612f62565b6006546001600160a01b03169190611e03565b50565b600b54600090610100900460ff1661169b5760405162461bcd60e51b815260206004820152600660248201526521636c6f6e6560d01b60448201526064016106bf565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81523060601b601482018190526e5af43d82803e903d91602b57fd5bf360881b6028830152906037816000f0604051637c643b2f60e11b81526001600160a01b038981166004830152888116602483015287811660448301528681166064830152919450908416915063f8c8765e90608401600060405180830381600087803b15801561174257600080fd5b505af1158015611756573d6000803e3d6000fd5b50506040516001600160a01b03851692507f783540fb4221a3238720dc7038937d0d79982bcf895274aa6ad179f82cf0d53c9150600090a250949350505050565b61179f6126bc565b6001600160a01b0381166117b257600080fd5b6002546004805460405163095ea7b360e01b81526001600160a01b0391821692810192909252600060248301529091169063095ea7b3906044016020604051808303816000875af115801561180b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182f919061318c565b50600480546001600160a01b0319166001600160a01b03838116918217835560025460405163095ea7b360e01b8152938401929092526000196024840152169063095ea7b3906044016020604051808303816000875af1158015611897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bb919061318c565b506040516001600160a01b03821681527fafbb66abf8f3b719799940473a4052a3717cdd8e40fb6c8a3faadab316b1a06990602001610aff565b60006118ff610bf1565b61190b57506000919050565b611913611276565b61191f57506000919050565b600b5460ff161561193257506001919050565b6002546040516339ebf82360e01b81523060048201526000916001600160a01b0316906339ebf8239060240161012060405180830381865afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a091906130fe565b90506008548160a00151426119b59190613179565b106119c35750600192915050565b600a54600260009054906101000a90046001600160a01b03166001600160a01b031663112c1f9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3d9190612f62565b119392505050565b6000611a4f61130b565b611a57611493565b610c7a9190613298565b611a69611ed5565b60088190556040518181527f5430e11864ad7aa9775b07d12657fe52df9aa2ba734355bd8ef8747be2c800c590602001610aff565b611aaa848484846126f5565b50505050565b611ab861293f565b6009805460ff191660011790556002546040516339ebf82360e01b81523060048201526001600160a01b03909116906339ebf8239060240161012060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3291906130fe565b6040015115611ba457600260009054906101000a90046001600160a01b03166001600160a01b031663a0e4af9a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b8b57600080fd5b505af1158015611b9f573d6000803e3d6000fd5b505050505b6040517f97e963041e952738788b9d4871d854d282065b8f90a464928d6528f2e9a4fd0b90600090a1565b611bd7611e33565b600a8190556040518181527fe5ef7832c564a10cbe7b4f1e01ac33a406cb63fcf430a97a9af8616d150af5f390602001610aff565b801580611c865750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c849190612f62565b155b611cf15760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016106bf565b6040516001600160a01b038316602482015260448101829052611d5490849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261295b565b505050565b6060611d688484600085612a2d565b949350505050565b611d78611d95565b6001600160a01b0316336001600160a01b031614610df657600080fd5b60025460408051635aa6e67560e01b815290516000926001600160a01b031691635aa6e6759160048083019260209291908290030181865afa158015611ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190612faf565b6040516001600160a01b038316602482015260448101829052611d5490849063a9059cbb60e01b90606401611d1d565b600260009054906101000a90046001600160a01b03166001600160a01b03166388a8d6026040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eaa9190612faf565b6001600160a01b0316336001600160a01b03161480611ecc5750611d78611d95565b610df657600080fd5b6003546001600160a01b0316331480611ecc5750611d78611d95565b6000806000611efe611493565b90508084111561218957600b54604051636c82bbbf60e11b8152306004820152611ff5918691620100009091046001600160a01b0316906307a2d13a90829063d905777e90602401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190612f62565b6040518263ffffffff1660e01b8152600401611fa591815260200190565b602060405180830381865afa158015611fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe69190612f62565b611ff09084613298565b612b08565b93508084111561218957600b546000906120f8906201000090046001600160a01b0316630a28a4776120278589613179565b6040518263ffffffff1660e01b815260040161204591815260200190565b602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120869190612f62565b600b546040516370a0823160e01b8152306004820152620100009091046001600160a01b0316906370a08231906024015b602060405180830381865afa1580156120d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff09190612f62565b600b54600c54604051639f40a7b360e01b8152600481018490523060248201819052604482015260648101919091529192506201000090046001600160a01b031690639f40a7b3906084016020604051808303816000875af1158015612162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121869190612f62565b50505b612191611493565b9050808411156121a757915050808203816121ab565b8392505b50915091565b6005546001600160a01b03163314806121d457506003546001600160a01b031633145b806121f757506121e2611d95565b6001600160a01b0316336001600160a01b0316145b806122895750600260009054906101000a90046001600160a01b03166001600160a01b031663452a93206040518163ffffffff1660e01b8152600401602060405180830381865afa158015612250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122749190612faf565b6001600160a01b0316336001600160a01b0316145b80611ecc5750600260009054906101000a90046001600160a01b03166001600160a01b03166388a8d6026040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d789190612faf565b6000612348612313611493565b600b5460405163402d267d60e01b8152306004820152620100009091046001600160a01b03169063402d267d906024016120b7565b9050801561081c57600b54604051636e553f6560e01b815260048101839052306024820152620100009091046001600160a01b031690636e553f65906044016020604051808303816000875af11580156123a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d549190612f62565b600b546040516370a0823160e01b81523060048201526000916201000090046001600160a01b031690639f40a7b39082906370a0823190602401602060405180830381865afa158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612f62565b600c546040516001600160e01b031960e085901b16815260048101929092523060248301819052604483015260648201526084016020604051808303816000875af1158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190612f62565b50610c7a611493565b6000806000806124d3611a45565b6002546040516339ebf82360e01b81523060048201529192506000916001600160a01b03909116906339ebf8239060240161012060405180830381865afa158015612522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254691906130fe565b60c0015190508181101561255e578082039450612564565b81810393505b600080612579612574888a613298565b611ef1565b909250905085156125985761258e8187613298565b95508194506125b8565b868111156125af57600096509450925082846125b8565b80870396508794505b505050509193909250565b600b546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126369190612f62565b9050801561081c57600b5460405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052620100009092049091169063a9059cbb906044016020604051808303816000875af1158015612698573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d54919061318c565b6126c4611d95565b6001600160a01b0316336001600160a01b03161480611ecc57506003546001600160a01b03163314610df657600080fd5b6006546001600160a01b03161561274e5760405162461bcd60e51b815260206004820152601c60248201527f537472617465677920616c726561647920696e697469616c697a65640000000060448201526064016106bf565b600280546001600160a01b0319166001600160a01b03861690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa1580156127a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127cb9190612faf565b600680546001600160a01b0319166001600160a01b039290921691821790556127f79085600019611c0c565b600380546001600160a01b038086166001600160a01b031992831617909255600480548584169083161781556005805485851693169290921790915562278d006008556002546040805163313ce56760e01b81529051919093169263313ce56792818101926020929091908290030181865afa15801561287b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289f9190612f62565b6128aa90600a61338f565b6128b790620f424061339b565b600a556002546004805460405163095ea7b360e01b81526001600160a01b039182169281019290925260001960248301529091169063095ea7b3906044016020604051808303816000875af1158015612914573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612938919061318c565b5050505050565b6003546001600160a01b03163314806121f757506121e2611d95565b60006129b0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d599092919063ffffffff16565b805190915015611d5457808060200190518101906129ce919061318c565b611d545760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106bf565b606082471015612a8e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106bf565b600080866001600160a01b03168587604051612aaa91906133b2565b60006040518083038185875af1925050503d8060008114612ae7576040519150601f19603f3d011682016040523d82523d6000602084013e612aec565b606091505b5091509150612afd87838387612b20565b979650505050505050565b6000818310612b175781612b19565b825b9392505050565b60608315612b8f578251600003612b88576001600160a01b0385163b612b885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106bf565b5081611d68565b611d688383815115612ba45781518083602001fd5b8060405162461bcd60e51b81526004016106bf9190612c40565b6001600160a01b038116811461165557600080fd5b600060208284031215612be557600080fd5b8135612b1981612bbe565b60005b83811015612c0b578181015183820152602001612bf3565b50506000910152565b60008151808452612c2c816020860160208601612bf0565b601f01601f19169290920160200192915050565b602081526000612b196020830184612c14565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612c8d57612c8d612c53565b60405290565b600082601f830112612ca457600080fd5b813567ffffffffffffffff80821115612cbf57612cbf612c53565b604051601f8301601f19908116603f01168101908282118183101715612ce757612ce7612c53565b81604052838152866020858801011115612d0057600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215612d3357600080fd5b8235612d3e81612bbe565b9150602083013567ffffffffffffffff811115612d5a57600080fd5b612d6685828601612c93565b9150509250929050565b801515811461165557600080fd5b600060208284031215612d9057600080fd5b8135612b1981612d70565b60008060008060008060c08789031215612db457600080fd5b8635612dbf81612bbe565b95506020870135612dcf81612bbe565b9450604087013567ffffffffffffffff811115612deb57600080fd5b612df789828a01612c93565b9450506060870135612e0881612bbe565b92506080870135612e1881612bbe565b915060a0870135612e2881612bbe565b809150509295509295509295565b600060208284031215612e4857600080fd5b5035919050565b60008060208385031215612e6257600080fd5b823567ffffffffffffffff80821115612e7a57600080fd5b818501915085601f830112612e8e57600080fd5b813581811115612e9d57600080fd5b866020828501011115612eaf57600080fd5b60209290920196919550909350505050565b60008060008060808587031215612ed757600080fd5b8435612ee281612bbe565b93506020850135612ef281612bbe565b92506040850135612f0281612bbe565b91506060850135612f1281612bbe565b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612f5b57612f5b612f33565b5060010190565b600060208284031215612f7457600080fd5b5051919050565b600181811c90821680612f8f57607f821691505b602082108103610d3757634e487b7160e01b600052602260045260246000fd5b600060208284031215612fc157600080fd5b8151612b1981612bbe565b601f821115611d5457600081815260208120601f850160051c81016020861015612ff35750805b601f850160051c820191505b8181101561301257828155600101612fff565b505050505050565b815167ffffffffffffffff81111561303457613034612c53565b613048816130428454612f7b565b84612fcc565b602080601f83116001811461307d57600084156130655750858301515b600019600386901b1c1916600185901b178555613012565b600085815260208120601f198616915b828110156130ac5788860151825594840194600190910190840161308d565b50858210156130ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201819052600090611d6890830184612c14565b6000610120828403121561311157600080fd5b613119612c69565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b8181038181111561127057611270612f33565b60006020828403121561319e57600080fd5b8151612b1981612d70565b67ffffffffffffffff8311156131c1576131c1612c53565b6131d5836131cf8354612f7b565b83612fcc565b6000601f84116001811461320957600085156131f15750838201355b600019600387901b1c1916600186901b178355612938565b600083815260209020601f19861690835b8281101561323a578685013582556020948501946001909201910161321a565b50868210156132575760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b8082018082111561127057611270612f33565b600181815b808511156132e65781600019048211156132cc576132cc612f33565b808516156132d957918102915b93841c93908002906132b0565b509250929050565b6000826132fd57506001611270565b8161330a57506000611270565b8160018114613320576002811461332a57613346565b6001915050611270565b60ff84111561333b5761333b612f33565b50506001821b611270565b5060208310610133831016604e8410600b8410161715613369575081810a611270565b61337383836132ab565b806000190482111561338757613387612f33565b029392505050565b6000612b1983836132ee565b808202811582820484141761127057611270612f33565b600082516133c4818460208701612bf0565b919091019291505056fea26469706673582212204e46242ced6e48e33b87d4fba3a63d886a4d77d2cff660f98b4e5257f850090764736f6c63430008120033000000000000000000000000a258c4606ca8206d8aa700ce2143d7db854d168c000000000000000000000000c56413869c6cdf96496f2b1ef801fedbdfa7ddb000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000010563320574554482d3120526f7574657200000000000000000000000000000000