3 txs
4 calls
constructor
constructor(address _collateral, address _vault, address _DOLA, address _gov, address _controller, address _chair)
functions
BPS_DENOMINATOR
viewfunction BPS_DENOMINATOR() view returns (uint256)
buyFeeBps
viewfunction buyFeeBps() view returns (uint256)
collateral
viewfunction collateral() view returns (address)
controller
viewfunction controller() view returns (address)
DOLA
viewfunction DOLA() view returns (address)
fed
viewfunction fed() view returns (address)
getCollateralOut
viewfunction getCollateralOut(uint256 dolaIn) view returns (uint256)
getDolaOut
viewfunction getDolaOut(uint256 collateralIn) view returns (uint256)
getProfit
viewfunction getProfit() view returns (uint256)
getTotalReserves
viewfunction getTotalReserves() view returns (uint256)
gov
viewfunction gov() view returns (address)
minTotalSupply
viewfunction minTotalSupply() view returns (uint256)
pendingGov
viewfunction pendingGov() view returns (address)
sellFeeBps
viewfunction sellFeeBps() view returns (uint256)
supply
viewfunction supply() view returns (uint256)
vault
viewfunction vault() view returns (address)
buy
nonpayablefunction buy(address to, uint256 collateralAmountIn)
buy
nonpayablefunction buy(uint256 collateralAmountIn)
claimPendingGov
nonpayablefunction claimPendingGov()
migrate
nonpayablefunction migrate(address newVault, uint256 minCollateralAmount, uint256 minSharesOut)
sell
nonpayablefunction sell(address to, uint256 dolaAmountIn)
sell
nonpayablefunction sell(uint256 dolaAmountIn)
setBuyFeeBps
nonpayablefunction setBuyFeeBps(uint256 newFee)
setController
nonpayablefunction setController(address newController)
setMinTotalSupply
nonpayablefunction setMinTotalSupply(uint256 _minTotalSupply)
setPendingGov
nonpayablefunction setPendingGov(address _pendingGov)
setSellFeeBps
nonpayablefunction setSellFeeBps(uint256 newFee)
sweep
nonpayablefunction sweep(address token)
takeProfit
nonpayablefunction takeProfit()
events
Buy
event Buy(address indexed user, uint256 purchased, uint256 spent)
BuyFeeUpdated
event BuyFeeUpdated(uint256 oldFee, uint256 newFee)
ControllerChanged
event ControllerChanged(address indexed oldController, address indexed newController)
GovChanged
event GovChanged(address indexed oldGov, address indexed newGov)
MinTotalSupplyUpdated
event MinTotalSupplyUpdated(uint256 oldMinTotalSupply, uint256 newMinTotalSupply)
PendingGovUpdated
event PendingGovUpdated(address indexed pendingGov)
ProfitTaken
event ProfitTaken(uint256 profit)
Sell
event Sell(address indexed user, uint256 sold, uint256 received)
SellFeeUpdated
event SellFeeUpdated(uint256 oldFee, uint256 newFee)
SupplyCapUpdated
event SupplyCapUpdated(uint256 newSupplyCap)
VaultMigrated
event VaultMigrated(address indexed oldVault, address indexed newVault)
errors
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60e060405234801562000010575f80fd5b5060405162002e6d38038062002e6d833981016040819052620000339162000188565b6001600160a01b03868116608052600680546001600160a01b03199081168884161790915585821660a0525f805482168684161790556002805490911691841691909117905560405130908490839087906200008f906200015e565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff080158015620000d1573d5f803e3d5ffd5b506001600160a01b0390811660c081905260a05160405163095ea7b360e01b815260048101929092525f1960248301529091169063095ea7b3906044016020604051808303815f875af11580156200012b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000151919062000205565b505050505050506200022d565b610db180620020bc83390190565b80516001600160a01b038116811462000183575f80fd5b919050565b5f805f805f8060c087890312156200019e575f80fd5b620001a9876200016c565b9550620001b9602088016200016c565b9450620001c9604088016200016c565b9350620001d9606088016200016c565b9250620001e9608088016200016c565b9150620001f960a088016200016c565b90509295509295509295565b5f6020828403121562000216575f80fd5b8151801515811462000226575f80fd5b9392505050565b60805160a05160c051611e33620002895f395f61026101525f81816102d00152818161085001526110bd01525f818161034301528181610efd01528181610f67015281816114610152818161183b015261196c0152611e335ff3fe608060405234801561000f575f80fd5b50600436106101c6575f3560e01c806392c592d0116100fe578063e1a452181161009e578063f5d121e61161006e578063f5d121e6146103af578063f77c4791146103c2578063fbfa77cf146103d5578063fc22d0e5146103e8575f80fd5b8063e1a4521814610378578063e4849b3214610381578063efdf0bb014610394578063f0c9e465146103a7575f80fd5b8063c71a7eff116100d9578063c71a7eff14610318578063cce7ec131461032b578063d8dfeb451461033e578063d96a094a14610365575f80fd5b806392c592d0146102cb57806392eefe9b146102f2578063a0422edf14610305575f80fd5b806353d06f941161016957806370c105781161014457806370c105781461029e57806377d2300e146102a657806379db6346146102af5780639058c8a4146102b8575f80fd5b806353d06f941461025c578063679dffb4146102835780636c197ff51461028b575f80fd5b806323cbe1f3116101a457806323cbe1f314610225578063242693d31461022e578063252408101461023657806334119d1514610249575f80fd5b806301681a62146101ca578063047fc9aa146101df57806312d43a51146101fb575b5f80fd5b6101dd6101d8366004611c76565b6103fb565b005b6101e860055481565b6040519081526020015b60405180910390f35b5f5461020d906001600160a01b031681565b6040516001600160a01b0390911681526020016101f2565b6101e860045481565b6101e86104f7565b60015461020d906001600160a01b031681565b6101dd610257366004611c91565b6105e4565b61020d7f000000000000000000000000000000000000000000000000000000000000000081565b6101e86106d0565b6101dd610299366004611ca8565b6106fe565b6101dd610982565b6101e860035481565b6101e860075481565b6101dd6102c6366004611c91565b610a5f565b61020d7f000000000000000000000000000000000000000000000000000000000000000081565b6101dd610300366004611c76565b610b4b565b6101e8610313366004611c91565b610c6d565b6101e8610326366004611c91565b610c9d565b6101dd610339366004611ca8565b610cb0565b61020d7f000000000000000000000000000000000000000000000000000000000000000081565b6101dd610373366004611c91565b611125565b6101e861271081565b6101dd61038f366004611c91565b61112f565b6101dd6103a2366004611c76565b611139565b6101dd6111f3565b6101dd6103bd366004611c91565b6112c7565b60025461020d906001600160a01b031681565b60065461020d906001600160a01b031681565b6101dd6103f6366004611cd2565b6113b0565b5f546001600160a01b031633146104595760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f760000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526104f4916001600160a01b0390811691908416906370a0823190602401602060405180830381865afa1580156104bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e39190611d04565b6001600160a01b0384169190611b25565b50565b6006546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f916001600160a01b031690634cdad5069082906370a0823190602401602060405180830381865afa15801561055e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190611d04565b6040518263ffffffff1660e01b81526004016105a091815260200190565b602060405180830381865afa1580156105bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105df9190611d04565b905090565b5f546001600160a01b0316331461063d5760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b61271081111561068f5760405162461bcd60e51b815260206004820152600c60248201527f46656520746f6f206869676800000000000000000000000000000000000000006044820152606401610450565b60045460408051918252602082018390527f5bafec153d96f8ef37761b64348732b41a6b477401d244a5070f9f82d689adce910160405180910390a1600455565b5f806106da6104f7565b905060055481116106eb575f6106f8565b6005546106f89082611d48565b91505090565b5f811161074d5760405162461bcd60e51b815260206004820152601260248201527f416d6f756e74206d757374206265203e203000000000000000000000000000006044820152606401610450565b6002546040517fb29431fb0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038481166024830152604482018490529091169063b29431fb906064016020604051808303815f875af11580156107bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190611d61565b61082c5760405162461bcd60e51b815260206004820152601460248201527f44656e69656420627920636f6e74726f6c6c65720000000000000000000000006044820152606401610450565b8060055f82825461083d9190611d48565b9091555061087890506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611b9e565b6004548190156108ae575f612710600454846108949190611d80565b61089e9190611d97565b90506108aa8183611d48565b9150505b6006546040517fb460af94000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0385811660248301523060448301529091169063b460af94906064016020604051808303815f875af115801561091d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109419190611d04565b50604080518381526020810183905233917fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a910160405180910390a2505050565b5f61098b6106d0565b90508015610a29576006545f546040517fb460af94000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03918216602482015230604482015291169063b460af94906064016020604051808303815f875af1158015610a03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a279190611d04565b505b6040518181527f949da057e0c10ac8c590fc56cf17f0a7f8a424d6f373268e7fc205c8dcbc7bb49060200160405180910390a150565b5f546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b612710811115610b0a5760405162461bcd60e51b815260206004820152600c60248201527f46656520746f6f206869676800000000000000000000000000000000000000006044820152606401610450565b60035460408051918252602082018390527f28e297c7c282931a994191b735b01eaf17558295f761512a7047f4e1b8dc3b0b910160405180910390a1600355565b5f546001600160a01b03163314610ba45760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b6001600160a01b038116610bfa5760405162461bcd60e51b815260206004820152600c60248201527f5a65726f206164647265737300000000000000000000000000000000000000006044820152606401610450565b6002546040516001600160a01b038084169216907f6aef1fb5b23d0e109fc7f2b0601019e1edbacd177e31a441ec8548e8dd14f0f7905f90a3600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f8061271060035484610c809190611d80565b610c8a9190611d97565b9050610c968184611d48565b9392505050565b5f8061271060045484610c809190611d80565b5f8111610cff5760405162461bcd60e51b815260206004820152601260248201527f416d6f756e74206d757374206265203e203000000000000000000000000000006044820152606401610450565b60075460065f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d769190611d04565b1015610dc45760405162461bcd60e51b815260206004820152601860248201527f4d696e20746f74616c20737570706c79206e6f74206d657400000000000000006044820152606401610450565b6002546040517f1f437f9d0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0384811660248301526044820184905290911690631f437f9d906064016020604051808303815f875af1158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e579190611d61565b610ea35760405162461bcd60e51b815260206004820152601460248201527f44656e69656420627920636f6e74726f6c6c65720000000000000000000000006044820152606401610450565b600354819015610ed9575f61271060035484610ebf9190611d80565b610ec99190611d97565b9050610ed58183611d48565b9150505b8060055f828254610eea9190611dcf565b90915550610f2590506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611b9e565b6006546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303815f875af1158015610faf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190611d61565b506006546040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018490523060248201525f916001600160a01b031690636e553f65906044016020604051808303815f875af115801561103b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105f9190611d04565b90505f81116110b05760405162461bcd60e51b815260206004820152600e60248201527f4465706f736974206661696c65640000000000000000000000000000000000006044820152606401610450565b6110e46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168584611b25565b604080518381526020810185905233917f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed910160405180910390a250505050565b6104f43382610cb0565b6104f433826106fe565b5f546001600160a01b031633146111925760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f0b1b3d8e19656af9f8acea883020be347ec617cada0060e56959226bb0109c49905f90a250565b6001546001600160a01b0316331461124d5760405162461bcd60e51b815260206004820152600f60248201527f4e6f742070656e64696e6720676f7600000000000000000000000000000000006044820152606401610450565b6001545f80546040516001600160a01b0393841693909116917f3d1e4c3a68fed9f4f8315582b7297cf8fa264bc8e6704287603ba8c72bf05ac291a3600180545f80547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03841617909155169055565b5f546001600160a01b031633146113205760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b5f811161136f5760405162461bcd60e51b815260206004820152601c60248201527f4d696e20746f74616c20737570706c79206d757374206265203e2030000000006044820152606401610450565b60075460408051918252602082018390527fe9b2d6ed3a1e53a2cbc74ea1516580639c8c1a43411ca794eaa9e101c3c3dea4910160405180910390a1600755565b5f546001600160a01b031633146114095760405162461bcd60e51b815260206004820152600760248201527f4e6f7420676f76000000000000000000000000000000000000000000000000006044820152606401610450565b6001600160a01b03831661145f5760405162461bcd60e51b815260206004820152600c60248201527f5a65726f206164647265737300000000000000000000000000000000000000006044820152606401610450565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e99190611de2565b6001600160a01b03161461153f5760405162461bcd60e51b815260206004820181905260248201527f4e6577207661756c74206d7573742061636365707420636f6c6c61746572616c6044820152606401610450565b611547610982565b6006546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156115a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ca9190611d04565b156116e0576006546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b039091169063ba0876529082906370a0823190602401602060405180830381865afa158015611636573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165a9190611d04565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526004810191909152306024820181905260448201526064016020604051808303815f875af11580156116ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116de9190611d04565b505b600680547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03868116918217909355600754604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051949093169390926318160ddd9160048083019260209291908290030181865afa158015611773573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117979190611d04565b101561180b5760405162461bcd60e51b815260206004820152602860248201527f4e6577207661756c7420646f6573206e6f74206d656574206d696e20746f746160448201527f6c20737570706c790000000000000000000000000000000000000000000000006064820152608401610450565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ac9190611d04565b9050838110156119245760405162461bcd60e51b815260206004820152602d60248201527f496e73756666696369656e7420636f6c6c61746572616c2062616c616e63652060448201527f666f72206d6967726174696f6e000000000000000000000000000000000000006064820152608401610450565b8015611ade576006546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303815f875af11580156119b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d89190611d61565b506006546040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201525f916001600160a01b031690636e553f65906044016020604051808303815f875af1158015611a40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a649190611d04565b905083811015611adc5760405162461bcd60e51b815260206004820152602b60248201527f496e73756666696369656e74207368617265732072656365697665642066726f60448201527f6d206e6577207661756c740000000000000000000000000000000000000000006064820152608401610450565b505b846001600160a01b0316826001600160a01b03167faa10add0ff0f23b874d2d1fa353ab28a639aa51906dec303238cdb1f1e54ea4260405160405180910390a35050505050565b6040516001600160a01b03838116602483015260448201839052611b9991859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bdd565b505050565b6040516001600160a01b038481166024830152838116604483015260648201839052611bd79186918216906323b872dd90608401611b52565b50505050565b5f8060205f8451602086015f885af180611bfc576040513d5f823e3d81fd5b50505f513d91508115611c13578060011415611c20565b6001600160a01b0384163b155b15611bd7576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610450565b6001600160a01b03811681146104f4575f80fd5b5f60208284031215611c86575f80fd5b8135610c9681611c62565b5f60208284031215611ca1575f80fd5b5035919050565b5f8060408385031215611cb9575f80fd5b8235611cc481611c62565b946020939093013593505050565b5f805f60608486031215611ce4575f80fd5b8335611cef81611c62565b95602085013595506040909401359392505050565b5f60208284031215611d14575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115611d5b57611d5b611d1b565b92915050565b5f60208284031215611d71575f80fd5b81518015158114610c96575f80fd5b8082028115828204841417611d5b57611d5b611d1b565b5f82611dca577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115611d5b57611d5b611d1b565b5f60208284031215611df2575f80fd5b8151610c9681611c6256fea2646970667358221220816b35c4f5711c5cfaea16c2e3bd45306c86762577b32248239b43ea1454660f64736f6c6343000814003360c060405234801561000f575f80fd5b50604051610db1380380610db183398101604081905261002e91610087565b6001600160a01b039384166080525f80549385166001600160a01b03199485161790556002805492851692909316919091179091551660a0526100d8565b80516001600160a01b0381168114610082575f80fd5b919050565b5f805f806080858703121561009a575f80fd5b6100a38561006c565b93506100b16020860161006c565b92506100bf6040860161006c565b91506100cd6060860161006c565b905092959194509250565b60805160a051610c9561011c5f395f81816101bb0152818161043a015281816107bf015261085901525f818161010a0152818161040b015261078a0152610c955ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806392c592d011610088578063ee1ef57511610063578063ee1ef57514610203578063efdf0bb014610216578063f0c9e46514610229578063fdf893f514610231575f80fd5b806392c592d0146101b6578063b6a3f59a146101dd578063e1a611b7146101f0575f80fd5b806325240810116100c357806325240810146101705780632720b22e1461019057806369652fcf146101a55780638f770ad0146101ad575f80fd5b8063047fc9aa146100e957806304bda2621461010557806312d43a5114610151575b5f80fd5b6100f260035481565b6040519081526020015b60405180910390f35b61012c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100fc565b5f5461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b60015461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b6101a361019e366004610b96565b610251565b005b6101a3610495565b6100f260045481565b61012c7f000000000000000000000000000000000000000000000000000000000000000081565b6101a36101eb366004610b96565b610588565b6101a36101fe366004610b96565b61064d565b6101a3610211366004610bad565b61089d565b6101a3610224366004610bad565b610993565b6101a3610a81565b60025461012c9073ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206368616972000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8111610340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f416d6f756e74206d757374206265203e2030000000000000000000000000000060448201526064016102ce565b6004546003546103509083610c14565b11156103b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f537570706c79206361702065786365656465640000000000000000000000000060448201526064016102ce565b8060035f8282546103c99190610c14565b90915550506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015b5f604051808303815f87803b15801561047c575f80fd5b505af115801561048e573d5f803e3d5ffd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206368616972000000000000000000000000000000000000000000000060448201526064016102ce565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000811690915560405173ffffffffffffffffffffffffffffffffffffffff909116905f9082907f0a47357b37b43edfce3b49e26d073c29be56d40a540f4766153a6169d031e86e908390a350565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420676f7665726e616e636500000000000000000000000000000000000060448201526064016102ce565b600480549082905560408051828152602081018490527fb4d96b3a6638191d0f6aefa0fdc4d99af3592f4c97480e31feeb977723c63b53910160405180910390a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f74206368616972000000000000000000000000000000000000000000000060448201526064016102ce565b5f8111610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f416d6f756e74206d757374206265203e2030000000000000000000000000000060448201526064016102ce565b8060035f8282546107489190610c2d565b90915550506040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064016020604051808303815f875af1158015610805573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108299190610c40565b506040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c6890602401610465565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420676f7665726e616e636500000000000000000000000000000000000060448201526064016102ce565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f0a47357b37b43edfce3b49e26d073c29be56d40a540f4766153a6169d031e86e905f90a35050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f7420676f7665726e616e636500000000000000000000000000000000000060448201526064016102ce565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f0b1b3d8e19656af9f8acea883020be347ec617cada0060e56959226bb0109c49905f90a250565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742070656e64696e6720676f76000000000000000000000000000000000060448201526064016102ce565b6001545f805460405173ffffffffffffffffffffffffffffffffffffffff93841693909116917f3d1e4c3a68fed9f4f8315582b7297cf8fa264bc8e6704287603ba8c72bf05ac291a3600180545f80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b5f60208284031215610ba6575f80fd5b5035919050565b5f60208284031215610bbd575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610be0575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610c2757610c27610be7565b92915050565b81810381811115610c2757610c27610be7565b5f60208284031215610c50575f80fd5b81518015158114610be0575f80fdfea2646970667358221220637c604835abc9d66b1bc21d51879d9f2b70c6ad03e8b3c3fae78b711fc4d93764736f6c63430008140033000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b000000000000000000000000e3475728673eabaec90a37aa3ae2ced9f0db5ff20000000000000000000000008f97cca30dbe80e7a8b462f1dd1a51c32accdfc8