0 txs
1 call
constructor
constructor(address balancerVault_, address uniRouter_, address pendleRouter_, address kyberRouter_, address tranchessRouter_, address spectraRouter_)
functions
balancerVault
viewfunction balancerVault() view returns (address)
getSwapToken
purefunction getSwapToken(tuple swapParams) pure returns (address token)
kyberRouter
viewfunction kyberRouter() view returns (address)
pendleRouter
viewfunction pendleRouter() view returns (address)
permit2
viewfunction permit2() view returns (address)
spectraRouter
viewfunction spectraRouter() view returns (address)
tranchessRouter
viewfunction tranchessRouter() view returns (address)
uniRouter
viewfunction uniRouter() view returns (address)
swap
nonpayablefunction swap(tuple swapParams) returns (uint256 retAmount)
transferAndSwap
nonpayablefunction transferAndSwap(address from, tuple permitParams, tuple swapParams) returns (uint256)
events
No events.
errors
Math__toInt256_overflow
error Math__toInt256_overflow()
SwapAction__kyberSwap_slippageFailed
error SwapAction__kyberSwap_slippageFailed()
SwapAction__pendleExit_invalidExitType
error SwapAction__pendleExit_invalidExitType()
SwapAction__revertBytes_emptyRevertBytes
error SwapAction__revertBytes_emptyRevertBytes()
SwapAction__swap_notSupported
error SwapAction__swap_notSupported()
UniswapV3Router_decodeLastToken_invalidPath
error UniswapV3Router_decodeLastToken_invalidPath()
UniswapV3Router_toAddress_outOfBounds
error UniswapV3Router_toAddress_outOfBounds()
UniswapV3Router_toAddress_overflow
error UniswapV3Router_toAddress_overflow()
creation bytecode
0x6101406040523480156200001257600080fd5b5060405162003d9e38038062003d9e83398101604081905262000035916200007e565b6001600160a01b0395861660805293851660a05291841660c052831660e052821661010052166101205262000112565b6001600160a01b03811681146200007b57600080fd5b50565b60008060008060008060c087890312156200009857600080fd5b8651620000a58162000065565b6020880151909650620000b88162000065565b6040880151909550620000cb8162000065565b6060880151909450620000de8162000065565b6080880151909350620000f18162000065565b60a0880151909250620001048162000065565b809150509295509295509295565b60805160a05160c05160e0516101005161012051613bc7620001d7600039600081816101a40152818161189b01526118d701526000818160fb01528181611468015281816114a2015261151d0152600081816101de01528181610cac0152610cd60152600081816101220152818161102901528181611065015281816111af01526111eb01526000818161016a01528181610dcf01528181610df601528181610ec80152610eef01526000818160d401528181610b640152610b8e0152613bc76000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a0e47bf611610066578063a0e47bf614610165578063a49cc0cd1461018c578063a639bbfe1461019f578063c0d4a416146101c6578063f63ca6e4146101d957600080fd5b806312261ee7146100a3578063158274a5146100cf5780631fc96635146100f6578063206aeab31461011d578063746f700a14610144575b600080fd5b6100b96e22d473030f116ddee9f6b43ac78ba381565b6040516100c69190612454565b60405180910390f35b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b61015761015236600461249e565b610200565b6040519081526020016100c6565b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b6100b961019a36600461250b565b61028d565b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b6101576101d4366004612798565b6103e2565b6100b97f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160a01b03841630146102795760008061022560408501602086016127e2565b6001811115610236576102366127cc565b1461024557826080013561024b565b82606001355b90506102776102606060850160408601612806565b863084610272368a90038a018a612834565b6106aa565b505b6102856101d4836128cb565b949350505050565b60008061029d60208401846128d7565b60078111156102ae576102ae6127cc565b0361034e5760006102c36101008401846128f2565b8101906102d091906129d1565b9150600190506102e660408501602086016127e2565b60018111156102f7576102f76127cc565b0361031e578060008151811061030f5761030f612a89565b60200260200101519150610348565b806001825161032d9190612ab5565b8151811061033d5761033d612a89565b602002602001015191505b50919050565b600161035d60208401846128d7565b600781111561036e5761036e6127cc565b036103c4576103be6103846101008401846128f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061087592505050565b92915050565b60405163e11d7ccb60e01b815260040160405180910390fd5b919050565b60008160e0015142111561042e5761042e6040518060400160405280602081526020017f53776170416374696f6e3a207377617020646561646c696e65207061737365648152506108b1565b600082516007811115610443576104436127cc565b03610499576000808361010001518060200190518101906104649190612b37565b91509150610490846020015185604001518484886060015189608001518a60a001518b60e001516108d9565b9250505061061b565b6004825160078111156104ae576104ae6127cc565b1480156104d057506000826020015160018111156104ce576104ce6127cc565b145b156104f9576104f2826040015183606001518460800151856101000151610c9b565b905061061b565b60018251600781111561050e5761050e6127cc565b0361053f576104f282602001518360400151846060015185608001518660a001518760e00151886101000151610da6565b600282516007811115610554576105546127cc565b03610571576104f28260a001518360800151846101000151610f68565b600382516007811115610586576105866127cc565b036105a3576104f28260a0015183608001518461010001516110f6565b6005825160078111156105b8576105b86127cc565b036105c6576104f28261129c565b6006825160078111156105db576105db6127cc565b036105f8576104f28260a001518360800151846101000151611624565b60078251600781111561060d5761060d6127cc565b036103c4576104f2826117b8565b600182602001516001811115610633576106336127cc565b14801561064d575060a08201516001600160a01b03163014155b156103dd5760c08201516001600160a01b031615610692576103dd8260c0015182846080015161067d9190612ab5565b60408501516001600160a01b031691906119cb565b6103dd8260a0015182846080015161067d9190612ab5565b6002815160028111156106bf576106bf6127cc565b036107e9576e22d473030f116ddee9f6b43ac78ba36001600160a01b03166330f28b7a604051806060016040528060405180604001604052808a6001600160a01b03168152602001866020015181525081526020018460400151815260200184606001518152506040518060400160405280876001600160a01b0316815260200186815250878560a001518660c00151876080015160f81b6040516020016107849392919092835260208301919091526001600160f81b031916604082015260410190565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016107b29493929190612c38565b600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b5050505061086e565b6001815160028111156107fe576107fe6127cc565b036108595761083f84848360200151846060015185608001518660a001518760c001518c6001600160a01b0316611a2690979695949392919063ffffffff16565b6108546001600160a01b038616858585611c06565b61086e565b61086e6001600160a01b038616858585611c06565b5050505050565b600060148251101561089a5760405163d3d6273f60e01b815260040160405180910390fd5b6103be82601484516108ac9190612ab5565b611c2d565b8051156108c057805181602001fd5b604051634811b8df60e11b815260040160405180910390fd5b8551600090816108ea826001612cb1565b6001600160401b038111156109015761090161253f565b60405190808252806020026020018201604052801561092a578160200160208202803683370190505b5090506000826001600160401b038111156109475761094761253f565b6040519080825280602002602001820160405280156109ad57816020015b61099a6040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b8152602001906001900390816109655790505b5090506060600080808f60018111156109c8576109c86127cc565b036109d5575060016109da565b600191505b60005b86811015610a4f576040518060a001604052808f8381518110610a0257610a02612a89565b60200260200101518152602001848301815260200183830181526020016000815260200185815250858281518110610a3c57610a3c612a89565b60209081029190910101526001016109dd565b508a84600081518110610a6457610a64612a89565b6020908102919091010151606001525060009150819050808e6001811115610a8e57610a8e6127cc565b03610af657506000905088610aa281611c96565b84600081518110610ab557610ab5612a89565b602002602001018181525050610aca89611c96565b610ad390612cc4565b848681518110610ae557610ae5612a89565b602002602001018181525050610b55565b506001905087610b058a611c96565b610b0e90612cc4565b84600081518110610b2157610b21612a89565b602002602001018181525050610b3689611c96565b848681518110610b4857610b48612a89565b6020026020010181815250505b610b896001600160a01b038e167f000000000000000000000000000000000000000000000000000000000000000083611cc0565b610c897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663945bcec984868f6040518060800160405280306001600160a01b031681526020016000151581526020018f6001600160a01b03168152602001600015158152508a8e6040518763ffffffff1660e01b8152600401610c1a96959493929190612d54565b6000604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c619190810190612e76565b8681518110610c7257610c72612a89565b602002602001015160ff81901c6000039081011890565b9e9d5050505050505050505050505050565b6000610cd16001600160a01b0386167f000000000000000000000000000000000000000000000000000000000000000086611cc0565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031684604051610d0c9190612efb565b6000604051808303816000865af19150503d8060008114610d49576040519150601f19603f3d011682016040523d82523d6000602084013e610d4e565b606091505b509150915081610d6157610d61816108b1565b600081806020019051810190610d779190612f17565b50905085811015610d9b57604051632205896160e01b815260040160405180910390fd5b979650505050505050565b600080886001811115610dbb57610dbb6127cc565b03610eb957610df46001600160a01b0388167f000000000000000000000000000000000000000000000000000000000000000088611cc0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c04b8d596040518060a00160405280858152602001876001600160a01b03168152602001868152602001898152602001888152506040518263ffffffff1660e01b8152600401610e6f9190612f8c565b6020604051808303816000875af1158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190612f9f565b9050610d9b565b610eed6001600160a01b0388167f000000000000000000000000000000000000000000000000000000000000000087611cc0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f28c04986040518060a00160405280858152602001876001600160a01b03168152602001868152602001898152602001888152506040518263ffffffff1660e01b8152600401610e6f9190612f8c565b600080600080600085806020019051810190610f849190613374565b8151939750919550935091506001600160a01b03161561104e5781516040516370a0823160e01b81526001600160a01b03909116906370a0823190610fcd903090600401612454565b602060405180830381865afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190612f9f565b60208301819052825161104e916001600160a01b03909116907f000000000000000000000000000000000000000000000000000000000000000090611cc0565b60405163092ccd6360e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312599ac6906110a4908b9088908c908990899089906004016136ad565b6060604051808303816000875af11580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e79190613724565b50909998505050505050505050565b60008060008380602001905181019061110f9190613752565b90925090506000826001811115611128576111286127cc565b03611163576000806000838060200190518101906111469190613798565b9250925092506111598383838c8c611d59565b9550505050611293565b6001826001811115611177576111776127cc565b0361127a576000806000808480602001905181019061119691906137db565b929650909450925090506111d46001600160a01b0385167f000000000000000000000000000000000000000000000000000000000000000085611cc0565b604051630306d04360e51b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906360da086090611228908d908890889088908890600401613842565b6060604051808303816000875af1158015611247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126b9190613724565b50909750611293945050505050565b6040516339c2cee360e11b815260040160405180910390fd5b50509392505050565b60008060008060008561010001518060200190518101906112bd9190613893565b93509350935093506000846001600160a01b0316639e548b7f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611305573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132991906138d2565b6001600160a01b0316630589a4786040518163ffffffff1660e01b8152600401602060405180830381865afa158015611366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138a91906138d2565b90506000856001600160a01b0316639e548b7f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f091906138d2565b6001600160a01b031663f0a0b44e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145191906138d2565b9050841561148d5761148d6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000087611cc0565b83156114c7576114c76001600160a01b0382167f000000000000000000000000000000000000000000000000000000000000000086611cc0565b608088015160e0890151604051630f5c0dcb60e31b81526001600160a01b03858116600483015284811660248301526044820189905260648201889052608482019390935260a4810186905260c48101919091527f000000000000000000000000000000000000000000000000000000000000000090911690637ae06e589060e401600060405180830381600087803b15801561156357600080fd5b505af1158015611577573d6000803e3d6000fd5b50506040516370a0823160e01b81526001600160a01b03891692506370a0823191506115a7903090600401612454565b602060405180830381865afa1580156115c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e89190612f9f565b60a08901519097506001600160a01b031630146116195760a0880151611619906001600160a01b03881690896119cb565b505050505050919050565b6000806000808480602001905181019061163e91906138ef565b9250925092506000826001600160a01b0316639e548b7f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a891906138d2565b6040516318594a0160e11b81526004810186905260248101849052604481018990529091506001600160a01b038216906330b29402906064016020604051808303816000875af1158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190612f9f565b94506001600160a01b03881630146117ad576117ad8886836001600160a01b031663f0a0b44e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179d91906138d2565b6001600160a01b031691906119cb565b505050509392505050565b60008060008060008561010001518060200190518101906117d99190613928565b93509350935093506000826001600160a01b03166370a082318860a001516040518263ffffffff1660e01b81526004016118139190612454565b602060405180830381865afa158015611830573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118549190612f9f565b90506000808560008151811061186c5761186c612a89565b60200260200101518060200190518101906118879190613a14565b90925090506118c06001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083611cc0565b604051630d64d59360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633593564c90611910908a908a908990600401613a42565b600060405180830381600087803b15801561192a57600080fd5b505af115801561193e573d6000803e3d6000fd5b5050505060a08901516040516370a0823160e01b815284916001600160a01b038816916370a082319161197391600401612454565b602060405180830381865afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b49190612f9f565b6119be9190612ab5565b9998505050505050505050565b611a218363a9059cbb60e01b84846040516024016119ea929190613abd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526121c5565b505050565b604051623f675f60e91b81526000906001600160a01b038a1690637ecebe0090611a54908b90600401612454565b602060405180830381865afa158015611a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a959190612f9f565b60405163d505accf60e01b81526001600160a01b038a811660048301528981166024830152604482018990526064820188905260ff8716608483015260a4820186905260c48201859052919250908a169063d505accf9060e401600060405180830381600087803b158015611b0957600080fd5b505af1158015611b1d573d6000803e3d6000fd5b5050604051623f675f60e91b8152600092506001600160a01b038c169150637ecebe0090611b4f908c90600401612454565b602060405180830381865afa158015611b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b909190612f9f565b9050611b9d826001612cb1565b8114611bfa5760405162461bcd60e51b815260206004820152602160248201527f5361666545524332303a207065726d697420646964206e6f74207375636365656044820152601960fa1b60648201526084015b60405180910390fd5b50505050505050505050565b611c27846323b872dd60e01b8585856040516024016119ea93929190613ad6565b50505050565b600081611c3b816014612cb1565b1015611c5a57604051634b5ecc6360e11b815260040160405180910390fd5b611c65826014612cb1565b83511015611c865760405163a261974560e01b815260040160405180910390fd5b500160200151600160601b900490565b6000600160ff1b8210611cbc57604051632db27c5360e01b815260040160405180910390fd5b5090565b600063095ea7b360e01b8383604051602401611cdd929190613abd565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050611d1b848261229a565b611c27576040516001600160a01b038416602482015260006044820152611d4f90859063095ea7b360e01b906064016119ea565b611c2784826121c5565b600080600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc19190613afa565b919450925090506001600160a01b0386163014611e51576040516323b872dd60e01b81526001600160a01b038a16906323b872dd90611e089089908d908d90600401613ad6565b6020604051808303816000875af1158015611e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4b9190613b3c565b50611ec4565b60405163a9059cbb60e01b81526001600160a01b038a169063a9059cbb90611e7f908c908c90600401613abd565b6020604051808303816000875af1158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190613b3c565b505b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f289190613b3c565b1561202b57604051633dae446f60e21b81526000906001600160a01b038c169063f6b911bc90611f6090889087908f90600401613ad6565b60408051808303816000875af1158015611f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa29190612f17565b5090506000836001600160a01b031663bcb7ea5d876040518263ffffffff1660e01b8152600401611fd39190612454565b6020604051808303816000875af1158015611ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120169190612f9f565b90506120228183612cb1565b9250505061212e565b6000808b6001600160a01b031663f6b911bc878e8e6040518463ffffffff1660e01b815260040161205e93929190613ad6565b60408051808303816000875af115801561207c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a09190612f17565b91509150606060008d6001600160a01b03166329910b118985856040518463ffffffff1660e01b81526004016120d893929190613b57565b60408051808303816000875af11580156120f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211a9190612f17565b5090506121278185612cb1565b9450505050505b60405163769f8e5d60e01b81526001600160a01b038881166004830152602482018390528981166044830152606482018890526001608483015285169063769f8e5d9060a4016020604051808303816000875af1158015612193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b79190612f9f565b9a9950505050505050505050565b600061221a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123419092919063ffffffff16565b905080516000148061223b57508080602001905181019061223b9190613b3c565b611a215760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611bf1565b6000806000846001600160a01b0316846040516122b79190612efb565b6000604051808303816000865af19150503d80600081146122f4576040519150601f19603f3d011682016040523d82523d6000602084013e6122f9565b606091505b50915091508180156123235750805115806123235750808060200190518101906123239190613b3c565b801561233857506001600160a01b0385163b15155b95945050505050565b6060610285848460008585600080866001600160a01b031685876040516123689190612efb565b60006040518083038185875af1925050503d80600081146123a5576040519150601f19603f3d011682016040523d82523d6000602084013e6123aa565b606091505b5091509150610d9b878383876060831561242557825160000361241e576001600160a01b0385163b61241e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611bf1565b5081610285565b610285838381511561243a5781518083602001fd5b8060405162461bcd60e51b8152600401611bf19190613b7e565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461247d57600080fd5b50565b80356103dd81612468565b6000610120828403121561034857600080fd5b60008060008385036101208112156124b557600080fd5b84356124c081612468565b935060e0601f19820112156124d457600080fd5b506020840191506101008401356001600160401b038111156124f557600080fd5b6125018682870161248b565b9150509250925092565b60006020828403121561251d57600080fd5b81356001600160401b0381111561253357600080fd5b6102858482850161248b565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156125785761257861253f565b60405290565b60405160a081016001600160401b03811182821017156125785761257861253f565b604051608081016001600160401b03811182821017156125785761257861253f565b604051606081016001600160401b03811182821017156125785761257861253f565b60405161018081016001600160401b03811182821017156125785761257861253f565b604051601f8201601f191681016001600160401b038111828210171561262f5761262f61253f565b604052919050565b8035600881106103dd57600080fd5b6002811061247d57600080fd5b80356103dd81612646565b60006001600160401b038211156126775761267761253f565b50601f01601f191660200190565b600082601f83011261269657600080fd5b81356126a96126a48261265e565b612607565b8181528460208386010111156126be57600080fd5b816020850160208301376000918101602001919091529392505050565b600061012082840312156126ee57600080fd5b6126f6612555565b905061270182612637565b815261270f60208301612653565b602082015261272060408301612480565b6040820152606082013560608201526080820135608082015261274560a08301612480565b60a082015261275660c08301612480565b60c082015260e082013560e0820152610100808301356001600160401b0381111561278057600080fd5b61278c85828601612685565b82840152505092915050565b6000602082840312156127aa57600080fd5b81356001600160401b038111156127c057600080fd5b610285848285016126db565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156127f457600080fd5b81356127ff81612646565b9392505050565b60006020828403121561281857600080fd5b81356127ff81612468565b803560ff811681146103dd57600080fd5b600060e0828403121561284657600080fd5b60405160e081018181106001600160401b03821117156128685761286861253f565b60405282356003811061287a57600080fd5b808252506020830135602082015260408301356040820152606083013560608201526128a860808401612823565b608082015260a083013560a082015260c083013560c08201528091505092915050565b60006103be36836126db565b6000602082840312156128e957600080fd5b6127ff82612637565b6000808335601e1984360301811261290957600080fd5b8301803591506001600160401b0382111561292357600080fd5b60200191503681900382131561293857600080fd5b9250929050565b60006001600160401b038211156129585761295861253f565b5060051b60200190565b600082601f83011261297357600080fd5b813560206129836126a48361293f565b82815260059290921b840181019181810190868411156129a257600080fd5b8286015b848110156129c65780356129b981612468565b83529183019183016129a6565b509695505050505050565b600080604083850312156129e457600080fd5b82356001600160401b03808211156129fb57600080fd5b818501915085601f830112612a0f57600080fd5b81356020612a1f6126a48361293f565b82815260059290921b84018101918181019089841115612a3e57600080fd5b948201945b83861015612a5c57853582529482019490820190612a43565b96505086013592505080821115612a7257600080fd5b50612a7f85828601612962565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156103be576103be612a9f565b80516103dd81612468565b600082601f830112612ae457600080fd5b81516020612af46126a48361293f565b82815260059290921b84018101918181019086841115612b1357600080fd5b8286015b848110156129c6578051612b2a81612468565b8352918301918301612b17565b60008060408385031215612b4a57600080fd5b82516001600160401b0380821115612b6157600080fd5b818501915085601f830112612b7557600080fd5b81516020612b856126a48361293f565b82815260059290921b84018101918181019089841115612ba457600080fd5b948201945b83861015612bc257855182529482019490820190612ba9565b91880151919650909350505080821115612bdb57600080fd5b50612a7f85828601612ad3565b60005b83811015612c03578181015183820152602001612beb565b50506000910152565b60008151808452612c24816020860160208601612be8565b601f01601f19169290920160200192915050565b6000610100612c5b83885180516001600160a01b03168252602090810151910152565b6020870151604084015260408701516060840152612c8f608084018780516001600160a01b03168252602090810151910152565b6001600160a01b03851660c084015260e08301819052610d9b81840185612c0c565b808201808211156103be576103be612a9f565b6000600160ff1b8201612cd957612cd9612a9f565b5060000390565b600081518084526020808501945080840160005b83811015612d195781516001600160a01b031687529582019590820190600101612cf4565b509495945050505050565b600081518084526020808501945080840160005b83811015612d1957815187529582019590820190600101612d38565b600061012080830160028a10612d6c57612d6c6127cc565b89845260208085019290925288519081905261014080850192600583901b8601909101918a820160005b82811015612df95787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290612de581880183612c0c565b978601979650505090830190600101612d96565b505050508381036040850152612e0f8189612ce0565b915050612e4f606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152612e618186612d24565b91505082610100830152979650505050505050565b60006020808385031215612e8957600080fd5b82516001600160401b03811115612e9f57600080fd5b8301601f81018513612eb057600080fd5b8051612ebe6126a48261293f565b81815260059190911b82018301908381019087831115612edd57600080fd5b928401925b82841015610d9b57835182529284019290840190612ee2565b60008251612f0d818460208701612be8565b9190910192915050565b60008060408385031215612f2a57600080fd5b505080516020909101519092909150565b6000815160a08452612f5060a0850182612c0c565b6020848101516001600160a01b031690860152604080850151908601526060808501519086015260809384015193909401929092525090919050565b6020815260006127ff6020830184612f3b565b600060208284031215612fb157600080fd5b5051919050565b600082601f830112612fc957600080fd5b8151612fd76126a48261265e565b818152846020838601011115612fec57600080fd5b610285826020830160208701612be8565b805180151581146103dd57600080fd5b600060a0828403121561301f57600080fd5b61302761257e565b9050815161303481612468565b815260208281015190820152604082015161304e81612468565b6040820152606082015161306181612468565b606082015260808201516001600160401b038082111561308057600080fd5b908301906080828603121561309457600080fd5b61309c6125a0565b8251600b81106130ab57600080fd5b815260208301516130bb81612468565b60208201526040830151828111156130d257600080fd5b6130de87828601612fb8565b6040830152506130f060608401612ffd565b6060820152608084015250909392505050565b8051600481106103dd57600080fd5b600082601f83011261312357600080fd5b815160206131336126a48361293f565b82815260059290921b8401810191818101908684111561315257600080fd5b8286015b848110156129c65780516001600160401b038082111561317557600080fd5b90880190601f196060838c038201121561318e57600080fd5b6131966125c2565b87840151838111156131a757600080fd5b8401610180818e03840112156131bc57600080fd5b6131c46125e4565b9250888101518352604081015189840152606081015160408401526131eb60808201613103565b60608401526131fc60a08201612ac8565b608084015261320d60c08201612ac8565b60a084015261321e60e08201612ac8565b60c0840152610100613231818301612ac8565b60e085015261012080830151828601526101409150818301518186015250610160808301518286015261018083015191508582111561326f57600080fd5b61327d8f8c84860101612fb8565b9085015250509081526040830151908282111561329957600080fd5b6132a78c8984870101612fb8565b8189015260609390930151604084015250508352918301918301613156565b600060a082840312156132d857600080fd5b6132e061257e565b90506132eb82612ac8565b81526020820151602082015260408201516001600160401b038082111561331157600080fd5b61331d85838601613112565b6040840152606084015191508082111561333657600080fd5b61334285838601613112565b6060840152608084015191508082111561335b57600080fd5b5061336884828501612fb8565b60808301525092915050565b60008060008084860361010081121561338c57600080fd5b855161339781612468565b945060a0601f19820112156133ab57600080fd5b506133b461257e565b6020860151815260408601516020820152606086015160408201526080860151606082015260a086015160808201528093505060c08501516001600160401b038082111561340157600080fd5b61340d8883890161300d565b935060e087015191508082111561342357600080fd5b50613430878288016132c6565b91505092959194509250565b600060018060a01b0380835116845260208301516020850152806040840151166040850152806060840151166060850152608083015160a060808601528051600b811061348b5761348b6127cc565b60a0860152602081015190911660c08501526040810151608060e0860152906134b8610120860183612c0c565b915060608101511515610100860152508091505092915050565b600481106134e2576134e26127cc565b9052565b600081518084526020808501808196508360051b8101915082860160005b8581101561363c57828403895281516060815181875280518288015287810151608081818a0152604091508183015160a081818c015285850151955060c09150613550828c01876134d2565b91840151945060e09161356d8b8401876001600160a01b03169052565b84015194506101006135898b8201876001600160a01b03169052565b908401519450610120906135a78b8301876001600160a01b03169052565b918401519450610140916135c58b8401876001600160a01b03169052565b8401516101608b81019190915290840151610180808c0191909152918401516101a08b01528301516101c08a019190915292506136066101e0890184612c0c565b92508884015191508783038989015261361f8383612c0c565b938101519701969096525098850198935090840190600101613504565b5091979650505050505050565b60018060a01b038151168252602081015160208301526000604082015160a0604085015261367a60a08501826134e6565b90506060830151848203606086015261369382826134e6565b915050608083015184820360808601526123388282612c0c565b600061014060018060a01b03808a1684528089166020850152508660408401528551606084015260208601516080840152604086015160a0840152606086015160c0840152608086015160e08401528061010084015261370f8184018661343c565b90508281036101208401526119be8185613649565b60008060006060848603121561373957600080fd5b8351925060208401519150604084015190509250925092565b6000806040838503121561376557600080fd5b825161377081612646565b60208401519092506001600160401b0381111561378c57600080fd5b612a7f85828601612fb8565b6000806000606084860312156137ad57600080fd5b83516137b881612468565b6020850151604086015191945092506137d081612468565b809150509250925092565b600080600080608085870312156137f157600080fd5b84516137fc81612468565b6020860151604087015191955093506001600160401b038082111561382057600080fd5b61382c8883890161300d565b9350606087015191508082111561342357600080fd5b6001600160a01b038681168252851660208201526040810184905260a0606082018190526000906138759083018561343c565b82810360808401526138878185613649565b98975050505050505050565b600080600080608085870312156138a957600080fd5b84516138b481612468565b60208601516040870151606090970151919890975090945092505050565b6000602082840312156138e457600080fd5b81516127ff81612468565b60008060006060848603121561390457600080fd5b83519250602084015161391681612468565b80925050604084015190509250925092565b6000806000806080858703121561393e57600080fd5b84516001600160401b038082111561395557600080fd5b61396188838901612fb8565b955060209150818701518181111561397857600080fd5b8701601f8101891361398957600080fd5b80516139976126a48261293f565b81815260059190911b8201840190848101908b8311156139b657600080fd5b8584015b838110156139ee578051868111156139d25760008081fd5b6139e08e8983890101612fb8565b8452509186019186016139ba565b50809850505050505050613a0460408601612ac8565b6060959095015193969295505050565b60008060408385031215613a2757600080fd5b8251613a3281612468565b6020939093015192949293505050565b606081526000613a556060830186612c0c565b6020838203818501528186518084528284019150828160051b85010183890160005b83811015613aa557601f19878403018552613a93838351612c0c565b94860194925090850190600101613a77565b50508095505050505050826040830152949350505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600080600060608486031215613b0f57600080fd5b8351613b1a81612468565b6020850151909350613b2b81612468565b60408501519092506137d081612468565b600060208284031215613b4e57600080fd5b6127ff82612ffd565b60018060a01b03841681528260208201526060604082015260006123386060830184612c0c565b6020815260006127ff6020830184612c0c56fea2646970667358221220076b8f596c79d9067ebc79e6ad8e980cc33c34598f197be42276ccf367809a6864736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000888888888889758f76e7103c6cbf23abbf58f9460000000000000000000000006131b5fae19ea4f9d964eac0408e4408b66337b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000