0 txs
1 call
constructor
constructor(address _router, address _quoter, address _balancerV2Vault, address _balancerQueries)
functions
BALANCER_QUERIES
viewfunction BALANCER_QUERIES() view returns (address)
BALANCER_VAULT
viewfunction BALANCER_VAULT() view returns (address)
calculatePriceDifferenceBps
purefunction calculatePriceDifferenceBps(tuple amountA, tuple amountB) pure returns (uint256 priceDifferenceBps)
getQuoteAmounts
viewfunction getQuoteAmounts(uint8 direction, address baseToken, address quoteToken, uint256 quoteSize, tuple params) view returns (uint256 baseTokens, uint256 quoteTokens)
quoter
viewfunction quoter() view returns (address)
router
viewfunction router() view returns (address)
version
viewfunction version() view returns (string)
call
nonpayablefunction call(address[] vaults, address baseToken, address quoteToken, uint8 flavor, bytes flavorParams, tuple orderBookParams) returns (tuple)
getQuoteAmounts
nonpayablefunction getQuoteAmounts(uint8 direction, address baseToken, address quoteToken, uint256 quoteSize, tuple params) returns (uint256 baseTokens, uint256 quoteTokens)
getQuoteAmounts
nonpayablefunction getQuoteAmounts(uint8 direction, address exactToken, address otherToken, uint256 baseTokenAmount, tuple[] swapParams) returns (uint256 exactTokens, uint256 otherTokens)
events
No events.
errors
InvalidBaseTokenAmount
error InvalidBaseTokenAmount()
OutputTokenIsNotQuoteToken
error OutputTokenIsNotQuoteToken()
PathIsEmpty
error PathIsEmpty()
ZeroAddress
error ZeroAddress()
creation bytecode
0x610100806040523461025457608081613a56803803809161002082856103b8565b8339810103126102545780516001600160a01b0381169190828103610254576020820151906001600160a01b038216908183036102545761006f6060610068604087016103db565b95016103db565b9460405163c45a015560e01b8152602081600481855afa908115610373575f9161037e575b506001600160a01b0316151590816102fe575b50156102b9575f9182916080526040518260208201916312a9293f60e21b8352600481526100d66024826103b8565b51925af13d156102b1573d906001600160401b03821161029d5760405191610108601f8201601f1916602001846103b8565b82523d5f602084013e5b156102585760208180518101031261025457602001516001600160a01b0381169081900361025457156102035760a0526001600160a01b038116156101f4576001600160a01b038216156101f45760e05260c05260405161366690816103f082396080518181816101df0152818161032801528181610404015261169c015260a05181818161022301528181610edd01528181610f7f01528181611b1a0152611db0015260c0518181816104db015281816109bd0152818161245801526128e4015260e051818181610267015281816106080152818161214101526125d40152f35b63d92e233d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602360248201527f556e69563351756f74657256323a204d6973636f6e666967757265642051756f6044820152623a32b960e91b6064820152608490fd5b5f80fd5b60405162461bcd60e51b815260206004820152601f60248201527f556e69563351756f74657256323a20496e636f72726563742051756f746572006044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b606090610112565b60405162461bcd60e51b815260206004820152601b60248201527f556e6956324c65676163793a20496e76616c696420726f7574657200000000006044820152606490fd5b6040516315ab88c960e31b81529150602090829060049082905afa908115610373575f91610339575b506001600160a01b031615155f6100a7565b90506020813d60201161036b575b81610354602093836103b8565b8101031261025457610365906103db565b5f610327565b3d9150610347565b6040513d5f823e3d90fd5b90506020813d6020116103b0575b81610399602093836103b8565b81010312610254576103aa906103db565b5f610094565b3d915061038c565b601f909101601f19168101906001600160401b0382119082101761029d57604052565b51906001600160a01b03821682036102545756fe610120806040526004361015610013575f80fd5b5f3560e01c908163472b52971461114e5750806354fd4d501461111b5780637364caaf14610bef5780637f6a8c951461050a5780639b6d6bbb146104c6578063afb66d3f14610296578063bc16384614610252578063c6bbd5a71461020e578063f887ea40146101ca5763fa57bb0b1461008b575f80fd5b346101c6573660031901608081126101c6576040136101c6576040516100b081612d94565b60043581526020810190602435825260406043193601126101c657604051906100d882612d94565b60443582526020820192606435845281511580156101bd575b15610107575050505060205f195b604051908152f35b51670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561019b576101349151906130d1565b9151670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561019b576101629151906130d1565b81818111156101af579061017591613238565b612710810290808204612710149015171561019b57602091610196916130d1565b6100ff565b634e487b7160e01b5f52601160045260245ffd5b6101b891613238565b610175565b508251156100f1565b5f80fd5b346101c6575f3660031901126101c6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c6575f3660031901126101c6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c6575f3660031901126101c6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c65760a03660031901126101c65760043560028110156101c6576102bb612c82565b906102c4612c98565b91606435916084356001600160401b0381116101c6576102e8903690600401613007565b906102f2816130ef565b806103c15750610324935f93926103089261353f565b60405163d06ca61f60e01b8152938492839290600484016132ca565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103b6575f91610394575b5061036a81613055565b5181515f1981019290831161019b5760409261038591613062565b51905b82519182526020820152f35b6103b091503d805f833e6103a88183612dca565b8101906132a2565b81610360565b6040513d5f823e3d90fd5b9192916001906103d0816130ef565b0361048157610400935f936103e49261349f565b6040516307c0329d60e21b8152938492839290600484016132ca565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103b6575f91610467575b5061044681613055565b5181515f1981019290831161019b5760409261046191613062565b51610388565b61047b91503d805f833e6103a88183612dca565b8161043c565b60405162461bcd60e51b815260206004820152601c60248201527f556e6956324c65676163793a2057524f4e475f444952454354494f4e000000006044820152606490fd5b346101c6575f3660031901126101c6576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101c65760a03660031901126101c65760043560028110156101c65761052f612c82565b90610538612c98565b906064356084356001600160401b0381116101c65761055b903690600401612f71565b935f606060405161056b81612d2f565b8281528260208201528260408201520152845115610be0578115610bd15784519061059582612e0f565b916105a36040519384612dca565b8083526105b2601f1991612e0f565b015f5b818110610b9b5750508551936001850180951161019b5790946105f06105da86612e0f565b956105e86040519788612dca565b808752612e0f565b602086019690601f1901368837610606836130ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925f9260209282159290855b8c518110156108da579081868e61065d6004969560018060a01b0392613062565b5151166040519586809263038fff2d60e41b82525afa9384156103b6575f946108ab575b50604051631f29a8cd60e31b8152600481018590525f816024818d5afa9283156103b6578d915f946107e4575b506001600160a01b0316906106c4908390613062565b528d86156107dd5750600181019384821161019b578e945b87156107c85782935b6001600160a01b03906107099060ff8c6106ff888c613062565b5101511690613062565b511695515f19810190811161019b578314806107b5575b6107a657600183019384841161019b57868f60019661073e91613062565b528361079f578d905b604051926107558c85612dca565b5f84528c368d8601376040519461076b86612d79565b85528b85015260408401526060830152608082015261078a828c613062565b52610795818b613062565b500191909161063c565b5f90610747565b632757a36f60e21b5f5260045ffd5b506001600160a01b038716861415610720565b60018301955085831161019b578f95936106e5565b93816106dc565b915092503d805f833e6107f78183612dca565b81016060828203126101c65781516001600160401b0381116101c657820181601f820112156101c65780519061082c82612e0f565b9161083a6040519384612dca565b8083528b8084019160051b830101918483116101c6578c01905b82821061088c5750505089830151906001600160401b0382116101c6578f936106c49386936108839201613245565b509491506106ae565b81516001600160a01b03811681036101c6578152908c01908c01610854565b9093508681813d83116108d3575b6108c38183612dca565b810103126101c65751928e610681565b503d6108b9565b888387878f8f8215610b9357600190955b6040516108f781612d2f565b3081528581015f8152604082019130835260608101935f8552886040519b8c97637c26833760e11b895260e489019061092f816130ef565b60048a015260e060248a01528351809152610104890190836101048260051b8c01019501915f905b828210610b2b575050505087830360031901604489015251808352910196905f5b8a828210610b0b57505091516001600160a01b03908116606488015292511515608487015250509051811660a48401529051151560c48301525f9282900390829084907f0000000000000000000000000000000000000000000000000000000000000000165af19384156103b6575f94610a79575b506109f7836130ef565b8015610a6657610a18610a12610a0c86613055565b51613228565b936130ef565b15610a445782515f1981019390841161019b57604093610a3791613062565b51905b8351928352820152f35b82515f19810190811161019b57610a0c610a6091604095613062565b90610a3a565b610a18610a7285613055565b51936130ef565b9093503d805f833e610a8b8183612dca565b81019082818303126101c6578051906001600160401b0382116101c657019080601f830112156101c6578151610ac081612e0f565b92610ace6040519485612dca565b818452848085019260051b8201019283116101c65784809101915b838310610afb575050505092846109ed565b8251815291810191859101610ae9565b83516001600160a01b03168a52988901988d985090920191600101610978565b92969798999a94610b7d81929597600194976101031990820301865260a060808b5180518452858101518685015260408101516040850152606081015160608501520151918160808201520190612cc2565b970192019201928c938f9a999897969593610957565b5f90956108eb565b602090604051610baa81612d79565b5f81525f838201525f60408201525f606082015260606080820152828287010152016105b5565b63a0be088b60e01b5f5260045ffd5b630b5b36c560e41b5f5260045ffd5b346101c65760a03660031901126101c65760043560028110156101c657610c14612c82565b610c1c612c98565b916064356084356001600160401b0381116101c657610c3f903690600401612e8b565b5191610c496133d1565b5060208301938451518015159081611104575b50156110c9578351516002810180911161019b57610c79906133ea565b95610c826133d1565b50845151958051516001880180891161019b57810361108a57610ca68897986133ea565b97610cb082612e0f565b97610cbe604051998a612dca565b828952601f19610ccd84612e0f565b013660208b01375f198101818111925f5b8381106110575750505050505f5f19820192828411915b83811061102257505050505060405195610d0e87612d94565b865260208601948552610d2087613055565b6001600160a01b03909116905285515f19810190811161019b57610d449087613062565b6001600160a01b0390911690525f5b84518051821015610d94576001600160a01b0390610d72908390613062565b511690600181019182821161019b57610d8d60019389613062565b5201610d53565b505091516040519285610da685612d94565b845260208401918252610dc0610dbb85613608565b61341c565b610dcc610dbb85613608565b602093604051610ddc8682612dca565b5f8152601f1986013687830137915f925b845151841015610e6057610e58600191610e08868651613062565b5190610e15878951613062565b5160405160609390931b6bffffffffffffffffffffffff19168b84015260e81b6001600160e81b031916603483015260178252610e53603783612dca565b61345f565b930192610ded565b82518051889288925f19830192831161019b57610ea792610e8091613062565b5190604051916001600160601b03199060601b168583015260148252610e53603483612dca565b92610eb1816130ef565b80610f4857505f81610ed894604051958692839263cdca175360e01b84526004840161320c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156103b6576040935f91610f23575b50918351928352820152f35b610f3f91503d805f833e610f378183612dca565b8101906130f9565b50505084610f17565b600190610f54816130ef565b03610fdd575f81610f7a946040519586928392632f80bb1d60e01b84526004840161320c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156103b6576040935f91610fc0575b5091610a3a565b610fd491503d805f833e610f378183612dca565b50505084610fb9565b60405162461bcd60e51b815260048101839052601e60248201527f556e69563351756f74657256323a2057524f4e475f444952454354494f4e00006044820152606490fd5b8151908361019b5762ffffff61104460019361103e848a613238565b90613062565b5116611050828d613062565b5201610cf5565b8151908561019b578d6110838260019461107b868060a01b039161103e848b613238565b511692613062565b5201610cde565b60405162461bcd60e51b8152602060048201526017602482015276556e6956333a204241445f504154485f4c454e4754485360481b6044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272556e695633506174683a204241445f5056494160681b6044820152606490fd5b8551515f198201925090821161019b571487610c5c565b346101c6575f3660031901126101c65761114a611136612deb565b604051918291602083526020830190612cc2565b0390f35b346101c6576101003660031901126101c6576001600160401b03600435116101c6573660236004350112156101c6576001600160401b0360043560040135116101c657602460043501903660246004356004013560051b6004350101116101c6576111b7612c82565b6111bf612c98565b916003606435101591826101c6576001600160401b03608435116101c6573660236084350112156101c65760843560040135916001600160401b0383116101c657366024846084350101116101c65760603660a31901126101c65761122381612d2f565b6060815260405161123381612d5e565b60608152606060208201525f6040820152602082015260405161125581612d5e565b60405161126181612d94565b5f81525f60208201528152606060208201525f6040820152604082015260606040519161128d83612d79565b5f83525f60208401525f60408401525f828401525f608084015201526004356004013515612c6e576112be85613041565b6040516370a0823160e01b81526001600160a01b03918216600482015295906020908790602490829086165afa9586156103b6575f96612c38575b5061130390613041565b6040516370a0823160e01b81526001600160a01b039182166004820152906020908290602490829089165afa9081156103b6575f91612c06575b506040519561134b87612d94565b8652602086015261136160043560040135612e0f565b9261136f6040519485612dca565b60048035013580855261138190612e0f565b601f19013660208601375f5b600435600401358110156113c3576001906113b160248260051b6004350101613041565b316113bc8288613062565b520161138d565b5085946113d160a435613076565b9260c43560c0526113e360a435613076565b945f5b60a4358110611638578888886114046113fe8a613321565b91613321565b9161140d612deb565b9260405160208101906040825261144e8161144061142e6060830189612ce6565b828103601f1901604084015286612ce6565b03601f198101835282612dca565b519020906040519361145f85612d5e565b845260208401526040830152604051602081019060808101865183526020870151604083015260608083015283518091528160a0810160208601925f5b81811061161f5750506114b8925003601f198101835282612dca565b51902090604051946114c986612d5e565b855260208501526040840152604051926114e284612d79565b4284524360208501524660408501524860608501524560808501526040519261150a84612d2f565b83526020830191825260408301908152606083019384526115406040519360208552516101006020860152610120850190612cc2565b915191601f1984820301604085015260408061157a6115688651606086526060860190612ce6565b60208701518582036020870152612ce6565b9401519101525190601f198382030160608401526080810191602081518051845201516020830152602081015192608060408401528351809152602060a084019401905f5b8181106116095750505093608091606060408697015191015251805182850152602081015160a0850152604081015160c0850152606081015160e085015201516101008301520390f35b82518652602095860195909201916001016115bf565b845183526020948501948694509092019160010161149c565b846118065760643561183457602060843583810103126101c657602460843501356001600160401b0381116101c65761167f90602480856084350101916084350101613007565b61168a85858361349f565b6040516307c0329d60e21b815260c0517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693925f91839182916116da9190600484016132ca565b0381865afa9081156103b6575f9161181a575b506116f781613055565b51815190915f19820191821161019b578b9161171291613062565b51602061172a876117238186613062565b5194613062565b5101525261175d9161173e87875f9461353f565b90604051808095819463d06ca61f60e01b835260c051600484016132ca565b03915afa9081156103b6575f916117ec575b5061177981613055565b519080515f19810190811161019b5761179191613062565b519061179d8389613062565b519060206117ab858b613062565b510152525b60e435612710016127101161019b5760c05161271060e4350181810292918015908404909114171561019b576127106001920460c052016113e6565b61180091503d805f833e6103a88183612dca565b8a61176f565b634e487b7160e01b5f52602160045260245ffd5b61182e91503d805f833e6103a88183612dca565b8c6116ed565b9097959492919693505f976001606435145f14611fd457602060843582810103126101c657602460843501356001600160401b0381116101c65761188690602480846084350101916084350101612e8b565b948551976118926133d1565b506020890151518015159081611fbd575b50156110c9578851516002810180911161019b576118c0906133ea565b9a6118c96133d1565b50895151996020810151519060018c01808d1161019b57820361108a576118ef8c6133ea565b610100526118fc82612e0f565b9b61190a6040519d8e612dca565b828d52601f1961191984612e0f565b013660208f01375f5b818110611f7d5750505f5b828110611f4a57505050604051996119448b612d94565b610100518b5260208b01526001600160a01b0386166119628d613055565b528b515f19810190811161019b576001600160a01b038c1690611985908e613062565b525f5b8a5180518210156119ca576001600160a01b03906119a7908390613062565b511690600181019182821161019b576119c38f93600194613062565b5201611988565b5050979a9994969291909860209096949601516040519a6119ea8c612d94565b8b5260208b01526119fd610dbb8b613608565b611a09610dbb8b613608565b602097604051611a198a82612dca565b5f8152601f198a01368b830137925f935b60208d015151851015611aa257611a9a8d6001928d611a59896020611a50828751613062565b51950151613062565b5160405160609490941b6bffffffffffffffffffffffff19169184019190915260e81b6001600160e81b031916603483015260178252610e53603783612dca565b940193611a2a565b91979b9095989694929a935051908151915f19830192831161019b57611af292611acb91613062565b5190604051916001600160601b03199060601b168b83015260148252610e53603483612dca565b5f611b159160405180938192632f80bb1d60e01b835260c051906004840161320c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156103b6575f91611f2d575b508a8c8a611b6e611b638484613062565b519360c05193613062565b510152525197611b7c6133d1565b5087890151518015159081611f16575b5015611edb578851516002810180911161019b57611ba9906133ea565b9a611bb26133d1565b508951519989810151519060018c01808d1161019b578203611e9c57611bd78c6133ea565b60a052611be382612e0f565b9b611bf16040519d8e612dca565b828d52601f19611c0084612e0f565b01368d8f01375f5b818110611e5d5750505f5b828110611e2b5750505060405199611c2a8b612d94565b60a0518b52898b01526001600160a01b038616611c468d613055565b528b51805f1981011161019b576001600160a01b03851690611c6b905f19018e613062565b525f5b8a518051821015611cb0576001600160a01b0390611c8d908390613062565b511690600181019182821161019b57611ca98f93600194613062565b5201611c6e565b505092959194909397809b999a979a015160405199611cce8b612d94565b8a528b8a0152611ce0610dbb8a613608565b611cec610dbb8a613608565b604051611cf98c82612dca565b5f8152601f198c01368d830137955f965b8c8b015151881015611d3657611d2e8b6001928f611a598c82611a50828751613062565b970196611d0a565b919650949a919692989997939951908151915f19830192831161019b57611d8792611d6091613062565b5190604051916001600160601b03199060601b168483015260148252610e53603483612dca565b905f611dab926040518094819263cdca175360e01b835260c051906004840161320c565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156103b6575f92611e0c575b50611df38389613062565b519060c05190611e03858b613062565b510152526117b0565b611e219192503d805f833e610f378183612dca565b505050908b611de8565b8b82015190835f1981011161019b578d611e568262ffffff61107b60019661103e845f198c01613238565b5201611c13565b825190825f1981011161019b576001916001600160a01b0390611e879061103e845f198801613238565b5116611e958260a051613062565b5201611c08565b60405162461bcd60e51b8152600481018c90526017602482015276556e6956333a204241445f504154485f4c454e4754485360481b6044820152606490fd5b60405162461bcd60e51b8152600481018990526013602482015272556e695633506174683a204241445f5056494160681b6044820152606490fd5b8a51515f198201925090821161019b57148c611b8c565b611f4191503d805f833e610f378183612dca565b5050508c611b52565b602082015190835f1981011161019b578d611f768262ffffff61107b60019661103e845f198c01613238565b520161192d565b825190825f1981011161019b576001916001600160a01b0390611fa79061103e845f198801613238565b5116611fb68261010051613062565b5201611922565b8a51515f198201925090821161019b57148c6118a3565b9093969192949597505f936002606435036117b0579795969590949091602060843580880103126101c657602460843501356001600160401b0381116101c65761202c90602480896084350101916084350101612f71565b955f606060405161203c81612d2f565b8281528260208201528260408201520152865115610be05760c05115610bd15786519561206887612e0f565b966120766040519889612dca565b808852612085601f1991612e0f565b015f5b818110612bd0575050875160018101811161019b576001816120bf6120b1836120cc9501612e0f565b60405160e05260e051612dca565b81810160e0515201612e0f565b601f190136602060e0510137602098945f9290845b8a5185101561236e576004908c6001600160a01b03612100888f613062565b5151166040519384809263038fff2d60e41b82525afa9182156103b6575f9261233f575b50604051631f29a8cd60e31b815260048101839052905f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156103b6575f9261226c575b5060018060a01b031661218e8760e051613062565b5260018601861161019b576121b28c9160ff8f6106ff8a60018060a01b0396613062565b5116948b515f19810190811161019b57811480612259575b6107a65760018101811161019b57600191866121ea84840160e051613062565b5281612252578d60c0515b83604051926122048185612dca565b5f8452601f19810136828601376040519461221e86612d79565b855284015284840160408401526060830152608082015261223f828d613062565b5261224a818c613062565b5001936120e1565b8d5f6121f5565b506001600160a01b038a168614156121ca565b9091503d805f833e61227e8183612dca565b60608282810103126101c6578151916001600160401b0383116101c657818101601f8483010112156101c6578f838201516122b881612e0f565b946122c66040519687612dca565b81865282860190858501848460051b8388010101116101c6578381860101915b848460051b8388010101831061232057505050508101516001600160401b0381116101c6576123189282019101613245565b50905f612179565b82516001600160a01b03811681036101c65781529184019184016122e6565b9091508c81813d8311612367575b6123578183612dca565b810103126101c65751908f612124565b503d61234d565b5093949a91979095925060405161238481612d2f565b3081525f8b8201523060408201525f60608201526040518092637c26833760e11b82528c60e483016123b55f6130ef565b5f600485015260e060248501528251809152610104840190826101048260051b8701019401925f5b828110612b6e5750505050506003198282030160448301528c8060e05151928381520191602060e05101905f905b808210612b4b57505084516001600160a01b0390811660648601529185015115156084850152506040840151811660a4840152606090930151151560c48301525f929082900390829084907f0000000000000000000000000000000000000000000000000000000000000000165af19081156103b6575f91612aaa575b5061249281613055565b5190805190815f1981011161019b57610a0c6124b3918f935f190190613062565b8b6124c96124c18487613062565b519386613062565b510152525f60606040516124dc81612d2f565b828152828c8201528260408201520152875115610be0578751966124ff88612e0f565b9761250d604051998a612dca565b80895261251c601f1991612e0f565b018a5f5b828110612a7457505050885160018101811161019b5760018161255861254a836125659501612e0f565b604051608052608051612dca565b8181016080515201612e0f565b601f1901368b6080510137845f955b8a518710156127f3576004908c6001600160a01b036125938a8f613062565b5151166040519384809263038fff2d60e41b82525afa9182156103b6575f926127c4575b50604051631f29a8cd60e31b815260048101839052905f826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156103b6575f92612700575b5060018060a01b031661262189608051613062565b5260018801881161019b576126458c9160ff8f6106ff8c60018060a01b0396613062565b5116968b515f19810190811161019b578114806126ed575b6107a65760018101811161019b576001918861267d848401608051613062565b52816126e6578d60c0515b604051916126968184612dca565b5f8352601f1981013682850137604051936126b085612d79565b845285850190840152836040840152606083015260808201526126d3828d613062565b526126de818c613062565b500195612574565b8d5f612688565b506001600160a01b038a1688141561265d565b9091503d805f833e6127128183612dca565b60608282810103126101c65781516001600160401b0381116101c657820191818101601f840112156101c6578f83519361274b85612e0f565b946127596040519687612dca565b808652828087019160051b8301019185850183116101c6578301905b8282106127a5575050508101516001600160401b0381116101c65761279d9282019101613245565b50905f61260c565b81516001600160a01b03811681036101c6578152908301908301612775565b9091508c81813d83116127ec575b6127dc8183612dca565b810103126101c65751908f6125b7565b503d6127d2565b509594509691999750979991996001916040519261281084612d2f565b3084525f838501523060408501525f6060850152604051938491637c26833760e11b835260e48301612841826130ef565b81600485015260e0602485015284518091526101048401866101048360051b8701019601915f5b88828210612a1357505050505060031983850301604484015284608051519485815201938560805101915f915b878184106129f257505083516001600160a01b03908116606487015287850151151560848701526040850151811660a4870152606090940151151560c4860152505f94849003928492508591507f0000000000000000000000000000000000000000000000000000000000000000165af19182156103b6575f9261294f575b50612921610a0c83613055565b9180515f19810190811161019b5761293891613062565b51612943848a613062565b5191611e03858b613062565b9091503d805f833e6129618183612dca565b81019082818303126101c6578051916001600160401b0383116101c65780601f8484010112156101c657828201519161299983612e0f565b936129a76040519586612dca565b83855285850192868560051b8385010101116101c657858082840101935b818660051b848601010185106129e257505050505050908b612914565b84518152938101938791016129c5565b84516001600160a01b03168852968701968996509093019291810191612895565b8598819294969395979850612a6290610103198d820301885260a060808a5180518452858101518685015260408101516040850152606081015160608501520151918160808201520190612cc2565b96019401910191889594969392612868565b808b83809360405192612a8684612d79565b5f84525f838501525f60408501525f60608501526060608085015201015201612520565b90503d805f833e612abb8183612dca565b8101908a818303126101c65780516001600160401b0381116101c65782601f8284010112156101c657808c9183015192612af484612e0f565b94612b026040519687612dca565b848652838601938560051b8484010101116101c657818e8093830101935b838660051b83850101018510612b3c575050505050508c612488565b84518152938301938301612b20565b82516001600160a01b03168552879550938301939183019160019091019061240b565b919396955091938280612bbd600193610103198c820301895260a060808c5180518452858101518685015260408101516040850152606081015160608501520151918160808201520190612cc2565b98019501910191879596949391926123dd565b602090604051612bdf81612d79565b5f81525f838201525f60408201525f60608201526060608082015282828c01015201612088565b90506020813d602011612c30575b81612c2160209383612dca565b810103126101c657518661133d565b3d9150612c14565b9095506020813d602011612c66575b81612c5460209383612dca565b810103126101c65751946113036112f9565b3d9150612c47565b634e487b7160e01b5f52603260045260245ffd5b602435906001600160a01b03821682036101c657565b604435906001600160a01b03821682036101c657565b35906001600160a01b03821682036101c657565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b818110612d035750505090565b9091926020612d25600192865190602060409280518352015160208201520190565b9401929101612cf6565b608081019081106001600160401b03821117612d4a57604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b03821117612d4a57604052565b60a081019081106001600160401b03821117612d4a57604052565b604081019081106001600160401b03821117612d4a57604052565b602081019081106001600160401b03821117612d4a57604052565b90601f801991011681019081106001600160401b03821117612d4a57604052565b60405190612dfa604083612dca565b60068252653b181718971b60d11b6020830152565b6001600160401b038111612d4a5760051b60200190565b9080601f830112156101c6578135612e3d81612e0f565b92612e4b6040519485612dca565b81845260208085019260051b8201019283116101c657602001905b828210612e735750505090565b60208091612e8084612cae565b815201910190612e66565b91906020838203126101c657604051612ea381612daf565b80938035906001600160401b0382116101c65701916040838203126101c65760405192612ecf84612d94565b80356001600160401b0381116101c65782612eeb918301612e26565b84526020810135906001600160401b0382116101c657019080601f830112156101c657813590612f1a82612e0f565b92612f286040519485612dca565b82845260208085019360051b8201019182116101c657602001915b818310612f5557505050602083015252565b823562ffffff811681036101c657815260209283019201612f43565b81601f820112156101c657803590612f8882612e0f565b92612f966040519485612dca565b82845260208085019360061b830101918183116101c657602001925b828410612fc0575050505090565b6040848303126101c65760405190612fd782612d94565b612fe085612cae565b825260208501359060ff821682036101c65782602092836040950152815201930192612fb2565b9190916020818403126101c6576040519061302182612daf565b819381356001600160401b0381116101c65761303d9201612e26565b9052565b356001600160a01b03811681036101c65790565b805115612c6e5760200190565b8051821015612c6e5760209160051b010190565b9061308082612e0f565b61308d6040519182612dca565b828152809261309e601f1991612e0f565b01905f5b8281106130ae57505050565b6020906040516130bd81612d94565b5f81525f83820152828285010152016130a2565b81156130db570490565b634e487b7160e01b5f52601260045260245ffd5b6002111561180657565b6080818303126101c65780519260208201516001600160401b0381116101c657820183601f820112156101c657805161313181612e0f565b9161313f6040519384612dca565b81835260208084019260051b820101908682116101c657602001915b8183106131ec575050509260408301516001600160401b0381116101c65783019080601f830112156101c65781519061319382612e0f565b926131a16040519485612dca565b82845260208085019360051b8201019182116101c657602001915b8183106131cf5750505060609092015190565b825163ffffffff811681036101c6578152602092830192016131bc565b82516001600160a01b03811681036101c65781526020928301920161315b565b929190613223602091604086526040860190612cc2565b930152565b600160ff1b811461019b575f0390565b9190820391821161019b57565b9080601f830112156101c657815161325c81612e0f565b9261326a6040519485612dca565b81845260208085019260051b8201019283116101c657602001905b8282106132925750505090565b8151815260209182019101613285565b906020828203126101c65781516001600160401b0381116101c6576132c79201613245565b90565b6060602091604081019381526040838201528451809452019201905f5b8181106132f45750505090565b82516001600160a01b03168452602093840193909201916001016132e7565b5f19811461019b5760010190565b905f5f5b83518110156133625761334161333b8286613062565b516135e1565b61334e575b600101613325565b9061335a600191613313565b919050613346565b5061336f90929192613076565b5f5f5b83518110156133ca5761338861333b8286613062565b613395575b600101613372565b906133c26001916133a68487613062565b516133b18287613062565b526133bc8186613062565b50613313565b91905061338d565b5050905090565b604051906133de82612d94565b60606020838281520152565b906133f482612e0f565b6134016040519182612dca565b8281528092613412601f1991612e0f565b0190602036910137565b1561342357565b60405162461bcd60e51b8152602060048201526014602482015273155b9a558cd4185d1a0e8810905117d41195531360621b6044820152606490fd5b61349d906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612dca565b565b9190928251516002810180911161019b576134b9906133ea565b936134c385613055565b6001600160a01b0390911690525f5b83518051821015613513576001600160a01b03906134f1908390613062565b511690600181019182821161019b5761350c60019388613062565b52016134d2565b505092915081515f19810190811161019b5761352f9083613062565b6001600160a01b03909116905290565b91928251516002810180911161019b57613558906133ea565b9361356285613055565b6001600160a01b0390911690525f5b8351805190818310156135c4575f19820191821161019b576001600160a01b03916135a2919061103e908590613238565b511690600181019182821161019b576135bd60019388613062565b5201613571565b50505092915081515f19810190811161019b5761352f9083613062565b8051151590816135fa575b506135f5575f90565b600190565b60209150015115155f6135ec565b602081015151801515918261361c57505090565b90915051516001820180921161019b57149056fea2646970667358221220abbb262526f4e12f01d9f6e847e668aff6e3b83f65c4c75bcb955ccb9d9632fa64736f6c634300081d00330000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad240000000000000000000000003d4e44eb1374240ce5f1b871ab261cd16335b76a000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8000000000000000000000000300ab2038eac391f26d9f895dc61f8f66a548833