9 txs
90 calls
constructor
constructor(address asset_, address yearnStakingDelegate_, address curveRouter_) payable
functions
availableDepositLimit
viewfunction availableDepositLimit(address) view returns (uint256)
availableWithdrawLimit
viewfunction availableWithdrawLimit(address) view returns (uint256)
depositedInYSD
viewfunction depositedInYSD(address asset) view returns (uint256)
dYfiRedeemer
viewfunction dYfiRedeemer() view returns (address)
tendTrigger
viewfunction tendTrigger() view returns (bool, bytes)
tokenizedStrategyAddress
viewfunction tokenizedStrategyAddress() view returns (address)
vault
viewfunction vault() view returns (address)
vaultAsset
viewfunction vaultAsset() view returns (address)
yearnStakingDelegate
viewfunction yearnStakingDelegate() view returns (address)
deployFunds
nonpayablefunction deployFunds(uint256 _amount)
freeFunds
nonpayablefunction freeFunds(uint256 _amount)
harvestAndReport
nonpayablefunction harvestAndReport() returns (uint256)
setDYfiRedeemer
nonpayablefunction setDYfiRedeemer(address newDYfiRedeemer)
setHarvestSwapParams
nonpayablefunction setHarvestSwapParams(tuple curveSwapParams)
shutdownWithdraw
nonpayablefunction shutdownWithdraw(uint256 _amount)
tendThis
nonpayablefunction tendThis(uint256 _totalIdle)
events
DYfiRedeemerSet
event DYfiRedeemerSet(address oldDYfiRedeemer, address newDYfiRedeemer)
errors
ExpectedAmountZero
error ExpectedAmountZero()
InvalidFromToken
error InvalidFromToken(address intendedFromToken, address actualFromToken)
InvalidSwapParams
error InvalidSwapParams()
InvalidToToken
error InvalidToToken(address intendedToToken, address actualToToken)
SameAddress
error SameAddress()
ZeroAddress
error ZeroAddress()
creation bytecode
0x610140604052604051620043d4380380620043d483398181016040528101906200002a919062000c53565b828282856040518060400160405280601881526020017f5772617070656420596561726e563320537472617465677900000000000000008152508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250503073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200013c8282333333604051602401620000eb95949392919062000d5a565b6040516020818303038152906040526397073ae660e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506200061760201b60201c565b5073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001dd576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505060008273ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000260573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000286919062000dbe565b905060008173ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620002f557506040513d601f19601f82011682018060405250810190620002f2919062000dbe565b60015b62000374578173ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c919062000dbe565b905062000379565b809150505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003e15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620004195750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000451576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff168152505062000541837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff16620006bb60201b62000a3b179092919060201c565b62000593827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8373ffffffffffffffffffffffffffffffffffffffff16620006bb60201b62000a3b179092919060201c565b620005e5847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff16620006bb60201b62000a3b179092919060201c565b505050506200060e730bc529c00c6401aef6d220be8c6ea1667f6ad93e620007f560201b60201c565b5050506200115a565b606060008073bb51273d6c746910c7c06fe718f30c936170fed073ffffffffffffffffffffffffffffffffffffffff168460405162000657919062000e3d565b600060405180830381855af49150503d806000811462000694576040519150601f19603f3d011682016040523d82523d6000602084013e62000699565b606091505b509150915081620006b1576040513d806000833e8082fd5b8092505050919050565b600063095ea7b360e01b8383604051602401620006da92919062000e71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506200074b84826200084c60201b60201c565b620007ef57620007dc8463095ea7b360e01b8560006040516024016200077392919062000ef8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506200091760201b60201c565b620007ee84826200091760201b60201c565b5b50505050565b6200084960c0517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8373ffffffffffffffffffffffffffffffffffffffff16620006bb60201b62000a3b179092919060201c565b50565b60008060008473ffffffffffffffffffffffffffffffffffffffff168460405162000878919062000e3d565b6000604051808303816000865af19150503d8060008114620008b7576040519150601f19603f3d011682016040523d82523d6000602084013e620008bc565b606091505b5091509150818015620008ee5750600081511480620008ed575080806020019051810190620008ec919062000f62565b5b5b80156200090d57506200090c85620009ec60201b62000b581760201c565b5b9250505092915050565b600062000980826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1662000a0f60201b62000b7b179092919060201c565b9050600081511480620009a5575080806020019051810190620009a4919062000f62565b5b620009e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009de906200100a565b60405180910390fd5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606062000a26848460008562000a2f60201b60201c565b90509392505050565b60608247101562000a77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6e90620010a2565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405162000aa2919062000e3d565b60006040518083038185875af1925050503d806000811462000ae1576040519150601f19603f3d011682016040523d82523d6000602084013e62000ae6565b606091505b509150915062000aff8783838762000b0b60201b60201c565b92505050949350505050565b6060831562000b7b57600083510362000b725762000b2f85620009ec60201b60201c565b62000b71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b689062001114565b60405180910390fd5b5b82905062000b8e565b62000b8d838362000b9660201b60201c565b5b949350505050565b60008251111562000baa5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000be0919062001136565b60405180910390fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c1b8262000bee565b9050919050565b62000c2d8162000c0e565b811462000c3957600080fd5b50565b60008151905062000c4d8162000c22565b92915050565b60008060006060848603121562000c6f5762000c6e62000be9565b5b600062000c7f8682870162000c3c565b935050602062000c928682870162000c3c565b925050604062000ca58682870162000c3c565b9150509250925092565b62000cba8162000c0e565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000cfc57808201518184015260208101905062000cdf565b60008484015250505050565b6000601f19601f8301169050919050565b600062000d268262000cc0565b62000d32818562000ccb565b935062000d4481856020860162000cdc565b62000d4f8162000d08565b840191505092915050565b600060a08201905062000d71600083018862000caf565b818103602083015262000d85818762000d19565b905062000d96604083018662000caf565b62000da5606083018562000caf565b62000db4608083018462000caf565b9695505050505050565b60006020828403121562000dd75762000dd662000be9565b5b600062000de78482850162000c3c565b91505092915050565b600081519050919050565b600081905092915050565b600062000e138262000df0565b62000e1f818562000dfb565b935062000e3181856020860162000cdc565b80840191505092915050565b600062000e4b828462000e06565b915081905092915050565b6000819050919050565b62000e6b8162000e56565b82525050565b600060408201905062000e88600083018562000caf565b62000e97602083018462000e60565b9392505050565b6000819050919050565b600060ff82169050919050565b6000819050919050565b600062000ee062000eda62000ed48462000e9e565b62000eb5565b62000ea8565b9050919050565b62000ef28162000ebf565b82525050565b600060408201905062000f0f600083018562000caf565b62000f1e602083018462000ee7565b9392505050565b60008115159050919050565b62000f3c8162000f25565b811462000f4857600080fd5b50565b60008151905062000f5c8162000f31565b92915050565b60006020828403121562000f7b5762000f7a62000be9565b5b600062000f8b8482850162000f4b565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600062000ff2602a8362000ccb565b915062000fff8262000f94565b604082019050919050565b60006020820190508181036000830152620010258162000fe3565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006200108a60268362000ccb565b915062001097826200102c565b604082019050919050565b60006020820190508181036000830152620010bd816200107b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000620010fc601d8362000ccb565b91506200110982620010c4565b602082019050919050565b600060208201905081810360008301526200112f81620010ed565b9050919050565b6000602082019050818103600083015262001152818462000d19565b905092915050565b60805160a05160c05160e05161010051610120516131ba6200121a60003960008181610a030152610e6001526000818161049501526109ae0152600081816103bb0152818161081d015281816108d60152818161174901526118980152600081816112f901526117dc01526000818161054e015281816108fc0152610fa20152600081816103f701528181610c0801528181610f02015281816110460152818161106c015281816111190152818161149501526114d301526131ba6000f3fe608060405234801561001057600080fd5b50600436106101045760003560e01c806391b5810811610097578063d0ad561b11610066578063d0ad561b146102db578063d19a3bb8146102f7578063fbfa77cf14610315578063fde813a81461033357610105565b806391b58108146102555780639a6eb986146102715780639d7fb70c146102a1578063ab91dedb146102bd57610105565b806349317f1d116100d357806349317f1d146101de5780634ab9e16b146101fc578063503160d91461021a5780635d265d3f1461023657610105565b806304bd4629146101445780630af32db8146101745780633d6cb5751461019257806346aa2f12146101ae57610105565b5b600073bb51273d6c746910c7c06fe718f30c936170fed090503660008037600080366000845af43d6000803e806000811461013f573d6000f35b3d6000fd5b61015e60048036038101906101599190611a59565b61034f565b60405161016b9190611a9f565b60405180910390f35b61017c610379565b6040516101899190611ac9565b60405180910390f35b6101ac60048036038101906101a79190611b10565b6103a3565b005b6101c860048036038101906101c39190611a59565b6103b7565b6040516101d59190611a9f565b60405180910390f35b6101e661047a565b6040516101f39190611a9f565b60405180910390f35b610204610491565b6040516102119190611ac9565b60405180910390f35b610234600480360381019061022f9190611b10565b6104b9565b005b61023e6104cd565b60405161024c929190611be8565b60405180910390f35b61026f600480360381019061026a9190611a59565b61054c565b005b61028b60048036038101906102869190611a59565b610819565b6040516102989190611a9f565b60405180910390f35b6102bb60048036038101906102b69190611b10565b6108be565b005b6102c56108d2565b6040516102d29190611ac9565b60405180910390f35b6102f560048036038101906102f09190611c3d565b6108fa565b005b6102ff6109e7565b60405161030c9190611ac9565b60405180910390f35b61031d6109ff565b60405161032a9190611ac9565b60405180910390f35b61034d60048036038101906103489190611b10565b610a27565b005b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103ab610b93565b6103b481610c03565b50565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346aa2f127f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016104329190611ac9565b602060405180830381865afa15801561044f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104739190611c80565b9050919050565b6000610484610b93565b61048c610c30565b905090565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6104c1610b93565b6104ca81611114565b50565b600060606104d9611141565b63440368a360e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050915091509091565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348e4a649336040518263ffffffff1660e01b81526004016105a59190611ac9565b60006040518083038186803b1580156105bd57600080fd5b505afa1580156105d1573d6000803e3d6000fd5b50505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361063b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c7576040517f367558c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f018b53fd006eed8c62139c29c665bb88dedb897b7ef2eaa5da2778ea1224e3d08183604051610739929190611cad565b60405180910390a1600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107b6576107b58160007341252e8691e964f7de35156b68493bab6797a27573ffffffffffffffffffffffffffffffffffffffff16610a3b9092919063ffffffff16565b5b610815827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7341252e8691e964f7de35156b68493bab6797a27573ffffffffffffffffffffffffffffffffffffffff16610a3b9092919063ffffffff16565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b8152600401610876929190611cad565b602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190611c80565b9050919050565b6108c6610b93565b6108cf81611146565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348e4a649336040518263ffffffff1660e01b81526004016109539190611ac9565b60006040518083038186803b15801561096b57600080fd5b505afa15801561097f573d6000803e3d6000fd5b505050506109d281803603810190610997919061208b565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e7f0000000000000000000000000000000000000000000000000000000000000000611149565b80600081816109e19190612834565b90505050565b73bb51273d6c746910c7c06fe718f30c936170fed081565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b610a2f610b93565b610a388161148e565b50565b600063095ea7b360e01b8383604051602401610a58929190612842565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610ac184826114fd565b610b5257610b478463095ea7b360e01b856000604051602401610ae59291906128b3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115b2565b610b5184826115b2565b5b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060610b8a848460008561167a565b90509392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612939565b60405180910390fd5b565b610c2d7f000000000000000000000000000000000000000000000000000000000000000082611747565b50565b600080730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c809190611ac9565b602060405180830381865afa158015610c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc19190611c80565b90506000811115611041576000610e5a600060405180606001604052908160008201600b806020026040519081016040528092919082600b8015610d50576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d06575b50505050508152602001600b8201600580602002604051908101604052809291906000905b82821015610dce57838260050201600580602002604051908101604052809291908260058015610dba576020028201915b815481526020019060010190808311610da6575b505050505081526020019060010190610d75565b50505050815260200160248201600580602002604051908101604052809291908260058015610e48576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610dfe575b505050505081525050836000306117d8565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e553f6583306040518363ffffffff1660e01b8152600401610eb9929190612959565b6020604051808303816000875af1158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc9190611c80565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e553f6583306040518363ffffffff1660e01b8152600401610f5b929190612959565b6020604051808303816000875af1158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190611c80565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102f91906129ae565b61103d5761103c81611114565b5b5050505b61106a7f0000000000000000000000000000000000000000000000000000000000000000610819565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110c39190611ac9565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190611c80565b61110e91906129db565b91505090565b61113e7f000000000000000000000000000000000000000000000000000000000000000082611896565b50565b600090565b50565b82600001516000600b811061116157611160612a0f565b5b602002015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146111f3578183600001516000600b81106111b1576111b0612a0f565b5b60200201516040517f8a26cfc90000000000000000000000000000000000000000000000000000000081526004016111ea929190611cad565b60405180910390fd5b600080846000015150600b905060005b8181101561128457600073ffffffffffffffffffffffffffffffffffffffff16866000015182600b811061123a57611239612a0f565b5b602002015173ffffffffffffffffffffffffffffffffffffffff16031561128457856000015181600b811061127257611271612a0f565b5b60200201519250806001019050611203565b508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146112f75782826040517f75ab99880000000000000000000000000000000000000000000000000000000081526004016112ee929190611cad565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663637653cb866000015187602001518773ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ac9190612a6a565b600a6113b89190612bca565b89604001516040518563ffffffff1660e01b81526004016113dc9493929190612e8b565b602060405180830381865afa92505050801561141657506040513d601f19601f820116820180604052508101906114139190611c80565b60015b61144c576040517f5037072d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008103611486576040517fe6aa89b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b60006114b97f0000000000000000000000000000000000000000000000000000000000000000610819565b905060008183116114ca57826114cc565b815b90506114f87f000000000000000000000000000000000000000000000000000000000000000082611747565b505050565b60008060008473ffffffffffffffffffffffffffffffffffffffff16846040516115279190612f10565b6000604051808303816000865af19150503d8060008114611564576040519150601f19603f3d011682016040523d82523d6000602084013e611569565b606091505b5091509150818015611597575060008151148061159657508080602001905181019061159591906129ae565b5b5b80156115a857506115a785610b58565b5b9250505092915050565b6000611614826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b7b9092919063ffffffff16565b905060008151148061163657508080602001905181019061163591906129ae565b5b611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90612f99565b60405180910390fd5b505050565b6060824710156116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b69061302b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116e89190612f10565b60006040518083038185875af1925050503d8060008114611725576040519150601f19603f3d011682016040523d82523d6000602084013e61172a565b606091505b509150915061173b87838387611927565b92505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3fef3a383836040518363ffffffff1660e01b81526004016117a2929190612842565b600060405180830381600087803b1580156117bc57600080fd5b505af11580156117d0573d6000803e3d6000fd5b505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c872a3c58660000151876020015187878a60400151886040518763ffffffff1660e01b81526004016118499695949392919061304b565b6020604051808303816000875af1158015611868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188c9190611c80565b9050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166347e7ef2483836040518363ffffffff1660e01b81526004016118f1929190612842565b600060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050505050565b606083156119895760008351036119815761194185610b58565b611980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611977906130fe565b60405180910390fd5b5b829050611994565b611993838361199c565b5b949350505050565b6000825111156119af5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e39190613162565b60405180910390fd5b6000604051905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a26826119fb565b9050919050565b611a3681611a1b565b8114611a4157600080fd5b50565b600081359050611a5381611a2d565b92915050565b600060208284031215611a6f57611a6e6119f6565b5b6000611a7d84828501611a44565b91505092915050565b6000819050919050565b611a9981611a86565b82525050565b6000602082019050611ab46000830184611a90565b92915050565b611ac381611a1b565b82525050565b6000602082019050611ade6000830184611aba565b92915050565b611aed81611a86565b8114611af857600080fd5b50565b600081359050611b0a81611ae4565b92915050565b600060208284031215611b2657611b256119f6565b5b6000611b3484828501611afb565b91505092915050565b60008115159050919050565b611b5281611b3d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b92578082015181840152602081019050611b77565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bba82611b58565b611bc48185611b63565b9350611bd4818560208601611b74565b611bdd81611b9e565b840191505092915050565b6000604082019050611bfd6000830185611b49565b8181036020830152611c0f8184611baf565b90509392505050565b600080fd5b60006105208284031215611c3457611c33611c18565b5b81905092915050565b60006105208284031215611c5457611c536119f6565b5b6000611c6284828501611c1d565b91505092915050565b600081519050611c7a81611ae4565b92915050565b600060208284031215611c9657611c956119f6565b5b6000611ca484828501611c6b565b91505092915050565b6000604082019050611cc26000830185611aba565b611ccf6020830184611aba565b9392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d1382611b9e565b810181811067ffffffffffffffff82111715611d3257611d31611cdb565b5b80604052505050565b6000611d456119ec565b9050611d518282611d0a565b919050565b600080fd5b600067ffffffffffffffff821115611d7657611d75611cdb565b5b602082029050919050565b600080fd5b6000611d99611d9484611d5b565b611d3b565b90508060208402830185811115611db357611db2611d81565b5b835b81811015611ddc5780611dc88882611a44565b845260208401935050602081019050611db5565b5050509392505050565b600082601f830112611dfb57611dfa611d56565b5b600b611e08848285611d86565b91505092915050565b600067ffffffffffffffff821115611e2c57611e2b611cdb565b5b602082029050919050565b600067ffffffffffffffff821115611e5257611e51611cdb565b5b602082029050919050565b6000611e70611e6b84611e37565b611d3b565b90508060208402830185811115611e8a57611e89611d81565b5b835b81811015611eb35780611e9f8882611afb565b845260208401935050602081019050611e8c565b5050509392505050565b600082601f830112611ed257611ed1611d56565b5b6005611edf848285611e5d565b91505092915050565b6000611efb611ef684611e11565b611d3b565b90508060a08402830185811115611f1557611f14611d81565b5b835b81811015611f3e5780611f2a8882611ebd565b84526020840193505060a081019050611f17565b5050509392505050565b600082601f830112611f5d57611f5c611d56565b5b6005611f6a848285611ee8565b91505092915050565b600067ffffffffffffffff821115611f8e57611f8d611cdb565b5b602082029050919050565b6000611fac611fa784611f73565b611d3b565b90508060208402830185811115611fc657611fc5611d81565b5b835b81811015611fef5780611fdb8882611a44565b845260208401935050602081019050611fc8565b5050509392505050565b600082601f83011261200e5761200d611d56565b5b600561201b848285611f99565b91505092915050565b6000610520828403121561203b5761203a611cd6565b5b6120456060611d3b565b9050600061205584828501611de6565b60008301525061016061206a84828501611f48565b60208301525061048061207f84828501611ff9565b60408301525092915050565b600061052082840312156120a2576120a16119f6565b5b60006120b084828501612024565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b6000600b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061212d82611a86565b915061213883611a86565b925082820261214681611a86565b9150828204841483151761215d5761215c6120f3565b5b5092915050565b60008190506001806001038301049050919050565b6000819050919050565b600082821b905092915050565b6000600883026121c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612183565b6121ca8683612183565b95508019841693508086168417925050509392505050565b6000819050919050565b60006122076122026121fd84611a86565b6121e2565b611a86565b9050919050565b6000819050919050565b612221836121ec565b61223561222d8261220e565b848454612190565b825550505050565b600090565b61224a61223d565b612255818484612218565b505050565b5b818110156122795761226e600082612242565b60018101905061225b565b5050565b818310156122b65761228e82612164565b61229784612164565b6122a083612179565b8181018382016122b0818361225a565b50505050505b505050565b680100000000000000008211156122d5576122d4611cdb565b5b6122de816120e8565b6122e983828461227d565b505050565b6000600b9050919050565b6000813561230681611a2d565b80915050919050565b6000819050919050565b6000819050919050565b61232c826122ee565b67ffffffffffffffff81111561234557612344611cdb565b5b61234f81836122bb565b6123588361230f565b61236183612179565b6001830460005b818110156123a057600061237b856122f9565b61238481612319565b8092506020870196505050808285015550600181019050612368565b50505050505050565b6123b38282612323565b5050565b6000819050919050565b600060059050919050565b60008190506123dc826005612122565b9050919050565b6000819050919050565b5b8181101561240c57612401600082612242565b6001810190506123ee565b5050565b60008190506001806001038301049050919050565b61243a6124326005612410565b8201826123ed565b50565b6000821461244e5761244d6120b9565b5b61245781612425565b5050565b5b8181101561247a5761246f60008261243d565b60058101905061245c565b5050565b818310156124b75761248f826123cc565b612498846123cc565b6124a1836123e3565b8181018382016124b1818361245b565b50505050505b505050565b680100000000000000008211156124d6576124d5611cdb565b5b6124df816123c1565b6124ea83828461247e565b505050565b600060059050919050565b600060059050919050565b6000819050919050565b818310156125485761252082612410565b61252984612410565b61253283612505565b81810183820161254281836123ed565b50505050505b505050565b6801000000000000000082111561256757612566611cdb565b5b612570816124fa565b61257b83828461250f565b505050565b600060059050919050565b6000813561259881611ae4565b80915050919050565b6000819050919050565b6125b482612580565b67ffffffffffffffff8111156125cd576125cc611cdb565b5b6125d7818361254d565b6125e0836125a1565b6125e983612505565b6001830460005b818110156126285760006126038561258b565b61260c8161220e565b80925060208701965050508082850155506001810190506125f0565b50505050505050565b61263b82826125ab565b5050565b612648826124ef565b61265281836124bc565b61265b836123b7565b612664836123e3565b60005b83811015612692578261267a8184612631565b60a08401935060058301925050600181019050612667565b505050505050565b6126a4828261263f565b5050565b600060059050919050565b60008190506001806001038301049050919050565b6000819050919050565b8183101561270b576126e3826126b3565b6126ec846126b3565b6126f5836126c8565b818101838201612705818361225a565b50505050505b505050565b6801000000000000000082111561272a57612729611cdb565b5b612733816126a8565b61273e8382846126d2565b505050565b600060059050919050565b6000819050919050565b61276182612743565b67ffffffffffffffff81111561277a57612779611cdb565b5b6127848183612710565b61278d8361274e565b612796836126c8565b6001830460005b818110156127d55760006127b0856122f9565b6127b981612319565b809250602087019650505080828501555060018101905061279d565b50505050505050565b6127e88282612758565b5050565b6000810160008301806127ff81846123a9565b505050600b8101610160830180612816818461269a565b5050506024810161048083018061282d81846127de565b5050505050565b61283e82826127ec565b5050565b60006040820190506128576000830185611aba565b6128646020830184611a90565b9392505050565b6000819050919050565b600060ff82169050919050565b600061289d6128986128938461286b565b6121e2565b612875565b9050919050565b6128ad81612882565b82525050565b60006040820190506128c86000830185611aba565b6128d560208301846128a4565b9392505050565b600082825260208201905092915050565b7f2173656c66000000000000000000000000000000000000000000000000000000600082015250565b60006129236005836128dc565b915061292e826128ed565b602082019050919050565b6000602082019050818103600083015261295281612916565b9050919050565b600060408201905061296e6000830185611a90565b61297b6020830184611aba565b9392505050565b61298b81611b3d565b811461299657600080fd5b50565b6000815190506129a881612982565b92915050565b6000602082840312156129c4576129c36119f6565b5b60006129d284828501612999565b91505092915050565b60006129e682611a86565b91506129f183611a86565b9250828201905080821115612a0957612a086120f3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b612a4781612875565b8114612a5257600080fd5b50565b600081519050612a6481612a3e565b92915050565b600060208284031215612a8057612a7f6119f6565b5b6000612a8e84828501612a55565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115612aee57808604811115612aca57612ac96120f3565b5b6001851615612ad95780820291505b8081029050612ae785612a97565b9450612aae565b94509492505050565b600082612b075760019050612bc3565b81612b155760009050612bc3565b8160018114612b2b5760028114612b3557612b64565b6001915050612bc3565b60ff841115612b4757612b466120f3565b5b8360020a915084821115612b5e57612b5d6120f3565b5b50612bc3565b5060208310610133831016604e8410600b8410161715612b995782820a905083811115612b9457612b936120f3565b5b612bc3565b612ba68484846001612aa4565b92509050818404811115612bbd57612bbc6120f3565b5b81810290505b9392505050565b6000612bd582611a86565b9150612be083612875565b9250612c0d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612af7565b905092915050565b6000600b9050919050565b600081905092915050565b6000819050919050565b612c3e81611a1b565b82525050565b6000612c508383612c35565b60208301905092915050565b6000602082019050919050565b612c7281612c15565b612c7c8184612c20565b9250612c8782612c2b565b8060005b83811015612cb8578151612c9f8782612c44565b9650612caa83612c5c565b925050600181019050612c8b565b505050505050565b600060059050919050565b600081905092915050565b6000819050919050565b600060059050919050565b600081905092915050565b6000819050919050565b612d0981611a86565b82525050565b6000612d1b8383612d00565b60208301905092915050565b6000602082019050919050565b612d3d81612ce0565b612d478184612ceb565b9250612d5282612cf6565b8060005b83811015612d83578151612d6a8782612d0f565b9650612d7583612d27565b925050600181019050612d56565b505050505050565b6000612d978383612d34565b60a08301905092915050565b6000602082019050919050565b612db981612cc0565b612dc38184612ccb565b9250612dce82612cd6565b8060005b83811015612dff578151612de68782612d8b565b9650612df183612da3565b925050600181019050612dd2565b505050505050565b600060059050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b612e3d81612e07565b612e478184612e12565b9250612e5282612e1d565b8060005b83811015612e83578151612e6a8782612c44565b9650612e7583612e27565b925050600181019050612e56565b505050505050565b600061054082019050612ea16000830187612c69565b612eaf610160830186612db0565b612ebd610480830185611a90565b612ecb6104a0830184612e34565b95945050505050565b600081905092915050565b6000612eea82611b58565b612ef48185612ed4565b9350612f04818560208601611b74565b80840191505092915050565b6000612f1c8284612edf565b915081905092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612f83602a836128dc565b9150612f8e82612f27565b604082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006130156026836128dc565b915061302082612fb9565b604082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b6000610580820190506130616000830189612c69565b61306f610160830188612db0565b61307d610480830187611a90565b61308b6104a0830186611a90565b6130996104c0830185612e34565b6130a7610560830184611aba565b979650505050505050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006130e8601d836128dc565b91506130f3826130b2565b602082019050919050565b60006020820190508181036000830152613117816130db565b9050919050565b600081519050919050565b60006131348261311e565b61313e81856128dc565b935061314e818560208601611b74565b61315781611b9e565b840191505092915050565b6000602082019050818103600083015261317c8184613129565b90509291505056fea264697066735822122016d56d5b24b4a89947f7a2026e4538acb87e3cfc7fe0b6e9e3792bcd4d53d49464736f6c63430008120033000000000000000000000000d57aea3686d623da2dcebc87010a4f2f38ac7b1500000000000000000000000005dcdbf02f29239d1f8d9797e22589a2de1c152f00000000000000000000000045312ea0eff7e09c83cbe249fa1d7598c4c8cd4e