0 txs
0 calls
constructor
constructor()
functions
byteCode
purefunction byteCode(address pair) pure returns (bytes bytecode)
current
viewfunction current(address pair, address tokenIn, uint256 amountIn, address tokenOut) view returns (uint256 amountOut, uint256 lastUpdatedAgo)
current
viewfunction current(address tokenIn, uint256 amountIn, address tokenOut, bool sushiswap) view returns (uint256 amountOut, uint256 lastUpdatedAgo)
feeds
viewfunction feeds(address) view returns (address)
governance
viewfunction governance() view returns (address)
KP3R
viewfunction KP3R() view returns (address)
pairs
viewfunction pairs() view returns (address[])
pendingGovernance
viewfunction pendingGovernance() view returns (address)
quote
viewfunction quote(address pair, address tokenIn, uint256 amountIn, address tokenOut, uint256 points) view returns (uint256 amountOut, uint256 lastUpdatedAgo)
quote
viewfunction quote(address tokenIn, uint256 amountIn, address tokenOut, uint256 points, bool sushiswap) view returns (uint256 amountOut, uint256 lastUpdatedAgo)
sample
viewfunction sample(address pair, address tokenIn, uint256 amountIn, address tokenOut, uint256 points, uint256 window) view returns (uint256[] prices, uint256 lastUpdatedAgo)
sample
viewfunction sample(address tokenIn, uint256 amountIn, address tokenOut, uint256 points, uint256 window, bool sushiswap) view returns (uint256[] prices, uint256 lastUpdatedAgo)
workable
viewfunction workable() view returns (bool canWork)
workable
viewfunction workable(address pair) view returns (bool)
acceptGovernance
nonpayablefunction acceptGovernance()
cache
nonpayablefunction cache(address pair, uint256 size)
cache
nonpayablefunction cache(uint256 size)
deploy
nonpayablefunction deploy(address pair) returns (address feed)
setGovernance
nonpayablefunction setGovernance(address _governance)
update
nonpayablefunction update(address pair) returns (bool)
work
nonpayablefunction work()
work
nonpayablefunction work(address pair)
workForFree
nonpayablefunction workForFree()
workForFree
nonpayablefunction workForFree(address pair)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055613bdb806100326000396000f3fe60806040523480156200001157600080fd5b5060043610620001785760003560e01c8063399b2fb911620000d55780639f47130311620000875780639f4713031462000363578063ab033ea9146200037a578063ac8355921462000391578063f39c38a014620003a8578063fe54cee614620003bc578063ffb0a4a014620003d35762000178565b8063399b2fb914620002f65780634c96a389146200030057806350d4d86614620003175780635aa6e675146200032e578063740c25a2146200034257806380bb2bac14620003595762000178565b8063273c9d72116200012f578063273c9d7214620002555780632fba4aa9146200026c57806331ff3e9f1462000298578063322e9f0414620002af57806336df7ea514620002b9578063376346de14620002d05762000178565b806305e0b9a0146200017d578063122ba6d114620001b657806317bf72c614620001dd5780631c1b877214620001f6578063238efcbc146200021e57806323c87faf1462000228575b600080fd5b62000199731ceb5cb57c4d4e2b2433641b95dd330a33185a4481565b6040516001600160a01b0390911681526020015b60405180910390f35b620001cd620001c736600462001b7c565b620003ec565b604051620001ad92919062001dd3565b620001f4620001ee36600462001cfb565b620004d8565b005b6200020d6200020736600462001950565b620005a4565b6040519015158152602001620001ad565b620001f4620006ea565b6200023f6200023936600462001b17565b62000750565b60408051928352602083019190915201620001ad565b6200023f6200026636600462001976565b6200082f565b620001996200027d36600462001950565b6003602052600090815260409020546001600160a01b031681565b6200023f620002a936600462001ac9565b620008dd565b620001f4620009b4565b620001f4620002ca36600462001950565b62000d17565b620002e7620002e136600462001950565b62001018565b604051620001ad919062001e1d565b620001f462001087565b620001996200031136600462001950565b6200116e565b620001cd6200032836600462001a30565b6200131e565b60005462000199906001600160a01b031681565b620001f46200035336600462001950565b620013e2565b6200020d6200146f565b6200020d6200037436600462001950565b62001562565b620001f46200038b36600462001950565b620015ca565b620001f4620003a236600462001a9b565b6200162d565b60015462000199906001600160a01b031681565b6200023f620003cd366004620019cf565b6200166e565b620003dd62001724565b604051620001ad919062001d84565b606060008083620004095762000403898862001788565b62000415565b62000415898862001873565b6001600160a01b038181166000908152600360205260409081902054905163014f267360e31b81528c83166004820152602481018c90528a83166044820152606481018a9052608481018990529293501690630a7933989060a40160006040518083038186803b1580156200048957600080fd5b505afa1580156200049e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620004c8919081019062001be9565b9250925050965096945050505050565b60005b600254811015620005a05760036000600283815481106200050c57634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b0390811684529083019390935260409182019020549051630bdfb96360e11b8152600481018590529116906317bf72c690602401600060405180830381600087803b1580156200057157600080fd5b505af115801562000586573d6000803e3d6000fd5b505050508080620005979062001ebb565b915050620004db565b5050565b604051630eef592f60e21b8152336004820152600090731ceb5cb57c4d4e2b2433641b95dd330a33185a4490633bbd64bc90602401602060405180830381600087803b158015620005f457600080fd5b505af115801562000609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200062f919062001cbd565b620006575760405162461bcd60e51b81526004016200064e9062001e52565b60405180910390fd5b6001600160a01b03808316600090815260036020908152604080832054815163a2e6204560e01b8152915194169363a2e6204593600480840194938390030190829087803b158015620006a957600080fd5b505af1158015620006be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006e4919062001cbd565b92915050565b6001546001600160a01b031633146200072c5760405162461bcd60e51b815260206004820152600360248201526221704760e81b60448201526064016200064e565b600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000806000836200076d5762000767888762001788565b62000779565b62000779888762001873565b6001600160a01b038181166000908152600360205260409081902054905163ae6ec9b760e01b81528b83166004820152602481018b9052898316604482015260648101899052929350169063ae6ec9b790608401604080518083038186803b158015620007e557600080fd5b505afa158015620007fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000820919062001d2d565b92509250509550959350505050565b6001600160a01b038481166000908152600360205260408082205490516353ae9ce160e11b815286841660048201526024810186905284841660448201529192839291169063a75d39c290606401604080518083038186803b1580156200089557600080fd5b505afa158015620008aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008d0919062001d2d565b9150915094509492505050565b600080600083620008fa57620008f4878662001788565b62000906565b62000906878662001873565b6001600160a01b03818116600090815260036020526040908190205490516353ae9ce160e11b81528a83166004820152602481018a90528883166044820152929350169063a75d39c290606401604080518083038186803b1580156200096b57600080fd5b505afa15801562000980573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009a6919062001d2d565b925092505094509492505050565b60005a604051630eef592f60e21b8152336004820152909150731ceb5cb57c4d4e2b2433641b95dd330a33185a4490633bbd64bc90602401602060405180830381600087803b15801562000a0757600080fd5b505af115801562000a1c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a42919062001cbd565b62000a615760405162461bcd60e51b81526004016200064e9062001e52565b62000a6b6200146f565b62000a9e5760405162461bcd60e51b8152602060048201526002602482015261215760f01b60448201526064016200064e565b60005b60025481101562000b8257600360006002838154811062000ad257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822054835163a2e6204560e01b8152935194169363a2e6204593600480820194918390030190829087803b15801562000b3157600080fd5b505af115801562000b46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6c919062001cbd565b508062000b798162001ebb565b91505062000aa1565b506000731ceb5cb57c4d4e2b2433641b95dd330a33185a446001600160a01b03166309aff02b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000bd357600080fd5b505afa15801562000be8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c0e919062001cdc565b6001600160a01b031663525ea6315a62000c29908562001e6e565b6040518263ffffffff1660e01b815260040162000c4891815260200190565b60206040518083038186803b15801562000c6157600080fd5b505afa15801562000c76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c9c919062001d14565b6040516346cd669760e11b8152731ceb5cb57c4d4e2b2433641b95dd330a33185a446004820181905233602483015260448201839052919250638d9acd2e906064015b600060405180830381600087803b15801562000cfa57600080fd5b505af115801562000d0f573d6000803e3d6000fd5b505050505050565b60005a604051630eef592f60e21b8152336004820152909150731ceb5cb57c4d4e2b2433641b95dd330a33185a4490633bbd64bc90602401602060405180830381600087803b15801562000d6a57600080fd5b505af115801562000d7f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000da5919062001cbd565b62000dc45760405162461bcd60e51b81526004016200064e9062001e52565b6001600160a01b03808316600090815260036020908152604080832054815163a2e6204560e01b8152915194169363a2e6204593600480840194938390030190829087803b15801562000e1657600080fd5b505af115801562000e2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e51919062001cbd565b62000e845760405162461bcd60e51b8152602060048201526002602482015261215760f01b60448201526064016200064e565b6000731ceb5cb57c4d4e2b2433641b95dd330a33185a446001600160a01b03166309aff02b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ed457600080fd5b505afa15801562000ee9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f0f919062001cdc565b6001600160a01b031663525ea6315a62000f2a908562001e6e565b6040518263ffffffff1660e01b815260040162000f4991815260200190565b60206040518083038186803b15801562000f6257600080fd5b505afa15801562000f77573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f9d919062001d14565b6040516346cd669760e11b8152731ceb5cb57c4d4e2b2433641b95dd330a33185a446004820181905233602483015260448201839052919250638d9acd2e90606401600060405180830381600087803b15801562000ffa57600080fd5b505af11580156200100f573d6000803e3d6000fd5b50505050505050565b6060604051806020016200102c9062001942565b601f1982820381018352601f9091011660408181526001600160a01b03851660208301520160408051601f198184030181529082905262001071929160200162001d51565b6040516020818303038152906040529050919050565b60005b6002548110156200116b576003600060028381548110620010bb57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822054835163a2e6204560e01b8152935194169363a2e6204593600480820194918390030190829087803b1580156200111a57600080fd5b505af11580156200112f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001155919062001cbd565b5080620011628162001ebb565b9150506200108a565b50565b600080546001600160a01b03163314620011b05760405162461bcd60e51b8152602060048201526002602482015261214760f01b60448201526064016200064e565b6001600160a01b038281166000908152600360205260409020541615620011ff5760405162461bcd60e51b8152602060048201526002602482015261504560f01b60448201526064016200064e565b600060405180602001620012139062001942565b601f1982820381018352601f9091011660408181526001600160a01b03861660208301520160408051601f198184030181529082905262001258929160200162001d51565b60408051601f19818403018152908290526001600160601b0319606086901b1660208301529150600090603401604051602081830303815290604052805190602001209050808251602084016000f59250823b620012b557600080fd5b50506001600160a01b03918216600081815260036020526040812080549484166001600160a01b03199586161790556002805460018101825591527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180549093161790915590565b6001600160a01b0386811660009081526003602052604080822054905163014f267360e31b8152888416600482015260248101889052868416604482015260648101869052608481018590526060939190911690630a7933989060a40160006040518083038186803b1580156200139457600080fd5b505afa158015620013a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620013d3919081019062001be9565b91509150965096945050505050565b6001600160a01b03808216600090815260036020908152604080832054815163a2e6204560e01b8152915194169363a2e6204593600480840194938390030190829087803b1580156200143457600080fd5b505af115801562001449573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a0919062001cbd565b600160005b6002548110156200155e576003600060028381548110620014a557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03908116845283820194909452604092830190912054825163983586d960e01b8152925193169263983586d9926004808201939291829003018186803b1580156200150457600080fd5b505afa15801562001519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200153f919062001cbd565b6200154957600091505b80620015558162001ebb565b91505062001474565b5090565b6001600160a01b03808216600090815260036020908152604080832054815163983586d960e01b815291519394169263983586d992600480840193919291829003018186803b158015620015b557600080fd5b505afa158015620006be573d6000803e3d6000fd5b6000546001600160a01b031633146200160b5760405162461bcd60e51b8152602060048201526002602482015261214760f01b60448201526064016200064e565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0382811660009081526003602052604090819020549051630bdfb96360e11b8152600481018490529116906317bf72c69060240162000cdf565b6001600160a01b0385811660009081526003602052604080822054905163ae6ec9b760e01b81528784166004820152602481018790528584166044820152606481018590529192839291169063ae6ec9b790608401604080518083038186803b158015620016db57600080fd5b505afa158015620016f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001716919062001d2d565b915091509550959350505050565b606060028054806020026020016040519081016040528092919081815260200182805480156200177e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200175f575b5050505050905090565b6000806000836001600160a01b0316856001600160a01b031610620017af578385620017b2565b84845b60408051606084811b6001600160601b03199081166020808501919091529185901b166034830152825160288184030181526048830190935282519201919091206001600160f81b03196068830152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60601b6069830152607d8201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d820152919350915060bd015b60408051601f19818403018152919052805160209091012095945050505050565b6000806000836001600160a01b0316856001600160a01b0316106200189a5783856200189d565b84845b60408051606084811b6001600160601b03199081166020808501919091529185901b166034830152825160288184030181526048830190935282519201919091206001600160f81b031960688301527330d76b6d9404bb15e594daf66193b61dceaf1d3160621b6069830152607d8201527fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303609d820152919350915060bd0162001852565b611c7b8062001f2b83390190565b60006020828403121562001962578081fd5b81356200196f8162001f05565b9392505050565b600080600080608085870312156200198c578283fd5b8435620019998162001f05565b93506020850135620019ab8162001f05565b9250604085013591506060850135620019c48162001f05565b939692955090935050565b600080600080600060a08688031215620019e7578081fd5b8535620019f48162001f05565b9450602086013562001a068162001f05565b935060408601359250606086013562001a1f8162001f05565b949793965091946080013592915050565b60008060008060008060c0878903121562001a49578081fd5b863562001a568162001f05565b9550602087013562001a688162001f05565b945060408701359350606087013562001a818162001f05565b9598949750929560808101359460a0909101359350915050565b6000806040838503121562001aae578182fd5b823562001abb8162001f05565b946020939093013593505050565b6000806000806080858703121562001adf578384fd5b843562001aec8162001f05565b935060208501359250604085013562001b058162001f05565b91506060850135620019c48162001f1b565b600080600080600060a0868803121562001b2f578081fd5b853562001b3c8162001f05565b945060208601359350604086013562001b558162001f05565b925060608601359150608086013562001b6e8162001f1b565b809150509295509295909350565b60008060008060008060c0878903121562001b95578182fd5b863562001ba28162001f05565b955060208701359450604087013562001bbb8162001f05565b9350606087013592506080870135915060a087013562001bdb8162001f1b565b809150509295509295509295565b6000806040838503121562001bfc578182fd5b825167ffffffffffffffff8082111562001c14578384fd5b818501915085601f83011262001c28578384fd5b815160208282111562001c3f5762001c3f62001eef565b8160051b604051601f19603f8301168101818110868211171562001c675762001c6762001eef565b604052838152828101945085830182870184018b101562001c86578889fd5b8896505b8487101562001caa57805186526001969096019594830194830162001c8a565b5097909101519698969750505050505050565b60006020828403121562001ccf578081fd5b81516200196f8162001f1b565b60006020828403121562001cee578081fd5b81516200196f8162001f05565b60006020828403121562001d0d578081fd5b5035919050565b60006020828403121562001d26578081fd5b5051919050565b6000806040838503121562001d40578182fd5b505080516020909101519092909150565b6000835162001d6581846020880162001e88565b83519083019062001d7b81836020880162001e88565b01949350505050565b6020808252825182820181905260009190848201906040850190845b8181101562001dc75783516001600160a01b03168352928401929184019160010162001da0565b50909695505050505050565b604080825283519082018190526000906020906060840190828701845b8281101562001e0e5781518452928401929084019060010162001df0565b50505092019290925292915050565b600060208252825180602084015262001e3e81604085016020870162001e88565b601f01601f19169190910160400192915050565b602080825260029082015261214b60f01b604082015260600190565b60008282101562001e835762001e8362001ed9565b500390565b60005b8381101562001ea557818101518382015260200162001e8b565b8381111562001eb5576000848401525b50505050565b600060001982141562001ed25762001ed262001ed9565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200116b57600080fd5b80151581146200116b57600080fdfe60c0604052600160701b6201000055670de0b6b3a764000062010001553480156200002957600080fd5b5060405162001c7b38038062001c7b8339810160408190526200004c9162000319565b33606090811b6080526001600160601b031982821b1660a05260408051630240bc6b60e21b815290516000926001600160a01b03851692630902f1ac9260048083019392829003018186803b158015620000a557600080fd5b505afa158015620000ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e0919062000349565b92505050600062010000546201000154846001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012a57600080fd5b505afa1580156200013f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016591906200039d565b620001719190620003d7565b6200017d9190620003b6565b9050600062010000546201000154856001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c557600080fd5b505afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020091906200039d565b6200020c9190620003d7565b620002189190620003b6565b6040805160608101825263ffffffff861681526001600160701b03808616602083015283169181019190915261ffff8054929350909160009190811690826200026183620003f9565b91906101000a81548161ffff021916908361ffff16021790555061ffff1661ffff81106200029f57634e487b7160e01b600052603260045260246000fd5b825191018054602084015160409094015163ffffffff9093166001600160901b0319909116176401000000006001600160701b0394851602176001600160901b0316600160901b9390921692909202179055506200043492505050565b80516001600160701b03811681146200031457600080fd5b919050565b6000602082840312156200032b578081fd5b81516001600160a01b038116811462000342578182fd5b9392505050565b6000806000606084860312156200035e578182fd5b6200036984620002fc565b92506200037960208501620002fc565b9150604084015163ffffffff8116811462000392578182fd5b809150509250925092565b600060208284031215620003af578081fd5b5051919050565b600082620003d257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615620003f457620003f46200041e565b500290565b600061ffff808316818114156200041457620004146200041e565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b60805160601c60a05160601c6117d5620004a6600039600081816101830152818161041f0152818161067b0152818161088001528181610a6501528181610b0401528181610bad01528181611044015281816111d10152818161128001526113330152600061093101526117d56000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063983586d911610066578063983586d914610136578063a2e620451461014e578063a75d39c214610156578063a8aa1b311461017e578063ae6ec9b7146101bd57610093565b80630a7933981461009857806317bf72c6146100c25780631f7b6d32146100d7578063252c09d7146100f7575b600080fd5b6100ab6100a636600461158b565b6101d0565b6040516100b9929190611656565b60405180910390f35b6100d56100d0366004611626565b610737565b005b61ffff80546100e4911681565b60405161ffff90911681526020016100b9565b61010a610105366004611626565b6107b1565b6040805163ffffffff90941684526001600160701b0392831660208501529116908201526060016100b9565b61013e6107ea565b60405190151581526020016100b9565b61013e610924565b61016961016436600461150d565b610994565b604080519283526020830191909152016100b9565b6101a57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b9565b6101696101cb366004611548565b610d5d565b6060600080856001600160a01b0316886001600160a01b0316106101f55785886101f8565b87865b5090508467ffffffffffffffff81111561022257634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561024b578160200160208202803683370190505b509250876001600160a01b0316816001600160a01b031614156104d45761ffff805460009161027d91600191166116f5565b61ffff169050600061028f86886116d6565b6102999083611718565b60408051606081018252600080825260208201819052918101829052919250905b8383101561041b5760408051606081018252600080825260208201819052918101829052908461ffff81106102ff57634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b9091041690820152905060006103488a8661169e565b61ffff811061036757634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff81168084526001600160701b03600160201b830481166020808701829052600160901b9094048216948601949094529185015185519496506103d094921692916103c49161172f565b63ffffffff168f611100565b8884815181106103f057634e487b7160e01b600052603260045260246000fd5b602090810291909101015261040683600161169e565b92506104149050888461169e565b92506102ba565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561047657600080fd5b505afa15801561048a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ae91906115d8565b845163ffffffff91821694506104c8935016905082611718565b9650505050505061072c565b61ffff80546000916104e991600191166116f5565b61ffff16905060006104fb86886116d6565b6105059083611718565b60408051606081018252600080825260208201819052918101829052919250905b838310156106775760408051606081018252600080825260208201819052918101829052908461ffff811061056b57634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b9091041690820152905060006105b48a8661169e565b61ffff81106105d357634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff81168084526001600160701b03600160201b830481166020860152600160901b909204821684840181905292850151855194965061062c94921692916103c49161172f565b88848151811061064c57634e487b7160e01b600052603260045260246000fd5b602090810291909101015261066283600161169e565b92506106709050888461169e565b9250610526565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156106d257600080fd5b505afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a91906115d8565b845163ffffffff9182169450610724935016905082611718565b965050505050505b509550959350505050565b61ffff805460009161074b9184911661169e565b61ffff8054919250165b818110156107ac57600160008261ffff811061078157634e487b7160e01b600052603260045260246000fd5b01805463ffffffff191663ffffffff92909216919091179055806107a48161176e565b915050610755565b505050565b60008161ffff81106107c257600080fd5b015463ffffffff811691506001600160701b03600160201b8204811691600160901b90041683565b61ffff80546000918291829161080391600191166116f5565b61ffff1661ffff811061082657634e487b7160e01b600052603260045260246000fd5b6040805160608082018352939092015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b90910416828201528051630240bc6b60e21b815290519193506000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692630902f1ac926004818101939291829003018186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb91906115d8565b845163ffffffff91821694506000935061091792501683611718565b6107081093505050505b90565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109875760405162461bcd60e51b815260206004820152600260248201526110a360f11b604482015260640160405180910390fd5b61098f61113b565b905090565b6000806000836001600160a01b0316866001600160a01b0316106109b95783866109bc565b85845b5061ffff805491925060009182916109d791600191166116f5565b61ffff1661ffff81106109fa57634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b82048116602080860191909152600160901b9092041683830152620100005462010001548351635909c0d560e01b81529351949550600094919390926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692635909c0d5926004818101939291829003018186803b158015610aa857600080fd5b505afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae0919061163e565b610aea91906116d6565b610af491906116b6565b90506000620100005462010001547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5b57600080fd5b505afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b93919061163e565b610b9d91906116d6565b610ba791906116b6565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c91906115d8565b63ffffffff1692505050836000015163ffffffff16811415610cce5761ffff8054600091610c6d91600291166116f5565b61ffff1661ffff8110610c9057634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b909104169082015293505b8351600090610ce39063ffffffff1683611718565b90508015610cf15780610cf4565b60015b90508a6001600160a01b0316866001600160a01b03161415610d3057610d2985602001516001600160701b031685838d611100565b9750610d4c565b610d4985604001516001600160701b031684838d611100565b97505b809650505050505050935093915050565b6000806000846001600160a01b0316876001600160a01b031610610d82578487610d85565b86855b5061ffff80549192506000918291610da091600191166116f5565b61ffff1690506000610db28783611718565b9050610dd7604080516060810182526000808252602082018190529181019190915290565b604080516060810182526000808252602082018190529181019190915260008c6001600160a01b0316876001600160a01b03161415610f27575b84841015610f2257610e2484600161169e565b905060008461ffff8110610e4857634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b9091041690820152925060008161ffff8110610ea757634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff81168084526001600160701b03600160201b830481166020808701829052600160901b909404821694860194909452918701518751949650610f0494921692916103c49161172f565b610f0e908761169e565b955083610f1a8161176e565b945050610e11565b611034565b8484101561103457610f3a84600161169e565b905060008461ffff8110610f5e57634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b9091041690820152925060008161ffff8110610fbd57634e487b7160e01b600052603260045260246000fd5b60408051606081018252929091015463ffffffff81168084526001600160701b03600160201b830481166020860152600160901b909204821684840181905292870151875194965061101694921692916103c49161172f565b611020908761169e565b95508361102c8161176e565b945050610f27565b61103e8a876116b6565b985060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d391906115d8565b855163ffffffff91821694506110ed935016905082611718565b9850505050505050505094509492505050565b600082620100015486866111149190611718565b61111e90856116d6565b61112891906116b6565b61113291906116b6565b95945050505050565b61ffff80546000918291829161115491600191166116f5565b61ffff1661ffff811061117757634e487b7160e01b600052603260045260246000fd5b6040805160608082018352939092015463ffffffff811683526001600160701b03600160201b820481166020850152600160901b90910416828201528051630240bc6b60e21b815290519193506000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692630902f1ac926004818101939291829003018186803b15801561121457600080fd5b505afa158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c91906115d8565b84519093506000925061126091508361172f565b90506107088163ffffffff1611156114d0576000620100005462010001547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d757600080fd5b505afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f919061163e565b61131991906116d6565b61132391906116b6565b90506000620100005462010001547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a3d54936040518163ffffffff1660e01b815260040160206040518083038186803b15801561138a57600080fd5b505afa15801561139e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c2919061163e565b6113cc91906116d6565b6113d691906116b6565b6040805160608101825263ffffffff871681526001600160701b03808616602083015283169181019190915261ffff80549293509091600091908116908261141d8361174c565b91906101000a81548161ffff021916908361ffff16021790555061ffff1661ffff811061145a57634e487b7160e01b600052603260045260246000fd5b825191018054602084015160409094015163ffffffff90931671ffffffffffffffffffffffffffffffffffff1990911617600160201b6001600160701b03948516021771ffffffffffffffffffffffffffffffffffff16600160901b939092169290920217905550600194506109219350505050565b6000935050505090565b80356001600160a01b03811681146114f157600080fd5b919050565b80516001600160701b03811681146114f157600080fd5b600080600060608486031215611521578283fd5b61152a846114da565b92506020840135915061153f604085016114da565b90509250925092565b6000806000806080858703121561155d578081fd5b611566856114da565b93506020850135925061157b604086016114da565b9396929550929360600135925050565b600080600080600060a086880312156115a2578081fd5b6115ab866114da565b9450602086013593506115c0604087016114da565b94979396509394606081013594506080013592915050565b6000806000606084860312156115ec578283fd5b6115f5846114f6565b9250611603602085016114f6565b9150604084015163ffffffff8116811461161b578182fd5b809150509250925092565b600060208284031215611637578081fd5b5035919050565b60006020828403121561164f578081fd5b5051919050565b604080825283519082018190526000906020906060840190828701845b8281101561168f57815184529284019290840190600101611673565b50505092019290925292915050565b600082198211156116b1576116b1611789565b500190565b6000826116d157634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156116f0576116f0611789565b500290565b600061ffff8381169083168181101561171057611710611789565b039392505050565b60008282101561172a5761172a611789565b500390565b600063ffffffff8381169083168181101561171057611710611789565b600061ffff8083168181141561176457611764611789565b6001019392505050565b600060001982141561178257611782611789565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212202b1287cf3deac18489452cddca72d9b0093e996441e6bd33526be15bbecf339a64736f6c63430008030033a26469706673582212204c10fd15e4ebb2c8015f8f0ffe2327d84927fde61121e21c00150d8780aa9a6264736f6c63430008030033