0 txs
0 calls
constructor
constructor(address _triviToken, address _treasury)
functions
BPS
viewfunction BPS() view returns (uint256)
CBBTC_TOKEN
viewfunction CBBTC_TOKEN() view returns (address)
cbbtcTestAmount
viewfunction cbbtcTestAmount() view returns (uint256)
deadlineWindow
viewfunction deadlineWindow() view returns (uint256)
ethTestAmount
viewfunction ethTestAmount() view returns (uint256)
FEE_BPS
viewfunction FEE_BPS() view returns (uint256)
getBuyQuotes
viewfunction getBuyQuotes(uint256 triviAmount) view returns (uint256 ethRequired, uint256 usdcRequired, uint256 cbbtcRequired, uint256 virtualRequired)
getSellQuotes
viewfunction getSellQuotes(uint256 triviAmount) view returns (uint256 ethOut, uint256 usdcOut, uint256 cbbtcOut, uint256 virtualOut)
owner
viewfunction owner() view returns (address)
quoteBufferBps
viewfunction quoteBufferBps() view returns (uint256)
totalFeesCollected
viewfunction totalFeesCollected() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
TRIVI
viewfunction TRIVI() view returns (address)
UNISWAP_ROUTER
viewfunction UNISWAP_ROUTER() view returns (address)
USDC_TOKEN
viewfunction USDC_TOKEN() view returns (address)
usdcTestAmount
viewfunction usdcTestAmount() view returns (uint256)
VIRTUAL_TOKEN
viewfunction VIRTUAL_TOKEN() view returns (address)
virtualTestAmount
viewfunction virtualTestAmount() view returns (uint256)
WETH_TOKEN
viewfunction WETH_TOKEN() view returns (address)
buyWithCBBTC
nonpayablefunction buyWithCBBTC(uint256 cbbtcAmount, uint256 minTriviOut)
buyWithETH
payablefunction buyWithETH(uint256 minTriviOut) payable
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 usdcAmount, uint256 minTriviOut)
buyWithVIRTUAL
nonpayablefunction buyWithVIRTUAL(uint256 virtualAmount, uint256 minTriviOut)
rescueETH
nonpayablefunction rescueETH(uint256 amount)
rescueToken
nonpayablefunction rescueToken(address token, uint256 amount)
sellForCBBTC
nonpayablefunction sellForCBBTC(uint256 triviAmount, uint256 minCBBTCOut)
sellForETH
nonpayablefunction sellForETH(uint256 triviAmount, uint256 minETHOut)
sellForUSDC
nonpayablefunction sellForUSDC(uint256 triviAmount, uint256 minUSDCOut)
sellForVIRTUAL
nonpayablefunction sellForVIRTUAL(uint256 triviAmount, uint256 minVIRTUALOut)
setQuoteConfig
nonpayablefunction setQuoteConfig(uint256 newBufferBps, uint256 newDeadlineWindow)
setTreasury
nonpayablefunction setTreasury(address newTreasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BoughtWithETH
event BoughtWithETH(address indexed buyer, uint256 ethIn, uint256 triviOut, uint256 feeAmount)
BoughtWithToken
event BoughtWithToken(address indexed buyer, address indexed tokenIn, uint256 amountIn, uint256 triviOut, uint256 feeAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
QuoteConfigUpdated
event QuoteConfigUpdated(uint256 bufferBps, uint256 deadlineWindow)
SoldForETH
event SoldForETH(address indexed seller, uint256 triviIn, uint256 ethOut, uint256 feeAmount)
SoldForToken
event SoldForToken(address indexed seller, uint256 triviIn, address indexed tokenOut, uint256 amountOut, uint256 feeAmount)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
errors
No errors.
creation bytecode
0x60a06040526001805561012c60045561012c60055566038d7ea4c68000600655620f4240600755620186a0600855670de0b6b3a76400006009553480156200004657600080fd5b506040516200391f3803806200391f8339810160408190526200006991620002a0565b620000743362000233565b6001600160a01b038216620000ba5760405162461bcd60e51b8152602060048201526007602482015266054524956493d360cc1b60448201526064015b60405180910390fd5b6001600160a01b038116620000ff5760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b6044820152606401620000b1565b6001600160a01b03828116608052600280546001600160a01b031916918316919091179055604080516315ab88c960e31b8152905173420000000000000000000000000000000000000691734752ba5dbc23f44d87826276bf6fd6b1c372ad249163ad5c4648916004808201926020929091908290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b29190620002d8565b6001600160a01b031614620001f75760405162461bcd60e51b815260206004820152600a6024820152690aee4dedcce40ae8aa8960b31b6044820152606401620000b1565b6040516001600160a01b038216907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050620002fd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200029b57600080fd5b919050565b60008060408385031215620002b457600080fd5b620002bf8362000283565b9150620002cf6020840162000283565b90509250929050565b600060208284031215620002eb57600080fd5b620002f68262000283565b9392505050565b608051613549620003d6600039600081816104c101528181610a4101528181610aaa01528181610c7c01528181610ce501528181611037015281816110a0015281816114360152818161149f01528181611863015281816119b801528181611b9401528181611c8701528181611e84015281816120a7015281816120e0015281816121390152818161224001528181612297015281816123b0015281816124a0015281816124f90152818161264301528181612729015281816129fa01528181612b5801528181612c960152612cef01526135496000f3fe6080604052600436106101e75760003560e01c8063a97cecdc11610102578063e5bdb85811610095578063f73f518e11610064578063f73f518e14610585578063fa569274146105a5578063fd2ae590146105cd578063ffd42e21146105e357600080fd5b8063e5bdb85814610503578063ec17afd014610525578063f0f4426014610545578063f2fde38b1461056557600080fd5b8063c28399ef116100d1578063c28399ef14610477578063d82649201461048d578063dba59711146104af578063e062d567146104e357600080fd5b8063a97cecdc14610416578063aa307ca31461042c578063b116b42f14610442578063bf333f2c1461046257600080fd5b806337d277d41161017a5780637b3c3fb4116101495780637b3c3fb41461039d5780638da5cb5b146103c557806394dc9cf3146103e35780639e252f00146103f657600080fd5b806337d277d4146103145780634012c7fd1461034757806360c6d8ae1461036757806361d027b31461037d57600080fd5b80631a895884116101b65780631a8958841461029e578063249d39e9146102be57806330f53057146102d457806333f3d628146102f457600080fd5b8063093b9ee1146101f3578063110eb107146102155780631187833a1461025a578063166e11b71461027e57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e3660046130e0565b6105f9565b005b34801561022157600080fd5b50610235610230366004613102565b61074e565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561026657600080fd5b5061027060075481565b604051908152602001610251565b34801561028a57600080fd5b506102136102993660046130e0565b6107ac565b3480156102aa57600080fd5b506102136102b93660046130e0565b6108e9565b3480156102ca57600080fd5b5061027061271081565b3480156102e057600080fd5b506102136102ef3660046130e0565b6109f0565b34801561030057600080fd5b5061021361030f366004613137565b610bd7565b34801561032057600080fd5b5061032f6006602160991b0181565b6040516001600160a01b039091168152602001610251565b34801561035357600080fd5b506102136103623660046130e0565b610c2b565b34801561037357600080fd5b5061027060035481565b34801561038957600080fd5b5060025461032f906001600160a01b031681565b3480156103a957600080fd5b5061032f73cbb7c0000ab88b473b1f5afd9ef808440eed33bf81565b3480156103d157600080fd5b506000546001600160a01b031661032f565b6102136103f1366004613102565b610d85565b34801561040257600080fd5b50610213610411366004613102565b610f25565b34801561042257600080fd5b5061027060095481565b34801561043857600080fd5b5061027060065481565b34801561044e57600080fd5b5061021361045d3660046130e0565b610fe6565b34801561046e57600080fd5b50610270601981565b34801561048357600080fd5b5061027060055481565b34801561049957600080fd5b5061032f6000805160206134f483398151915281565b3480156104bb57600080fd5b5061032f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ef57600080fd5b506102136104fe3660046130e0565b611146565b34801561050f57600080fd5b5061032f6000805160206134d483398151915281565b34801561053157600080fd5b50610235610540366004613102565b611271565b34801561055157600080fd5b50610213610560366004613161565b6112aa565b34801561057157600080fd5b50610213610580366004613161565b611361565b34801561059157600080fd5b506102136105a03660046130e0565b6113e5565b3480156105b157600080fd5b5061032f73833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b3480156105d957600080fd5b5061027060045481565b3480156105ef57600080fd5b5061027060085481565b6002600154036106245760405162461bcd60e51b815260040161061b90613183565b60405180910390fd5b6002600155816106465760405162461bcd60e51b815260040161061b906131ba565b61066673cbb7c0000ab88b473b1f5afd9ef808440eed33bf333085611545565b60006127106106766019856131f2565b6106809190613209565b9050600061068e828561322b565b905081156106da576002546106c29073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906001600160a01b03168461164c565b81600360008282546106d4919061323e565b90915550505b60006106e6828561174a565b604080518781526020810183905290810185905290915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e0818906060015b60405180910390a3505060018055505050565b6000808080806127106107626019886131f2565b61076c9190613209565b610776908761322b565b905061078181611981565b945061078c81611b5d565b935061079781611c50565b92506107a281611e4f565b9150509193509193565b6002600154036107ce5760405162461bcd60e51b815260040161061b90613183565b6002600155816107f05760405162461bcd60e51b815260040161061b906131ba565b61081073833589fcd6edb6e08f4c7c32d4f71b54bda02913333085611545565b60006127106108206019856131f2565b61082a9190613209565b90506000610838828561322b565b905081156108845760025461086c9073833589fcd6edb6e08f4c7c32d4f71b54bda02913906001600160a01b03168461164c565b816003600082825461087e919061323e565b90915550505b60006108908285611fc9565b604080518781526020810183905290810185905290915073833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e08189060600161073b565b6000546001600160a01b031633146109135760405162461bcd60e51b815260040161061b90613251565b6107d08211156109575760405162461bcd60e51b815260206004820152600f60248201526e0c4eacccccae440e8dede40d0d2ced608b1b604482015260640161061b565b603c811015801561096a5750610e108111155b6109a95760405162461bcd60e51b815260206004820152601060248201526f191958591b1a5b99481a5b9d985b1a5960821b604482015260640161061b565b6004829055600581905560408051838152602081018390527f14045f4a3d16cb34daef42e409444e1d49619beb63723564f273e85dd7601892910160405180910390a15050565b600260015403610a125760405162461bcd60e51b815260040161061b90613183565b600260015581610a345760405162461bcd60e51b815260040161061b906131ba565b610a696001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611545565b6000612710610a796019856131f2565b610a839190613209565b90506000610a91828561322b565b90508115610aeb57600254610ad3906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168461164c565b8160036000828254610ae5919061323e565b90915550505b6000610af782856120d9565b604051909150600090339083908381818185875af1925050503d8060008114610b3c576040519150601f19603f3d011682016040523d82523d6000602084013e610b41565b606091505b5050905080610b885760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161061b565b604080518781526020810184905290810185905233907fb956d99dd0c259c3d9d420a89b7dfe23069187ea2a91ed70412f4788a52d77b29060600160405180910390a250506001805550505050565b6000546001600160a01b03163314610c015760405162461bcd60e51b815260040161061b90613251565b610c27610c166000546001600160a01b031690565b6001600160a01b038416908361164c565b5050565b600260015403610c4d5760405162461bcd60e51b815260040161061b90613183565b600260015581610c6f5760405162461bcd60e51b815260040161061b906131ba565b610ca46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611545565b6000612710610cb46019856131f2565b610cbe9190613209565b90506000610ccc828561322b565b90508115610d2657600254610d0e906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168461164c565b8160036000828254610d20919061323e565b90915550505b6000610d328285612239565b60408051878152602081018390529081018590529091506000805160206134d48339815191529033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b32409060600161073b565b600260015403610da75760405162461bcd60e51b815260040161061b90613183565b600260015534610de75760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b604482015260640161061b565b6000612710610df76019346131f2565b610e019190613209565b90506000610e0f823461322b565b90508115610ec9576002546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610e64576040519150601f19603f3d011682016040523d82523d6000602084013e610e69565b606091505b5050905080610eb05760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b604482015260640161061b565b8260036000828254610ec2919061323e565b9091555050505b6000610ed5828561230b565b604080513481526020810183905290810185905290915033907f8e3075c3ab83d55decf7f0bcc1b3893764b4bb37388fdd5d217991eb056bf0e29060600160405180910390a25050600180555050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161061b90613251565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610f9c576040519150601f19603f3d011682016040523d82523d6000602084013e610fa1565b606091505b5050905080610c275760405162461bcd60e51b8152602060048201526011602482015270115512081c995cd8dd594819985a5b1959607a1b604482015260640161061b565b6002600154036110085760405162461bcd60e51b815260040161061b90613183565b60026001558161102a5760405162461bcd60e51b815260040161061b906131ba565b61105f6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611545565b600061271061106f6019856131f2565b6110799190613209565b90506000611087828561322b565b905081156110e1576002546110c9906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168461164c565b81600360008282546110db919061323e565b90915550505b60006110ed8285612499565b604080518781526020810183905290810185905290915073833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b32409060600161073b565b6002600154036111685760405162461bcd60e51b815260040161061b90613183565b60026001558161118a5760405162461bcd60e51b815260040161061b906131ba565b6111a46000805160206134d4833981519152333085611545565b60006127106111b46019856131f2565b6111be9190613209565b905060006111cc828561322b565b90508115611212576002546111fa906000805160206134d4833981519152906001600160a01b03168461164c565b816003600082825461120c919061323e565b90915550505b600061121e82856125b5565b60408051878152602081018390529081018590529091506000805160206134d48339815191529033907fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e08189060600161073b565b60008060008061128085612675565b935061128b856128a1565b9250611296856128fe565b91506112a185612ae1565b90509193509193565b6000546001600160a01b031633146112d45760405162461bcd60e51b815260040161061b90613251565b6001600160a01b0381166113175760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b604482015260640161061b565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b6000546001600160a01b0316331461138b5760405162461bcd60e51b815260040161061b90613251565b6001600160a01b0381166113d95760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b604482015260640161061b565b6113e281612c3f565b50565b6002600154036114075760405162461bcd60e51b815260040161061b90613183565b6002600155816114295760405162461bcd60e51b815260040161061b906131ba565b61145e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611545565b600061271061146e6019856131f2565b6114789190613209565b90506000611486828561322b565b905081156114e0576002546114c8906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168461164c565b81600360008282546114da919061323e565b90915550505b60006114ec8285612c8f565b604080518781526020810183905290810185905290915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b32409060600161073b565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b1790528351808501909452601e84527f5361666545524332303a207472616e7366657246726f6d206661696c656400009084015290916000916115da91908816908490612de6565b80519091501561164457808060200190518101906115f89190613286565b6116445760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604482015260640161061b565b505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b1790528351808501909452601a84527f5361666545524332303a207472616e73666572206661696c65640000000000009084015290916000916116d991908716908490612de6565b80519091501561174357808060200190518101906116f79190613286565b6117435760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c6564000000000000604482015260640161061b565b5050505050565b600061177973cbb7c0000ab88b473b1f5afd9ef808440eed33bf6000805160206134f483398151915285612e56565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf816000815181106117c4576117c46132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b01816001815181106117ff576117ff6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600281518110611841576118416132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110611895576118956132be565b60200260200101906001600160a01b031690816001600160a01b03168152505060006000805160206134f48339815191526001600160a01b03166338ed173986868533600554426118e6919061323e565b6040518663ffffffff1660e01b8152600401611906959493929190613318565b6000604051808303816000875af1158015611925573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261194d9190810190613354565b9050806001825161195e919061322b565b8151811061196e5761196e6132be565b6020026020010151925050505b92915050565b60008160000361199357506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106119ea576119ea6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110611a2c57611a2c6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110611a6757611a676132be565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b81526000805160206134f48339815191529063d06ca61f90611ab29086908590600401613412565b600060405180830381865afa925050508015611af057506040513d6000823e601f3d908101601f19168201604052611aed9190810190613354565b60015b611afd5750600092915050565b8051600314611b10575060009392505050565b6000612710600454612710611b25919061322b565b83600281518110611b3857611b386132be565b6020026020010151611b4a91906131f2565b611b549190613209565b95945050505050565b600081600003611b6f57506000919050565b60408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611bc657611bc66132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110611c0857611c086132be565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600281518110611a6757611a676132be565b600081600003611c6257506000919050565b60408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611cb957611cb96132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110611cfb57611cfb6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110611d3657611d366132be565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600381518110611d7e57611d7e6132be565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b81526000805160206134f48339815191529063d06ca61f90611dc99086908590600401613412565b600060405180830381865afa925050508015611e0757506040513d6000823e601f3d908101601f19168201604052611e049190810190613354565b60015b611e145750600092915050565b8051600414611e27575060009392505050565b6000612710600454612710611e3c919061322b565b83600381518110611b3857611b386132be565b600081600003611e6157506000919050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611eb657611eb66132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110611ef857611ef86132be565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b81526000805160206134f48339815191529063d06ca61f90611f439086908590600401613412565b600060405180830381865afa925050508015611f8157506040513d6000823e601f3d908101601f19168201604052611f7e9190810190613354565b60015b611f8e5750600092915050565b8051600214611fa1575060009392505050565b6000612710600454612710611fb6919061322b565b83600181518110611b3857611b386132be565b6000611ff873833589fcd6edb6e08f4c7c32d4f71b54bda029136000805160206134f483398151915285612e56565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600081518110612043576120436132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110612085576120856132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611895576118956132be565b60006121147f00000000000000000000000000000000000000000000000000000000000000006000805160206134f483398151915285612e56565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061216b5761216b6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d4833981519152816001815181106121ad576121ad6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b01816002815181106121e8576121e86132be565b60200260200101906001600160a01b031690816001600160a01b03168152505060006000805160206134f48339815191526001600160a01b03166318cbafe586868530600554426118e6919061323e565b60006122747f00000000000000000000000000000000000000000000000000000000000000006000805160206134f483398151915285612e56565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106122c9576122c96132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110611895576118956132be565b60408051600380825260808201909252600091829190602082016060803683370190505090506006602160991b018160008151811061234c5761234c6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d48339815191528160018151811061238e5761238e6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106123e2576123e26132be565b60200260200101906001600160a01b031690816001600160a01b03168152505060006000805160206134f48339815191526001600160a01b0316637ff36ab58686853360055442612433919061323e565b6040518663ffffffff1660e01b8152600401612452949392919061342b565b60006040518083038185885af1158015612470573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261194d9190810190613354565b60006124d47f00000000000000000000000000000000000000000000000000000000000000006000805160206134f483398151915285612e56565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061252b5761252b6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d48339815191528160018151811061256d5761256d6132be565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600281518110611895576118956132be565b60006125de6000805160206134d48339815191526000805160206134f483398151915285612e56565b6040805160028082526060820183526000926020830190803683370190505090506000805160206134d483398151915281600081518110612621576126216132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611895576118956132be565b60008160000361268757506000919050565b60408051600380825260808201909252600091602082016060803683370190505090506006602160991b01816000815181106126c5576126c56132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110612707576127076132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061275b5761275b6132be565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b81526000805160206134f483398151915290631f00ca74906127a69086908590600401613412565b600060405180830381865afa9250505080156127e457506040513d6000823e601f3d908101601f191682016040526127e19190810190613354565b60015b6127f15750600092915050565b8051600314158061281c575080600081518110612810576128106132be565b60200260200101516000145b1561282b575060009392505050565b600061283a601961271061322b565b61271083600081518110612850576128506132be565b602002602001015161286291906131f2565b61286c9190613209565b90506000612710600454612710612883919061323e565b61288d90846131f2565b6128979190613209565b9695505050505050565b6000816000036128b357506000919050565b604080516003808252608082019092526000916020820160608036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda02913816000815181106126c5576126c56132be565b60008160000361291057506000919050565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf8160008151811061295b5761295b6132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600181518110612996576129966132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d4833981519152816002815181106129d8576129d86132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110612a2c57612a2c6132be565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b81526000805160206134f483398151915290631f00ca7490612a779086908590600401613412565b600060405180830381865afa925050508015612ab557506040513d6000823e601f3d908101601f19168201604052612ab29190810190613354565b60015b612ac25750600092915050565b8051600414158061281c575080600081518110612810576128106132be565b600081600003612af357506000919050565b6040805160028082526060820183526000926020830190803683370190505090506000805160206134d483398151915281600081518110612b3657612b366132be565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612b8a57612b8a6132be565b6001600160a01b03909216602092830291909101909101526040516307c0329d60e21b81526000805160206134f483398151915290631f00ca7490612bd59086908590600401613412565b600060405180830381865afa925050508015612c1357506040513d6000823e601f3d908101601f19168201604052612c109190810190613354565b60015b612c205750600092915050565b8051600214158061281c575080600081518110612810576128106132be565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000612cca7f00000000000000000000000000000000000000000000000000000000000000006000805160206134f483398151915285612e56565b60408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110612d2157612d216132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506000805160206134d483398151915281600181518110612d6357612d636132be565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110612d9e57612d9e6132be565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600381518110611895576118956132be565b6060600080856001600160a01b031685604051612e039190613484565b6000604051808303816000865af19150503d8060008114612e40576040519150601f19603f3d011682016040523d82523d6000602084013e612e45565b606091505b50915091506128978683838761303f565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b179052915190916000918291871690612eb4908590613484565b6000604051808303816000865af19150503d8060008114612ef1576040519150601f19603f3d011682016040523d82523d6000602084013e612ef6565b606091505b5091509150818015612f20575080511580612f20575080806020019051810190612f209190613286565b61164457604080516001600160a01b03878116602483015260006044808401919091528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601f84527f5361666545524332303a20726573657420617070726f7665206661696c65640090840152612fae929089169190612de6565b50604080516001600160a01b03878116602483015260448083018890528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601c84527f5361666545524332303a2072652d617070726f7665206661696c65640000000090840152613036929089169190612de6565b50505050505050565b606083156130ae5782516000036130a7576001600160a01b0385163b6130a75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161061b565b50816130d8565b8251156130be5782518084602001fd5b8160405162461bcd60e51b815260040161061b91906134a0565b949350505050565b600080604083850312156130f357600080fd5b50508035926020909101359150565b60006020828403121561311457600080fd5b5035919050565b80356001600160a01b038116811461313257600080fd5b919050565b6000806040838503121561314a57600080fd5b6131538361311b565b946020939093013593505050565b60006020828403121561317357600080fd5b61317c8261311b565b9392505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600890820152670416d6f756e743d360c41b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761197b5761197b6131dc565b60008261322657634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561197b5761197b6131dc565b8082018082111561197b5761197b6131dc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561329857600080fd5b8151801515811461317c57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561330d5781516001600160a01b0316875295820195908201906001016132e8565b509495945050505050565b85815284602082015260a06040820152600061333760a08301866132d4565b6001600160a01b0394909416606083015250608001529392505050565b6000602080838503121561336757600080fd5b825167ffffffffffffffff8082111561337f57600080fd5b818501915085601f83011261339357600080fd5b8151818111156133a5576133a56132a8565b8060051b604051601f19603f830116810181811085821117156133ca576133ca6132a8565b6040529182528482019250838101850191888311156133e857600080fd5b938501935b82851015613406578451845293850193928501926133ed565b98975050505050505050565b8281526040602082015260006130d860408301846132d4565b84815260806020820152600061344460808301866132d4565b6001600160a01b03949094166040830152506060015292915050565b60005b8381101561347b578181015183820152602001613463565b50506000910152565b60008251613496818460208701613460565b9190910192915050565b60208152600082518060208401526134bf816040850160208701613460565b601f01601f1916919091016040019291505056fe0000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24a2646970667358221220cf5c66289d016f50b2263826d57649af78776a1cc869c3181e6fb486e901741a64736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd