0 txs
1 call
constructor
constructor() payable
functions
buildBestSwap
viewfunction buildBestSwap(address to, bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount, uint256 slippageBps, uint256 deadline) view returns (tuple best, bytes callData, uint256 amountLimit, uint256 msgValue)
getQuotes
viewfunction getQuotes(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (tuple best, tuple[] quotes)
limit
purefunction limit(bool exactOut, uint256 quoted, uint256 bps) pure returns (uint256)
quoteSushi
viewfunction quoteSushi(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteV2
viewfunction quoteV2(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteV3
viewfunction quoteV3(bool exactOut, address tokenIn, address tokenOut, uint24 fee, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut, bool singleTick)
quoteZAMM
viewfunction quoteZAMM(bool exactOut, uint256 feeOrHook, address tokenIn, address tokenOut, uint256 idIn, uint256 idOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
events
No events.
errors
InsufficientInputAmount
error InsufficientInputAmount()
InsufficientLiquidity
error InsufficientLiquidity()
InsufficientOutputAmount
error InsufficientOutputAmount()
NoRoute
error NoRoute()
UnsupportedAMM
error UnsupportedAMM()
creation bytecode
0x6080806040526132ed90816100128239f3fe60806040526004361015610011575f80fd5b5f3560e01c8063732ef91a1461054457806380afe30714610528578063ac67a76e146104bf578063b8e251221461048c578063c0bb84b31461043c578063e1fd10bc146103c45763e779898714610066575f80fd5b346103c05760e03660031901126103c0576004356001600160a01b038116908190036103c0576024358015158082036103c0576100a161056f565b906100aa610585565b926084359060c435956100bb6114ab565b506060956100cb84828886611565565b509660408801805115806103b5575b6103a6576100f591851561039c5750515b60a435908561214f565b9487516005811015610388576101d557916101919860209694926101009998969460405193630dc149f360e31b8a8601526024850152604484015260018060a01b038716606484015260018060a01b031660848301528360a48301528460c483015260e482015260e4815261016c6101048261065b565b935b6001600160a01b03166101cc57156101c75750805b915b604051968780966105e2565b60e0608086015280519384918260e0880152018686015e5f84840186015260a084015260c0830152601f01601f19168101030190f35b610183565b50505f91610185565b97875160058110156103885760010361025757509161010096959391602095936101919960405192630dc149f360e31b898501526024840152604483015260018060a01b038616606483015260018060a01b031660848201528260a48201528360c48201525f1960e482015260e481526102516101048261065b565b9361016e565b9787516005811015610388576002036102eb579161019198602096949289989694886101009b015190604051946313ab6b5f60e31b8b87015260248601526044850152606484015260018060a01b038716608484015260018060a01b031660a48301525f60c48301525f60e4830152836101048301528461012483015261014482015261014481526102516101648261065b565b94929096959391865160058110156103885760030361037957610191986101009860209762ffffff60648a8c01510216906040519463afeae12b60e01b8b87015260248601526044850152606484015260018060a01b038716608484015260018060a01b031660a48301528360c48301528460e483015261010482015261010481526102516101248261065b565b633953ec5d60e21b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b90508801516100eb565b636586e12960e01b5f5260045ffd5b5081890151156100da565b5f80fd5b346103c0576103de6103d53661059b565b92919091611565565b906040519182916103f38360a08101926105e2565b60a060808401528151809152602060c084019201905f5b818110610418575050500390f35b91935091602060808261042e60019488516105e2565b01940191019184939261040a565b346103c05760e03660031901126103c057604061048061045a610560565b61046261056f565b61046a610585565b9160c4359260a4359260843592602435906112a9565b82519182526020820152f35b346103c05760603660031901126103c05760206104b76104aa610560565b604435906024359061214f565b604051908152f35b346103c05760a03660031901126103c0576104d8610560565b6024356001600160a01b03811681036103c0576104f361056f565b9160643562ffffff811681036103c05760609361051393608435936109b1565b90604051928352602083015215156040820152f35b346103c057604061048061053b3661059b565b929190916108d6565b346103c05760406104806105573661059b565b929190916106d2565b6004359081151582036103c057565b604435906001600160a01b03821682036103c057565b606435906001600160a01b03821682036103c057565b60809060031901126103c05760043580151581036103c057906024356001600160a01b03811681036103c057906044356001600160a01b03811681036103c0579060643590565b80516005811015610388576060918291845260208101516020850152604081015160408501520151910152565b60a0810190811067ffffffffffffffff82111761062b57604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761062b57604052565b90601f8019910116810190811067ffffffffffffffff82111761062b57604052565b51906001600160701b03821682036103c057565b519063ffffffff821682036103c057565b908160609103126103c0576106b68161067d565b916106cf60406106c86020850161067d565b9301610691565b90565b9190939293841561083d5761070691906001600160a01b038116156108bb575b6001600160a01b0382161561089f5761216b565b91906040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261074360488261065b565b5190207f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f9060405191602083019160ff60f81b8352735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60601b602185015260358401526055830152605582526107ae60758361065b565b905190206001600160a01b0316803b1561083d57606060049160405192838092630240bc6b60e21b82525afa918215610894575f915f93610860575b5015610850576001600160701b0380915b1691169181158015610848575b61083d5715610832578184101561082857906108249184611a53565b9190565b505090505f905f90565b906106cf91846119cd565b50505090505f905f90565b508215610808565b906001600160701b0380916107fb565b909250610885915060603d60601161088d575b61087d818361065b565b8101906106a2565b50915f6107ea565b503d610873565b6040513d5f823e3d90fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2915061216b565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26106f2565b9190939293841561083d5761090991906001600160a01b038116156108bb576001600160a01b0382161561089f5761216b565b91906040519060208201926001600160601b03199060601b1683526001600160601b03199060601b1660348201526028815261094660488261065b565b5190207fe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c63039060405191602083019160ff60f81b835273302bb91e38d9638984317de928b85ddf3a793cab60621b602185015260358401526055830152605582526107ae60758361065b565b939291908315610a3e576109e3946001600160a01b03821615610a22575b6001600160a01b03831615610a0657611b23565b6040810151909190156109fd576020825192015190600190565b5f915081908190565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29250611b23565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291506109cf565b50505050505f905f905f90565b91909392935f918515610cc457610a62908261216b565b926001600160a01b0392831692168203610cbb575f915f915b6080604051610a898161060f565b858152602080820195865260408083019586526001600160a01b039485166060808501918252600195909401948552815192830198895296519082015293518316908401529251166080820152905160a0828101919091528152610aee60c08261065b565b519020604051906315895f4760e31b8252600482015260e0816024816d040470635eb91b7ce4d132d616ed5afa918215610894575f915f93610c6b575b5015610c5b576001600160701b0380915b16911692811590818015610c53575b610c465715610bfe575082851015610bf65784610b679161198f565b916127108302928084046127101490151715610be257610b88858392611a46565b91610bce575061270f90818102918183041490151715610bba57610bab916119af565b60018101809111610bba579190565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b82526011600452602482fd5b509250508190565b9150849261270f93848102948186041490151715610bba57610c20908461198f565b916127108202918204612710141715610bba576106cf92610c40916119a2565b906119af565b505050505090505f905f90565b508415610b4b565b906001600160701b038091610b3c565b9150915060e0813d60e011610cb3575b81610c8860e0938361065b565b810103126103c057610c998161067d565b610caa60406106c86020850161067d565b5090915f610b2b565b3d9150610c7b565b5f915f91610a7b565b5050505090505f905f90565b91909392935f918515610cc457610ce7908261216b565b926001600160a01b0392831692168203610eba575f915f915b6080604051610d0e8161060f565b858152602080820195865260408083019586526001600160a01b039485166060808501918252600595909401948552815192830198895296519082015293518316908401529251166080820152905160a0828101919091528152610d7360c08261065b565b519020604051906315895f4760e31b8252600482015260e0816024816d040470635eb91b7ce4d132d616ed5afa918215610894575f915f93610e6a575b5015610e5a576001600160701b0380915b16911692811590818015610e52575b610c465715610e30575082851015610bf65784610dec9161198f565b916127108302928084046127101490151715610be257610e0d858392611a46565b91610bce575061270b90818102918183041490151715610bba57610bab916119af565b9150849261270b93848102948186041490151715610bba57610c20908461198f565b508415610dd0565b906001600160701b038091610dc1565b9150915060e0813d60e011610eb2575b81610e8760e0938361065b565b810103126103c057610e988161067d565b610ea960406106c86020850161067d565b5090915f610db0565b3d9150610e7a565b5f915f91610d00565b91909392935f918515610cc457610eda908261216b565b926001600160a01b03928316921682036110ad575f915f915b6080604051610f018161060f565b858152602080820195865260408083019586526001600160a01b039485166060808501918252601e95909401948552815192830198895296519082015293518316908401529251166080820152905160a0828101919091528152610f6660c08261065b565b519020604051906315895f4760e31b8252600482015260e0816024816d040470635eb91b7ce4d132d616ed5afa918215610894575f915f9361105d575b501561104d576001600160701b0380915b16911692811590818015611045575b610c465715611023575082851015610bf65784610fdf9161198f565b916127108302928084046127101490151715610be257611000858392611a46565b91610bce57506126f290818102918183041490151715610bba57610bab916119af565b915084926126f293848102948186041490151715610bba57610c20908461198f565b508415610fc3565b906001600160701b038091610fb4565b9150915060e0813d60e0116110a5575b8161107a60e0938361065b565b810103126103c05761108b8161067d565b61109c60406106c86020850161067d565b5090915f610fa3565b3d915061106d565b5f915f91610ef3565b91909392935f918515610cc4576110cd908261216b565b926001600160a01b03928316921682036112a0575f915f915b60806040516110f48161060f565b858152602080820195865260408083019586526001600160a01b039485166060808501918252606495909401948552815192830198895296519082015293518316908401529251166080820152905160a082810191909152815261115960c08261065b565b519020604051906315895f4760e31b8252600482015260e0816024816d040470635eb91b7ce4d132d616ed5afa918215610894575f915f93611250575b5015611240576001600160701b0380915b16911692811590818015611238575b610c465715611216575082851015610bf657846111d29161198f565b916127108302928084046127101490151715610be2576111f3858392611a46565b91610bce57506126ac90818102918183041490151715610bba57610bab916119af565b915084926126ac93848102948186041490151715610bba57610c20908461198f565b5084156111b6565b906001600160701b0380916111a7565b9150915060e0813d60e011611298575b8161126d60e0938361065b565b810103126103c05761127e8161067d565b61128f60406106c86020850161067d565b5090915f611196565b3d9150611260565b5f915f916110e6565b9390949192969596871561149d576112c1908461216b565b9490926001600160a01b039283169290911682036114975792915b60806040516112ea8161060f565b8581526020810194855260408101938452606081019260018060a01b031683520191878352604051936020850195865251604085015260018060a01b03905116606084015260018060a01b0390511660808301525160a082015260a0815261135360c08261065b565b519020604051906315895f4760e31b8252600482015260e0816024816d040470635eb91b7ce4d132d616ed5afa918215610894575f915f93611447575b5015611437576001600160701b0380915b1691169181159081801561142f575b610c46571561140857508185101561083d57846113cc9161198f565b906127108202918083046127101490151715610bba57846113ec91611a46565b9161271003916127108311610bba57610bab92610c409161198f565b919294809561271003906127108211610bba57610c20916114289161198f565b938461198f565b5083156113b0565b906001600160701b0380916113a1565b9150915060e0813d60e01161148f575b8161146460e0938361065b565b810103126103c0576114758161067d565b61148660406106c86020850161067d565b5090915f611390565b3d9150611457565b916112dc565b50505050505090505f905f90565b604051906114b88261063f565b5f6060838281528260208201528260408201520152565b8051156114dc5760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156114dc5760400190565b8051600210156114dc5760600190565b8051600310156114dc5760800190565b8051600410156114dc5760a00190565b8051600510156114dc5760c00190565b80518210156114dc5760209160051b010190565b9060048110156114dc5760051b0190565b929193906115716114ab565b50610160604051958161158588938461065b565b600a8352601f19015f5b81811061197157505081946115a68183868a6106d2565b604051916115b38361063f565b5f8352601e6020840152604083015260608201526115d0846114cf565b526115da836114cf565b506115e78183868a6108d6565b604051916115f48361063f565b60018352601e602084015260408301526060820152611612846114f0565b5261161c836114f0565b506116298183868a610a4b565b604051916116368361063f565b60028352600160208401526040830152606082015261165484611500565b5261165e83611500565b5061166b8183868a610cd0565b604051916116788361063f565b60028352600560208401526040830152606082015261169684611510565b526116a083611510565b506116ad8183868a610ec3565b604051916116ba8361063f565b60028352601e6020840152604083015260608201526116d884611520565b526116e283611520565b506116ef8183868a6110b6565b604051916116fc8361063f565b60028352606460208401526040830152606082015261171a84611530565b5261172483611530565b50604051916117328361063f565b606483526101f46020840152610bb8604084015261271060608401525f60065b600482036118f25750505050505050909161176b6114ab565b915f905f9215935b865184146118ea576117858488611540565b519060408201518015806118de575b6118d25784156118c15786156118385760608301516060830151908181115f146117cc57505050506117c69093612188565b92611773565b96939296146117e1575b50506117c690612188565b6040869293960151908181105f14611803575050506117c690935b905f6117d6565b959291951480611827575b61181d575b506117c6906117fc565b93506117c6611813565b50602081015160208601511161180e565b60408201519081811015611853575050506117c69093612188565b9592919514611867575b506117c690612188565b909360608201516060820151908181115f1461188c575050506117c690935b9061185d565b9592919514806118b0575b6118a6575b506117c690611886565b93506117c661189c565b506020810151602086015111611897565b509093600193506117c69150612188565b50936117c69150612188565b50606083015115611794565b955092505050565b906119686001866119618295858f62ffffff61192d8f8d6064948e611924938661191c8a8e611554565b5116926109b1565b50949097611554565b5116049362ffffff604051956119428761063f565b600387521660208601526040850152606084015280938491019a611540565b528c611540565b50018994611752565b60209192935061197f6114ab565b82828b010152019087929161158f565b81810292918115918404141715610bba57565b91908201809211610bba57565b81156119b9570490565b634e487b7160e01b5f52601260045260245ffd5b91908215611a3757801591821580611a2e575b15611a1f576103e584029384046103e503610bba576119ff908461198f565b916103e882029182046103e8141715610bba576106cf92610c40916119a2565b63bb55fd2760e01b5f5260045ffd5b508015156119e0565b63098fb56160e01b5f5260045ffd5b91908203918211610bba57565b91908215611ad85780151580611acf575b15611a1f5781831015611a1f5782611a7b9161198f565b916103e88302928084046103e81490151715610bba57611a9a91611a46565b906103e58202918083046103e51490151715610bba5781611aba916119a2565b5f19810191908211610bba576106cf916119af565b50811515611a64565b6342301c2360e01b5f5260045ffd5b908160209103126103c057516001600160a01b03811681036103c05790565b51908160020b82036103c057565b519061ffff821682036103c057565b919094939294611b316114ab565b9584156121485762ffffff16620f424081101561214857604051630b4c774160e11b81526001600160a01b039283166004820181905293909216602483015260448201819052602082606481731f98431c8ad98523631ae4a59f267346ea31f9845afa918215610894575f92612127575b506001600160a01b03821692831561211f57604051633850c7bd60e01b81529360e085600481845afa958615610894575f955f9761208a575b50604051630d34328160e11b815294602086600481865afa958615610894575f96612046575b506001600160801b0386169384159384611fce57602060049160405192838092630dfe168160e01b82525afa908115610894575f91612017575b5060018060a01b03161497604051916322afcccb60e01b8352866004840152602083602481731f98431c8ad98523631ae4a59f267346ea31f9845afa928315610894575f93611fdb575b505f8360020b1315611fce57918991611c9d936121f8565b94809150620f42400391620f42408311610bba57611dc65750611cc09088612680565b9284868815611db757611cd292612593565b831115611ce25750505050505050565b90919293949596975060018060a01b038516156103c0576103c0578415611d5b5750611d0f908284613224565b80935b15611d4d5791611d21926125fe565b60405192611d2e8461063f565b83526020830152600160408301526001600160a01b0316606082015290565b611d5692612593565b611d21565b6001600160a01b038211611da957611d759160601b6119af565b6001600160a01b03831690611d8a90826119a2565b9081106103c0576001600160a01b0381169081036103c0578093611d12565b611db291612854565b611d75565b91611dc1926125fe565b611cd2565b97959293909491508183885f14611fbf57611de0926125fe565b851115611df05750505050505050565b90919293949596975060018060a01b0382169283156103c0578615611fae576001600160a01b038611611f75578560601b8180820615159104015b808511156103c0576001600160a01b0390611e469086611a46565b16965b15611f085750859282906001600160a01b03851611611efd575b506001600160a01b03611e7684846121df565b6001600160a01b03909416931683156103c057611eab926001600160a01b03169160601b600160601b600160e01b0316612641565b9080820615159104015b611ec382620f424083612986565b94620f4240146119b957620f42409009611ee45760405192611d2e8461063f565b915f198110156103c057611ef790612188565b91611d21565b92508591505f611e63565b928692915081906001600160a01b03841610611f68575b506001600160a01b0391611f3391906121df565b1690611f44600160601b8383612986565b91600160601b910915611eb5575f198110156103c057611f6390612188565b611eb5565b915050611f338590611f1f565b611f8481600160601b88612986565b81156119b95781600160601b880915611e2b575f198110156103c057611fa990612188565b611e2b565b611fb98683856131ad565b96611e49565b91611fc992612593565b611de0565b5050505050505050505050565b9092506020813d60201161200f575b81611ff76020938361065b565b810103126103c05761200890611b06565b915f611c85565b3d9150611fea565b612039915060203d60201161203f575b612031818361065b565b810190611ae7565b5f611c3b565b503d612027565b9095506020813d602011612082575b816120626020938361065b565b810103126103c057516001600160801b03811681036103c057945f611c01565b3d9150612055565b9550955060e0853d60e011612117575b816120a760e0938361065b565b810103126103c05784516001600160a01b03811681036103c0576120cd60208701611b06565b956120da60408201611b14565b506120e760608201611b14565b506120f460808201611b14565b5060a081015160ff8116036103c05760c00151801515036103c05794955f611bdb565b3d915061209a565b505050505050565b61214191925060203d60201161203f57612031818361065b565b905f611ba2565b5050505050565b6127109290156121645782010261270f010490565b8203020490565b6001600160a01b03828116908216109081156121845792565b9192565b5f198114610bba5760010190565b60081b908160020b9160030b8203610bba57565b9060020b9060020b02908160020b918203610bba57565b9060020b9060020b0190627fffff198212627fffff831317610bba57565b6001600160a01b039182169082160391908211610bba57565b6001600160a01b0316929061220e9083906129d9565b60020b6101008160081d60010b91079080918460020b9384156119b95784620d89e719059480156119b957620d89e7190760020b612574575b61225486620d89e86129d9565b908560020b60081d60010b938260020b60081d60010b915f146123fb5750505060405163299ce14b60e11b81528360010b918260048301526020826024818b5afa918215610894575f926123c6575b5060ff1660ff81145f146123a657505f19905b1680612389575050905b818160010b136122e05750506122d692506121aa565b906401000276a490565b5f190160010b9060405163299ce14b60e11b8152826004820152602081602481895afa908115610894575f91612358575b508061231e5750906122c0565b61234e9550612349935060ff915061233861233e91613067565b92612196565b911660020b906121c1565b6121aa565b906106cf82612a8a565b90506020813d8211612381575b816123726020938361065b565b810103126103c057515f612311565b3d9150612365565b61234e9650612349945061233e91935060ff925061233890613067565b60018101809111610bba576001901b5f198101908111610bba57906122b6565b9091506020813d6020116123f3575b816123e26020938361065b565b810103126103c057519060ff6122a3565b3d91506123d5565b60405163299ce14b60e11b815260048101829052929650909350916020826024818b5afa918215610894575f9261253f575b5060ff1660ff81145f1461251e57505f905b1680612501575050905b818160010b1261247857505061245f92506121aa565b9073fffd8963efd1fc6a506488495d951d5263988d2590565b60010160010b9060405163299ce14b60e11b8152826004820152602081602481895afa908115610894575f916124d0575b50806124b6575090612449565b61234e9550612349935060ff915061233861233e91612a42565b90506020813d82116124f9575b816124ea6020938361065b565b810103126103c057515f6124a9565b3d91506124dd565b61234e9650612349945061233e91935060ff925061233890612a42565b60018101809111610bba576001901b5f198101908111610bba57199061243f565b9091506020813d60201161256c575b8161255b6020938361065b565b810103126103c057519060ff61242d565b3d915061254e565b9360020b5f1901627fffff198112627fffff821317610bba5793612247565b91906001600160a01b03808216908416116125f8575b6001600160a01b036125bb84836121df565b16926001600160a01b03169182156103c0576106cf936125f3926001600160a01b03169160601b600160601b600160e01b0316612986565b6119af565b916125a9565b6106cf92916001600160801b03916001600160a01b038083169082161161263b575b6001600160a01b039161263391906121df565b1691166127eb565b90612620565b92919061264f828286612986565b9382156119b9570961265d57565b905f198110156103c0576106cf90612188565b600160ff1b8114610bba575f0390565b5f905f1983820992808202918280861095039480860395146127dd5784620f424011156127d95790620f42409109613d0993604091906126d090603f19860184900460010190858411900361198f565b9203041791806003026003810482036127c5576002186126f0818361198f565b60020390600282116127b157906127069161198f565b612710818361198f565b60020390600282116127b157906127269161198f565b612730818361198f565b60020390600282116127b157906127469161198f565b612750818361198f565b60020390600282116127b157906127669161198f565b612770818361198f565b60020390600282116127b157612790916127899161198f565b809261198f565b6002039160028311610bce57506106cf92916127ab9161198f565b9061198f565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b83526011600452602483fd5b8380fd5b50509050620f424091500490565b905f905f19818409928181029182808610950394808603951461284957600160601b8510156127d957600160601b9109600193600160601b91906126d0906bffffffffffffffffffffffff198601849004870190858411900361198f565b505091505060601c90565b5f19600160601b8209918160601b9182808510940393808503941461297957838211156103c0578190600160601b90096128a98261289181612670565b1680930494600184805f03040190858411900361198f565b9203041781600302600381048303610bba576002186128c8818461198f565b60020360028111610bba576128dc9161198f565b6128e6818461198f565b60020360028111610bba576128fa9161198f565b612904818461198f565b60020360028111610bba576129189161198f565b612922818461198f565b60020360028111610bba576129369161198f565b612940818461198f565b6002039060028211610bba57612960916129599161198f565b809361198f565b6002039160028311610bba576106cf926127ab9161198f565b50809250156103c0570490565b915f1982840992828102928380861095039480860395146129b957848311156103c0578291096128a98261289181612670565b5050809250156103c0570490565b9060020b9081156119b95760020b0790565b9190918060020b928060020b80156119b957627fffff1985145f19821416610bba575f90850594129182612a2c575b5050612a1057565b9060020b5f1901627fffff198112627fffff821317610bba5790565b612a3692506129c7565b60020b15155f80612a08565b8015612a5f57801960018101809111610bba576106cf9116613067565b606460405162461bcd60e51b815260206004820152600460248201526306c7362360e41b6044820152fd5b60020b5f81121561306157612a9e81612670565b905b620d89e88211613038576001821615613026576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169160028116612feb575b60048116612fb0575b60088116612f75575b60108116612f3a575b60208116612eff575b60408116612ec4575b60808116612e89575b6101008116612e4e575b6102008116612e13575b6104008116612dd8575b6108008116612d9d575b6110008116612d62575b6120008116612d27575b6140008116612cec575b6180008116612cb1575b620100008116612c76575b620200008116612c3d575b620400008116612c06575b6208000016612bd3575b5f12612bc5575b63ffffffff8116612bba57612bb65f915b6001600160a01b039260ff169060201c6119a2565b1690565b612bb6600191612ba1565b80156119b9575f1904612b90565b906b048a170391f7dc42444e8fa28102908082046b048a170391f7dc42444e8fa21490151715610bba5760801c90612b89565b916d2216e584f5fa1ea926041bedfe988102908082046d2216e584f5fa1ea926041bedfe981490151715610bba5760801c91612b7f565b916e5d6af8dedb81196699c329225ee6048102908082046e5d6af8dedb81196699c329225ee6041490151715610bba5760801c91612b74565b916f09aa508b5b7a84e1c677de54f3e99bc98102908082046f09aa508b5b7a84e1c677de54f3e99bc91490151715610bba5760801c91612b69565b916f31be135f97d08fd981231505542fcfa68102908082046f31be135f97d08fd981231505542fcfa61490151715610bba5760801c91612b5e565b916f70d869a156d2a1b890bb3df62baf32f78102908082046f70d869a156d2a1b890bb3df62baf32f71490151715610bba5760801c91612b54565b916fa9f746462d870fdf8a65dc1f90e061e58102908082046fa9f746462d870fdf8a65dc1f90e061e51490151715610bba5760801c91612b4a565b916fd097f3bdfd2022b8845ad8f792aa58258102908082046fd097f3bdfd2022b8845ad8f792aa58251490151715610bba5760801c91612b40565b916fe7159475a2c29b7443b29c7fa6e889d98102908082046fe7159475a2c29b7443b29c7fa6e889d91490151715610bba5760801c91612b36565b916ff3392b0822b70005940c7a398e4b70f38102908082046ff3392b0822b70005940c7a398e4b70f31490151715610bba5760801c91612b2c565b916ff987a7253ac413176f2b074cf7815e548102908082046ff987a7253ac413176f2b074cf7815e541490151715610bba5760801c91612b22565b916ffcbe86c7900a88aedcffc83b479aa3a48102908082046ffcbe86c7900a88aedcffc83b479aa3a41490151715610bba5760801c91612b18565b916ffe5dee046a99a2a811c461f1969c30538102908082046ffe5dee046a99a2a811c461f1969c30531490151715610bba5760801c91612b0e565b916fff2ea16466c96a3843ec78b326b528618102908082046fff2ea16466c96a3843ec78b326b528611490151715610bba5760801c91612b05565b916fff973b41fa98c081472e6896dfb254c08102908082046fff973b41fa98c081472e6896dfb254c01490151715610bba5760801c91612afc565b916fffcb9843d60f6159c9db58835c9266448102908082046fffcb9843d60f6159c9db58835c9266441490151715610bba5760801c91612af3565b916fffe5caca7e10e4e61c3624eaa0941cd08102908082046fffe5caca7e10e4e61c3624eaa0941cd01490151715610bba5760801c91612aea565b916ffff2e50f5f656932ef12357cf3c7fdcc8102908082046ffff2e50f5f656932ef12357cf3c7fdcc1490151715610bba5760801c91612ae1565b916ffff97272373d413259a46990580e213a8102908082046ffff97272373d413259a46990580e213a1490151715610bba5760801c91612ad8565b6001600160881b03600160801b612acd565b60405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606490fd5b80612aa0565b905f91801561318257600160801b811015613177575b6801000000000000000081101561315f575b640100000000811015613147575b6201000081101561312f575b610100811015613117575b60108110156130ff575b80600460029210156130e6575b10156130d357565b9060ff600191160160ff8111610bba5790565b60ff90821c93160160ff8111610bba57600290926130cb565b60ff600491821c93160160ff8111610bba57916130be565b60ff600891821c93160160ff8111610bba57916130b4565b60ff601091821c93160160ff8111610bba57916130a9565b60ff602091821c93160160ff8111610bba579161309d565b60ff604091821c93160160ff8111610bba579161308f565b60809250821c61307d565b606460405162461bcd60e51b815260206004820152600460248201526306d7362360e41b6044820152fd5b90821561321e5760601b600160601b600160e01b0316906001600160a01b0316806131e26131db828661198f565b94856119af565b1480613215575b156103c0576131fb6132019383611a46565b91612641565b6001600160a01b0381169081036103c05790565b508282116131e9565b50905090565b90821561321e5760601b600160601b600160e01b0316906001600160a01b031661324e818461198f565b8161325985836119af565b14613290575b5061326d61327491836119af565b92836119a2565b9182106103c0578181049190061515016001600160a01b031690565b61329a90836119a2565b82811061325f576001600160a01b039350612bb69290919061264156fea26469706673582212204d5b926510362d158d8f48408a730ea59d2b94cc7aaa1f428a80237854a56aa664736f6c634300081e0033