0 txs
1 call
constructor
constructor(address _factory)
functions
calcMaxBaseForDeposit
viewfunction calcMaxBaseForDeposit(address _curve, uint256 _quoteAmount) view returns (uint256 baseAmount, uint256 usdAmount, uint256 lptAmount)
calcMaxDepositAmountGivenBase
viewfunction calcMaxDepositAmountGivenBase(address _curve, uint256 _baseAmount) view returns (uint256, uint256, uint256[])
calcMaxDepositAmountGivenQuote
viewfunction calcMaxDepositAmountGivenQuote(address _curve, uint256 _quoteAmount) view returns (uint256, uint256, uint256[])
calcMaxQuoteForDeposit
viewfunction calcMaxQuoteForDeposit(address _curve, uint256 _baseAmount) view returns (uint256 quoteAmount, uint256 usdAmount, uint256 lptAmount)
calcSwapAmountForZap
viewfunction calcSwapAmountForZap(address _curve, uint256 _zapAmount, bool isFromBase) view returns (address, uint256)
calcSwapAmountForZapFromBase
viewfunction calcSwapAmountForZapFromBase(address _curve, uint256 _zapAmount) view returns (uint256)
calcSwapAmountForZapFromQuote
viewfunction calcSwapAmountForZapFromQuote(address _curve, uint256 _zapAmount) view returns (uint256)
curveFactory
viewfunction curveFactory() view returns (address)
unzap
nonpayablefunction unzap(address _curve, uint256 _lpAmount, uint256 _deadline, uint256 _minTokenAmount, address _token, bool _toETH) returns (uint256)
zap
nonpayablefunction zap(address _curve, uint256 _zapAmount, uint256 _deadline, uint256 _minLPAmount, address _token) returns (uint256)
zapETH
payablefunction zapETH(address _curve, uint256 _deadline, uint256 _minLPAmount) payable returns (uint256)
events
No events.
errors
No errors.
creation bytecode
0x60a060405234801561000f575f5ffd5b5060405161397638038061397683398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f5ffd5b81516001600160a01b0381168114610065575f5ffd5b9392505050565b6080516138dd6100995f395f81816101fb0152818161073d01528181610d7b01526111ad01526138dd5ff3fe60806040526004361061009a575f3560e01c8063a8efe44b11610062578063a8efe44b1461017a578063ab28d77814610199578063ad0883c3146101d7578063ae6836d6146101ea578063afefae2c14610235578063cfe5a9ed14610254575f5ffd5b80632e3822f91461009e57806346275e89146100d5578063598fab151461010f57806363ee81b11461012e5780637492aa731461015b575b5f5ffd5b3480156100a9575f5ffd5b506100bd6100b836600461325d565b610273565b6040516100cc93929190613287565b60405180910390f35b3480156100e0575f5ffd5b506100f46100ef36600461325d565b61032b565b604080519384526020840192909252908201526060016100cc565b34801561011a575f5ffd5b506100f461012936600461325d565b610542565b348015610139575f5ffd5b5061014d61014836600461325d565b610659565b6040519081526020016100cc565b348015610166575f5ffd5b506100bd61017536600461325d565b610671565b348015610185575f5ffd5b5061014d6101943660046132db565b61071a565b3480156101a4575f5ffd5b506101b86101b336600461333a565b610a51565b604080516001600160a01b0390931683526020830191909152016100cc565b61014d6101e5366004613379565b610d58565b3480156101f5575f5ffd5b5061021d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100cc565b348015610240575f5ffd5b5061014d61024f3660046133ab565b61118a565b34801561025f575f5ffd5b5061014d61026e36600461325d565b611980565b5f5f60605f6102828686610542565b5050604051638334278d60e01b81525f600482018190529192506001600160a01b03881690638334278d90602401602060405180830381865afa1580156102cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef919061340e565b905061031c878260405180608001604052808a81526020018681526020018a81526020018681525061198e565b94509450945050509250925092565b5f5f5f5f856001600160a01b0316638334278d60016040518263ffffffff1660e01b815260040161035e91815260200190565b602060405180830381865afa158015610379573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039d919061340e565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103fc9190613429565b905060128160ff16111561042b5760405162461bcd60e51b815260040161042290613449565b60405180910390fd5b604051636f2ef95b60e01b8152671bc16d674ec8000060048201525f9081906001600160a01b03891690636f2ef95b906024015f60405180830381865afa158015610478573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261049f9190810190613523565b915091506104f3816001815181106104b9576104b9613568565b60200260200101516104ed835f815181106104d6576104d6613568565b60200260200101518a611e1290919063ffffffff16565b90611e24565b95506105268160018151811061050b5761050b613568565b60200260200101516104ed8985611e1290919063ffffffff16565b9350610533888789611e2f565b50809550505050509250925092565b5f5f5f5f5f866001600160a01b0316636f2ef95b671bc16d674ec800006040518263ffffffff1660e01b815260040161057d91815260200190565b5f60405180830381865afa158015610597573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105be9190810190613523565b9150915061060c815f815181106105d7576105d7613568565b60200260200101516104ed836001815181106105f5576105f5613568565b602002602001015189611e1290919063ffffffff16565b945061063e815f8151811061062357610623613568565b60200260200101516104ed8885611e1290919063ffffffff16565b925061064b878787611e2f565b508094505050509250925092565b5f5f61066684845f610a51565b925050505b92915050565b5f5f60605f610680868661032b565b5050604051638334278d60e01b81525f600482018190529192506001600160a01b03881690638334278d90602401602060405180830381865afa1580156106c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed919061340e565b905061031c878260405180608001604052808681526020018a81526020018681526020018a81525061198e565b60405163054b060960e51b81526001600160a01b0380871660048301525f9187917f0000000000000000000000000000000000000000000000000000000000000000169063a960c12090602401602060405180830381865afa158015610782573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a6919061357c565b6107c25760405162461bcd60e51b815260040161042290613597565b60405163151d3aa560e31b81525f6004820181905287916001600160a01b038a169063a8e9d52890602401602060405180830381865afa158015610808573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082c919061340e565b60405163151d3aa560e31b8152600160048201529091505f906001600160a01b038b169063a8e9d52890602401602060405180830381865afa158015610874573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610898919061340e565b9050816001600160a01b0316866001600160a01b031614806108cb5750806001600160a01b0316866001600160a01b0316145b6108e75760405162461bcd60e51b8152600401610422906135c2565b5f826001600160a01b0316876001600160a01b031614610907575f61090a565b60015b90505f816109225761091d8c5f8d611e2f565b61092d565b61092d8c8c5f611e2f565b604051636f2ef95b60e01b8152600481018290529092505f91506001600160a01b038e1690636f2ef95b906024015f60405180830381865afa158015610975573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261099c9190810190613523565b9150505f836109d057816001815181106109b8576109b8613568565b60200260200101518d6109cb919061360d565b6109f5565b815f815181106109e2576109e2613568565b60200260200101518d6109f5919061360d565b90508315610a1a57610a158e878784610a0f426001613620565b8c612185565b610a32565b610a328e878784610a2c426001613620565b8c61223f565b610a3f8e87878f8f6122b0565b9e9d5050505050505050505050505050565b5f5f5f856001600160a01b0316638334278d5f6040518263ffffffff1660e01b8152600401610a8291815260200190565b602060405180830381865afa158015610a9d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac1919061340e565b604051638334278d60e01b8152600160048201529091505f906001600160a01b03881690638334278d90602401602060405180830381865afa158015610b09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2d919061340e565b6040516370a0823160e01b81526001600160a01b0389811660048301529192505f918416906370a0823190602401602060405180830381865afa158015610b76573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9a9190613633565b90505f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfd9190613429565b6040516370a0823160e01b81526001600160a01b038b811660048301529192505f918516906370a0823190602401602060405180830381865afa158015610c46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a9190613633565b90505f610c788a6002611e24565b90508815610cea5785610cdb826040518060e001604052808f6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b031681526020018e81526020018881526020018760ff16815260200186815250612809565b97509750505050505050610d50565b85610d45826040518060e001604052808f6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b031681526020018e81526020018881526020018760ff16815260200186815250612a45565b975097505050505050505b935093915050565b60405163054b060960e51b81526001600160a01b0380851660048301525f9185917f0000000000000000000000000000000000000000000000000000000000000000169063a960c12090602401602060405180830381865afa158015610dc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de4919061357c565b610e005760405162461bcd60e51b815260040161042290613597565b5f3411610e485760405162461bcd60e51b81526020600482015260166024820152757a61702f7a61702d616d6f756e742d69732d7a65726f60501b6044820152606401610422565b5f856001600160a01b031663107c279f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea9919061340e565b9050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610ee4575f5ffd5b505af1158015610ef6573d5f5f3e3d5ffd5b50610f12935050506001600160a01b0383169050303334612c4d565b60405163151d3aa560e31b81525f60048201819052906001600160a01b0388169063a8e9d52890602401602060405180830381865afa158015610f57573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7b919061340e565b60405163151d3aa560e31b8152600160048201529091505f906001600160a01b0389169063a8e9d52890602401602060405180830381865afa158015610fc3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe7919061340e565b9050816001600160a01b0316836001600160a01b0316148061101a5750806001600160a01b0316836001600160a01b0316145b6110365760405162461bcd60e51b8152600401610422906135c2565b5f826001600160a01b0316846001600160a01b031614611056575f611059565b60015b90505f816110715761106c8a5f34611e2f565b61107c565b61107c8a345f611e2f565b604051636f2ef95b60e01b8152600481018290529092505f91506001600160a01b038c1690636f2ef95b906024015f60405180830381865afa1580156110c4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110eb9190810190613523565b9150505f8361111f578160018151811061110757611107613568565b60200260200101513461111a919061360d565b611144565b815f8151811061113157611131613568565b602002602001015134611144919061360d565b9050831561115f5761115a8c8787848f34612185565b61116d565b61116d8c8787848f3461223f565b61117a8c87878e8e6122b0565b9c9b505050505050505050505050565b60405163054b060960e51b81526001600160a01b0380881660048301525f9188917f0000000000000000000000000000000000000000000000000000000000000000169063a960c12090602401602060405180830381865afa1580156111f2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611216919061357c565b6112325760405162461bcd60e51b815260040161042290613597565b5f886001600160a01b031663107c279f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611293919061340e565b60405163151d3aa560e31b81525f600482018190529192506001600160a01b038b169063a8e9d52890602401602060405180830381865afa1580156112da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fe919061340e565b60405163151d3aa560e31b8152600160048201529091505f906001600160a01b038c169063a8e9d52890602401602060405180830381865afa158015611346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136a919061340e565b9050816001600160a01b0316876001600160a01b0316148061139d5750806001600160a01b0316876001600160a01b0316145b6113b95760405162461bcd60e51b8152600401610422906135c2565b6113ce6001600160a01b038c1633308d612c4d565b604051630441a3e760e41b8152600481018b9052602481018a90526001600160a01b038c169063441a3e70906044015f604051808303815f875af1158015611418573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261143f919081019061364a565b50816001600160a01b0316876001600160a01b03160361174f576040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561149d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c19190613633565b90506114d76001600160a01b0384168d5f612cbe565b6114ec6001600160a01b0384168d5f19612cbe565b8b6001600160a01b0316630b2583c88484845f8f6040518663ffffffff1660e01b815260040161152095949392919061367c565b6020604051808303815f875af115801561153c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115609190613633565b506040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156115a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c99190613633565b90508981101561161b5760405162461bcd60e51b815260206004820152601e60248201527f21556e7a61702f6e6f742d656e6f7567682d746f6b656e2d616d6f756e7400006044820152606401610422565b846001600160a01b0316836001600160a01b03161480156116395750875b1561172f57604051632e1a7d4d60e01b8152600481018290526001600160a01b03861690632e1a7d4d906024015b5f604051808303815f87803b15801561167e575f5ffd5b505af1158015611690573d5f5f3e3d5ffd5b50506040515f925033915083908381818185875af1925050503d805f81146116d3576040519150601f19603f3d011682016040523d82523d5f602084013e6116d8565b606091505b50509050806117295760405162461bcd60e51b815260206004820152601760248201527f7a61702f756e7a61702d746f2d6574682d6661696c65640000000000000000006044820152606401610422565b50611743565b6117436001600160a01b0384163383612dd6565b95506119759350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611793573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b79190613633565b90506117cd6001600160a01b0383168d5f612cbe565b6117e26001600160a01b0383168d5f19612cbe565b8b6001600160a01b0316630b2583c88385845f8f6040518663ffffffff1660e01b815260040161181695949392919061367c565b6020604051808303815f875af1158015611832573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118569190613633565b506040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561189b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118bf9190613633565b9050898110156119115760405162461bcd60e51b815260206004820152601e60248201527f21556e7a61702f6e6f742d656e6f7567682d746f6b656e2d616d6f756e7400006044820152606401610422565b846001600160a01b0316846001600160a01b031614801561192f5750875b1561196157604051632e1a7d4d60e01b8152600481018290526001600160a01b03861690632e1a7d4d90602401611667565b6117436001600160a01b0385163383612dd6565b509695505050505050565b5f5f61066684846001610a51565b5f5f60605f866001600160a01b031663a8e9d52860016040518263ffffffff1660e01b81526004016119c291815260200190565b602060405180830381865afa1580156119dd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a01919061340e565b90506012866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a41573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a659190613429565b60ff161115611a865760405162461bcd60e51b815260040161042290613449565b6040516370a0823160e01b81526001600160a01b0388811660048301525f91611bad91611b069164e8d4a51000918616906370a08231906024015b602060405180830381865afa158015611adc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b009190613633565b90611e12565b6104ed896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b699190613429565b611b749060246136ad565b611b7f90600a6137a1565b6040516370a0823160e01b81526001600160a01b038d811660048301528c16906370a0823190602401611ac1565b90505f611bcc64e8d4a510008860200151611e1290919063ffffffff16565b90505f611c50896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c329190613429565b611c3d9060126136ad565b611c4890600a6137a1565b895190611e12565b90505f611c73611c6c856104ed85670de0b6b3a7640000611e12565b8490612e06565b9050611c7e81612e11565b90505f5f8c6001600160a01b0316636f2ef95b846040518263ffffffff1660e01b8152600401611cb091815260200190565b5f60405180830381865afa158015611cca573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cf19190810190613523565b915091505f8b60400151825f81518110611d0d57611d0d613568565b602002602001015111611d20575f611d4f565b611d4f8c5f0151835f81518110611d3957611d39613568565b6020026020010151612e2890919063ffffffff16565b90505f8c6060015183600181518110611d6a57611d6a613568565b602002602001015111611d7d575f611d98565b611d988d6020015184600181518110611d3957611d39613568565b90505f821180611da757505f81115b15611dfa578c51611dc190611dbc9084612e28565b612e11565b8d5260208d0151611dd690611dbc9083612e28565b60208e0152611de68f8f8f61198e565b9b509b509b50505050505050505050611e09565b50929950909750955050505050505b93509350939050565b5f611e1d82846137af565b9392505050565b5f611e1d82846137c6565b604051638334278d60e01b81525f60048201819052908190859082906001600160a01b03831690638334278d90602401602060405180830381865afa158015611e7a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e9e919061340e565b604051638334278d60e01b8152600160048201529091505f906001600160a01b03841690638334278d90602401602060405180830381865afa158015611ee6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0a919061340e565b6040516370a0823160e01b81526001600160a01b038a811660048301529192505f918416906370a0823190602401602060405180830381865afa158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613633565b6040516370a0823160e01b81526001600160a01b038b811660048301529192505f918416906370a0823190602401602060405180830381865afa158015611fc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fe49190613633565b604051633cae77f760e01b81526001600160a01b0386811660048301529192505f91871690633cae77f790602401602060405180830381865afa15801561202d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612051919061340e565b604051633cae77f760e01b81526001600160a01b0386811660048301529192505f91881690633cae77f790602401602060405180830381865afa15801561209a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120be919061340e565b90506120cb81868c612e33565b6120d683888e612e33565b6120e09190613620565b98505f6120ee828786612e33565b6120f9848988612e33565b6121039190613620565b9050612173816104ed8a6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612148573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216c9190613633565b8d90611e12565b98505050505050505050935093915050565b61219a6001600160a01b038616333084612c4d565b6121ae6001600160a01b038616875f612cbe565b6121c26001600160a01b0386168785612cbe565b604051630164b07960e31b81526001600160a01b03871690630b2583c8906121f6908890889088905f90899060040161367c565b6020604051808303815f875af1158015612212573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122369190613633565b50505050505050565b6122546001600160a01b038516333084612c4d565b6122686001600160a01b038516875f612cbe565b61227c6001600160a01b0385168785612cbe565b604051630164b07960e31b81526001600160a01b03871690630b2583c8906121f6908790899088905f90899060040161367c565b6040805160808101918290526370a0823160e01b9091523060848201525f90819061247d9088908890806001600160a01b0383166370a0823160a48301602060405180830381865afa158015612308573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232c9190613633565b81526040516370a0823160e01b81523060048201526020909101906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612376573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239a9190613633565b81526040516370a0823160e01b81523060048201526020909101906001600160a01b038c16906370a0823190602401602060405180830381865afa1580156123e4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124089190613633565b81526040516370a0823160e01b81523060048201526020909101906001600160a01b038b16906370a0823190602401602060405180830381865afa158015612452573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124769190613633565b905261198e565b5090915061249790506001600160a01b038716885f612cbe565b6040516370a0823160e01b81523060048201526125149088906001600160a01b038916906370a0823190602401602060405180830381865afa1580156124df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125039190613633565b6001600160a01b0389169190612cbe565b6125286001600160a01b038616885f612cbe565b6040516370a0823160e01b81523060048201526125a59088906001600160a01b038816906370a0823190602401602060405180830381865afa158015612570573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125949190613633565b6001600160a01b0388169190612cbe565b604051632c3913c560e11b8152600481018290525f60248201819052604482018190525f1960648301819052608483015260a48201869052906001600160a01b03891690635872278a9060c4015f604051808303815f875af115801561260d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126349190810190613523565b509050838110156126875760405162461bcd60e51b815260206004820152601960248201527f215a61702f6e6f742d656e6f7567682d6c702d616d6f756e74000000000000006044820152606401610422565b6040516370a0823160e01b81523060048201526127049033906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156126cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126f39190613633565b6001600160a01b038b169190612dd6565b6040516370a0823160e01b81523060048201526127819033906001600160a01b038a16906370a0823190602401602060405180830381865afa15801561274c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127709190613633565b6001600160a01b038a169190612dd6565b6040516370a0823160e01b81523060048201526127fe9033906001600160a01b038916906370a0823190602401602060405180830381865afa1580156127c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127ed9190613633565b6001600160a01b0389169190612dd6565b979650505050505050565b5f8281612817826002611e24565b90505f8080805b6020811015612a0757875160208901516040808b015190516341c7351160e11b81526001600160a01b03928316600482015290821660248201526044810189905291169063838e6a2290606401602060405180830381865afa158015612886573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128aa9190613633565b935060128860a0015160ff1611156128d45760405162461bcd60e51b815260040161042290613449565b6129176128e68564e8d4a51000611e12565b6104ed8a60a0015160ff1660246128fd919061360d565b61290890600a6137e5565b60608c0151611b00908b612e28565b915061296d61293c64e8d4a51000611b00878c60c00151612e2890919063ffffffff16565b6104ed8a60a0015160ff166024612953919061360d565b61295e90600a6137e5565b60808c0151611b00908b612e06565b925061298083662386f26fc10000611e24565b61299183662386f26fc10000611e24565b036129a45785965050505050505061066b565b828211156129bd576129b68686612e06565b95506129d2565b828210156129d2576129cf8686612e28565b95505b87606001518611156129f257600188606001516129ef919061360d565b95505b6129fd856002611e24565b945060010161281e565b5060405162461bcd60e51b81526020600482015260126024820152715a61702f6e6f742d636f6e76657267696e6760701b6044820152606401610422565b5f8281612a53826002611e24565b90505f8080805b6020811015612a075787516040808a015160208b015191516341c7351160e11b81526001600160a01b0391821660048201529181166024830152604482018990529091169063838e6a2290606401602060405180830381865afa158015612ac3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ae79190613633565b935060128860a0015160ff161115612b115760405162461bcd60e51b815260040161042290613449565b612b5d612b3464e8d4a51000611b00898c60600151612e2890919063ffffffff16565b6104ed8a60a0015160ff166024612b4b919061360d565b612b5690600a6137e5565b8790611e12565b9150612bb3612b8264e8d4a51000611b00898c60c00151612e0690919063ffffffff16565b6104ed8a60a0015160ff166024612b99919061360d565b612ba490600a6137e5565b60808c0151611b009089612e28565b9250612bc683662386f26fc10000611e24565b612bd783662386f26fc10000611e24565b03612bea5785965050505050505061066b565b82821115612c0357612bfc8686612e28565b9550612c18565b82821015612c1857612c158686612e06565b95505b8760600151861115612c385760018860600151612c35919061360d565b95505b612c43856002611e24565b9450600101612a5a565b6040516001600160a01b0380851660248301528316604482015260648101829052612cb89085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612ff9565b50505050565b801580612d365750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612d10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d349190613633565b155b612da15760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610422565b6040516001600160a01b038316602482015260448101829052612dd190849063095ea7b360e01b90606401612c81565b505050565b6040516001600160a01b038316602482015260448101829052612dd190849063a9059cbb60e01b90606401612c81565b5f611e1d8284613620565b5f61066b6305f5e1006104ed846305f5e0ff611e12565b5f611e1d828461360d565b5f5f846001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e95919061340e565b90505f816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612ed4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ef8919061380e565b505050915050612fef856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f619190613429565b612f6c90600a6137a1565b6104ed846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fab573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fcf9190613429565b612fda9060126136ad565b612fe590600a6137a1565b611b008886611e12565b9695505050505050565b5f61304d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166130cc9092919063ffffffff16565b905080515f148061306d57508080602001905181019061306d919061357c565b612dd15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610422565b60606130da84845f856130e2565b949350505050565b6060824710156131435760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610422565b5f5f866001600160a01b0316858760405161315e919061385c565b5f6040518083038185875af1925050503d805f8114613198576040519150601f19603f3d011682016040523d82523d5f602084013e61319d565b606091505b50915091506127fe87838387606083156132175782515f03613210576001600160a01b0385163b6132105760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610422565b50816130da565b6130da838381511561322c5781518083602001fd5b8060405162461bcd60e51b81526004016104229190613872565b6001600160a01b038116811461325a575f5ffd5b50565b5f5f6040838503121561326e575f5ffd5b823561327981613246565b946020939093013593505050565b5f60608201858352846020840152606060408401528084518083526080850191506020860192505f5b818110156132ce5783518352602093840193909201916001016132b0565b5090979650505050505050565b5f5f5f5f5f60a086880312156132ef575f5ffd5b85356132fa81613246565b9450602086013593506040860135925060608601359150608086013561331f81613246565b809150509295509295909350565b801515811461325a575f5ffd5b5f5f5f6060848603121561334c575f5ffd5b833561335781613246565b925060208401359150604084013561336e8161332d565b809150509250925092565b5f5f5f6060848603121561338b575f5ffd5b833561339681613246565b95602085013595506040909401359392505050565b5f5f5f5f5f5f60c087890312156133c0575f5ffd5b86356133cb81613246565b955060208701359450604087013593506060870135925060808701356133f081613246565b915060a08701356134008161332d565b809150509295509295509295565b5f6020828403121561341e575f5ffd5b8151611e1d81613246565b5f60208284031215613439575f5ffd5b815160ff81168114611e1d575f5ffd5b60208082526010908201526f7a61702f6269672d646563696d616c7360801b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112613496575f5ffd5b815167ffffffffffffffff8111156134b0576134b0613473565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156134dd576134dd613473565b6040529182526020818501810192908101868411156134fa575f5ffd5b6020860192505b83831015613519578251815260209283019201613501565b5095945050505050565b5f5f60408385031215613534575f5ffd5b8251602084015190925067ffffffffffffffff811115613552575f5ffd5b61355e85828601613487565b9150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561358c575f5ffd5b8151611e1d8161332d565b6020808252601190820152707a61702f696e76616c69642d637572766560781b604082015260600190565b60208082526017908201527f7a61702f746f6b656e2d6e6f742d737570706f72746564000000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561066b5761066b6135f9565b8082018082111561066b5761066b6135f9565b5f60208284031215613643575f5ffd5b5051919050565b5f6020828403121561365a575f5ffd5b815167ffffffffffffffff811115613670575f5ffd5b6130da84828501613487565b6001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b60ff828116828216039081111561066b5761066b6135f9565b6001815b6001841115610d50578085048111156136e5576136e56135f9565b60018416156136f357908102905b60019390931c9280026136ca565b5f8261370f5750600161066b565b8161371b57505f61066b565b8160018114613731576002811461373b57613757565b600191505061066b565b60ff84111561374c5761374c6135f9565b50506001821b61066b565b5060208310610133831016604e8410600b841016171561377a575081810a61066b565b6137865f1984846136c6565b805f1904821115613799576137996135f9565b029392505050565b5f611e1d60ff841683613701565b808202811582820484141761066b5761066b6135f9565b5f826137e057634e487b7160e01b5f52601260045260245ffd5b500490565b5f611e1d8383613701565b805169ffffffffffffffffffff81168114613809575f5ffd5b919050565b5f5f5f5f5f60a08688031215613822575f5ffd5b61382b866137f0565b60208701516040880151606089015192975090955093509150613850608087016137f0565b90509295509295909350565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f8301168401019150509291505056fea26469706673582212201e5a8faf0f23dbbc14da7fd00c37b4525262e88a89c8adaee0df3bfefab9018e64736f6c634300081b0033000000000000000000000000668367b627f56a51b8c023143c76094ed5d500df