0 txs
1 call
constructor
constructor()
functions
getPermit2Address
viewfunction getPermit2Address() view returns (address permit2Address_)
getRouter
viewfunction getRouter(bytes32 routerKey_) view returns (address routerAddress_)
getWrappedNativeToken
viewfunction getWrappedNativeToken() view returns (address wrappedNativeToken_)
owner
viewfunction owner() view returns (address)
addRouter
nonpayablefunction addRouter(bytes32 routerKey_, address router_)
initialize
nonpayablefunction initialize(address owner_, address permit2_, address wrappedNativeToken_)
removeRouter
nonpayablefunction removeRouter(bytes32 routerKey_)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueFunds
nonpayablefunction rescueFunds(address token_, address to_, uint256 amount_)
setWrappedNativeToken
nonpayablefunction setWrappedNativeToken(address wrappedNativeToken_)
swap
payablefunction swap(tuple swapStruct_) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RouterAdded
event RouterAdded(bytes32 indexed routerKey, address router)
RouterRemoved
event RouterRemoved(bytes32 indexed routerKey)
SwapComplete
event SwapComplete(address indexed router, (address token, uint256 amount, (bytes32 routerKey, bytes swapData) aggregatorData) indexed srcTokenSwapDetails)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AmountsAfterPermit2TransferMismatch
error AmountsAfterPermit2TransferMismatch(address token, uint256 expectedAmount, uint256 actualAmount)
EmptyPayload
error EmptyPayload()
FailedInnerCall
error FailedInnerCall()
FailedToApproveParaswap
error FailedToApproveParaswap(bytes returnData)
InsufficientAmountReceived
error InsufficientAmountReceived(address destToken, uint256 receivedAmount, uint256 minAmount)
InvalidAggregator
error InvalidAggregator(bytes32 routerKey)
InvalidInitialization
error InvalidInitialization()
InvalidNativeTokenTransferEncoding
error InvalidNativeTokenTransferEncoding()
NativeTokenSentWithoutNativeSwap
error NativeTokenSentWithoutNativeSwap()
NotEnoughNativeTokenSent
error NotEnoughNativeTokenSent(uint256 expectedAmount, uint256 sentAmount)
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SwapFailed
error SwapFailed(address router, (address token, uint256 amount, (bytes32 routerKey, bytes swapData) aggregatorData) srcTokenSwapDetails, bytes returnData)
UnsupportedPermit2Method
error UnsupportedPermit2Method(uint8 transferType)
UnsupportedTokenTransferMethod
error UnsupportedTokenTransferMethod()
ZeroAddress
error ZeroAddress(string field)
creation bytecode
0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61270b806100d96000396000f3fe6080604052600436106100c75760003560e01c80638da5cb5b11610074578063da058ae31161004e578063da058ae31461027a578063dd936e1e1461029a578063f2fde38b146102ba57600080fd5b80638da5cb5b1461020a578063bffcd25014610247578063c0c53b8b1461025a57600080fd5b8063608a6898116100a5578063608a6898146101b35780636ccae054146101d5578063715018a6146101f557600080fd5b80631d9478b6146100cc5780632dab13651461012157806334f614411461015e575b600080fd5b3480156100d857600080fd5b507ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d01546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b34801561012d57600080fd5b507ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d00546001600160a01b0316610105565b34801561016a57600080fd5b50610105610179366004611a25565b60009081527f4cf853a34ccdbeaaf639a4ff5f4912cf72bb597aabb8eb66c2a38478d7f7230060205260409020546001600160a01b031690565b3480156101bf57600080fd5b506101d36101ce366004611a25565b6102da565b005b3480156101e157600080fd5b506101d36101f0366004611a53565b6103b9565b34801561020157600080fd5b506101d36103da565b34801561021657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610105565b6101d3610255366004611a94565b6103ee565b34801561026657600080fd5b506101d3610275366004611acf565b61065a565b34801561028657600080fd5b506101d3610295366004611b1a565b6107fd565b3480156102a657600080fd5b506101d36102b5366004611b37565b610845565b3480156102c657600080fd5b506101d36102d5366004611b1a565b610915565b6102e2610950565b60008181527f4cf853a34ccdbeaaf639a4ff5f4912cf72bb597aabb8eb66c2a38478d7f7230060205260409020546001600160a01b03166103545760405163eac0d38960e01b81526020600482015260066024820152653937baba32b960d11b60448201526064015b60405180910390fd5b60008181527f4cf853a34ccdbeaaf639a4ff5f4912cf72bb597aabb8eb66c2a38478d7f72300602052604080822080546001600160a01b03191690555182917f813b69b7582e7b6cbe5fbfb9fbaceeef78bb34c4297b68f138b189e96eebeead91a250565b6103c1610950565b6103d56001600160a01b03841683836109ab565b505050565b6103e2610950565b6103ec6000610a0a565b565b60006104006040830160208401611b1a565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046a9190611b67565b90506104883361047a8480611b80565b61048391611e08565b610a7b565b60005b6104958380611b80565b905081101561055a5760005b6104ab8480611b80565b838181106104bb576104bb611f5b565b90506020028101906104cd9190611f71565b6104d79080611b80565b9050811015610551576105496104ed8580611b80565b848181106104fd576104fd611f5b565b905060200281019061050f9190611f71565b6105199080611b80565b8381811061052957610529611f5b565b905060200281019061053b9190611f91565b61054490611fa7565b610bcf565b6001016104a1565b5060010161048b565b5060008161056e6040850160208601611b1a565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156105b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d89190611b67565b6105e29190611fc9565b90506040830135811015610635576106006040840160208501611b1a565b604080516381a815ef60e01b81526001600160a01b03909216600483015260248201839052840135604482015260640161034b565b6103d5338261064a6040870160208801611b1a565b6001600160a01b031691906109ab565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156106a55750825b905060008267ffffffffffffffff1660011480156106c25750303b155b9050811580156106d0575080155b156106ee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561072257845468ff00000000000000001916680100000000000000001785555b61072b88610d18565b6107a887877ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d0080546001600160a01b0319166001600160a01b0384161790557ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d0180546001600160a01b0319166001600160a01b0383161790555050565b83156107f357845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610805610950565b7ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d0180546001600160a01b0319166001600160a01b03831617905550565b50565b61084d610950565b6001600160a01b03811661088d5760405163eac0d38960e01b81526020600482015260066024820152653937baba32b960d11b604482015260640161034b565b60008281527f4cf853a34ccdbeaaf639a4ff5f4912cf72bb597aabb8eb66c2a38478d7f723006020526040902080546001600160a01b0319166001600160a01b0383161790556040516001600160a01b038216815282907f64f648ff7e0f6e86ecb0b40dbf60a10fbb6bcc7ef4be78027cd91bf57c22c4859060200160405180910390a25050565b61091d610950565b6001600160a01b03811661094757604051631e4fbdf760e01b81526000600482015260240161034b565b61084281610a0a565b336109827f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103ec5760405163118cdaa760e01b815233600482015260240161034b565b6040516001600160a01b038381166024830152604482018390526103d591859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610d29565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000805b82518160ff161015610ba2576000838260ff1681518110610aa257610aa2611f5b565b60209081029190910181015101515190506000816002811115610ac757610ac7611fdc565b03610af757610af285858460ff1681518110610ae557610ae5611f5b565b6020026020010151610d8c565b610b91565b6001816002811115610b0b57610b0b611fdc565b03610b3657610af285858460ff1681518110610b2957610b29611f5b565b6020026020010151610e03565b6002816002811115610b4a57610b4a611fdc565b03610b785760019250610af2848360ff1681518110610b6b57610b6b611f5b565b602002602001015161123a565b604051635b7543dd60e01b815260040160405180910390fd5b50610b9b81611ff2565b9050610a7f565b5080158015610bb15750600034115b156103d557604051634088d01d60e01b815260040160405180910390fd5b6040810151516000610c158260009081527f4cf853a34ccdbeaaf639a4ff5f4912cf72bb597aabb8eb66c2a38478d7f7230060205260409020546001600160a01b031690565b90506001600160a01b038116610c41576040516376c68c3b60e01b81526004810183905260240161034b565b82604001516020015151600003610c6b57604051630b8fc7cd60e21b815260040160405180910390fd5b600080606067050415241535741560c41b8514610c885783610c91565b610c9184611395565b9250610c9e86848661145c565b909250905081610cc757838682604051632a4b8ea360e11b815260040161034b93929190612061565b85604051610cd591906120dd565b604051908190038120906001600160a01b038616907f7989a24679bea10096cccc607b01e3c1ad515abb3cf93ae5d8d27075949a844590600090a3505050505050565b610d20611693565b610842816116e1565b6000610d3e6001600160a01b038416836116e9565b90508051600014158015610d63575080806020019051810190610d619190612131565b155b156103d557604051635274afe760e01b81526001600160a01b038416600482015260240161034b565b60005b8151518110156103d557610dfb833084600001518481518110610db457610db4611f5b565b60200260200101516020015185600001518581518110610dd657610dd6611f5b565b6020026020010151600001516001600160a01b0316611700909392919063ffffffff16565b600101610d8f565b6000816020015160200151806020019051810190610e219190612198565b9050600082600001515167ffffffffffffffff811115610e4357610e43611bd1565b604051908082528060200260200182016040528015610e6c578160200160208202803683370190505b50905060005b835151811015610f2a578351805182908110610e9057610e90611f5b565b6020908102919091010151516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f059190611b67565b828281518110610f1757610f17611f5b565b6020908102919091010152600101610e72565b50600082516001811115610f4057610f40611fdc565b036110075760008260200151806020019051810190610f5f919061225b565b9050610f927ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d00546001600160a01b031690565b6001600160a01b03166330f28b7a826000015183602001518885604001516040518563ffffffff1660e01b8152600401610fcf9493929190612322565b600060405180830381600087803b158015610fe957600080fd5b505af1158015610ffd573d6000803e3d6000fd5b50505050506110c7565b60018251600181111561101c5761101c611fdc565b036110ab576000826020015180602001905181019061103b9190612414565b905061106e7ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d00546001600160a01b031690565b6001600160a01b031663edd9444b826000015183602001518885604001516040518563ffffffff1660e01b8152600401610fcf9493929190612593565b8151604051633a01d48360e11b815261034b9190600401612658565b60005b835151811015611233576000846000015182815181106110ec576110ec611f5b565b6020908102919091010151516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561113d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111619190611b67565b9050600083838151811061117757611177611f5b565b60200260200101518261118a9190611fc9565b9050856000015183815181106111a2576111a2611f5b565b60200260200101516020015181146112295785518051849081106111c8576111c8611f5b565b602002602001015160000151866000015184815181106111ea576111ea611f5b565b6020908102919091018101510151604051632dcd710760e21b81526001600160a01b03909216600483015260248201526044810182905260640161034b565b50506001016110ca565b5050505050565b600061126d7ff443e521187c51ec1e29e6d8262f76dbe7d41015741854199897c2f773019d01546001600160a01b031690565b82515190915060011415806112b65750806001600160a01b0316826000015160008151811061129e5761129e611f5b565b6020026020010151600001516001600160a01b031614155b156112d4576040516318a7537760e21b815260040160405180910390fd5b815180516000906112e7576112e7611f5b565b602002602001015160200151341461133d578151805160009061130c5761130c611f5b565b602002602001015160200151346040516348d9ecc160e01b815260040161034b929190918252602082015260400190565b806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561137857600080fd5b505af115801561138c573d6000803e3d6000fd5b50505050505050565b60408051600481526024810182526020810180516001600160e01b0316631a5896b360e31b1790529051600091829182916001600160a01b038616916113db9190612680565b600060405180830381855afa9150503d8060008114611416576040519150601f19603f3d011682016040523d82523d6000602084013e61141b565b606091505b509150915081611440578060405163212a0af160e01b815260040161034b9190612692565b8080602001905181019061145491906126a5565b949350505050565b8251604051636eb1769f60e11b81523060048201526001600160a01b03848116602483015260009260609284929091169063dd62ed3e90604401602060405180830381865afa1580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d79190611b67565b602087015187516040516370a0823160e01b81523060048201529293506000926001600160a01b03909116906370a0823190602401602060405180830381865afa158015611529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154d9190611b67565b6115579190611fc9565b90508660200151821015611587576115878661157584600019611fc9565b89516001600160a01b0316919061173f565b846001600160a01b03168760400151602001516040516115a79190612680565b6000604051808303816000865af19150503d80600081146115e4576040519150601f19603f3d011682016040523d82523d6000602084013e6115e9565b606091505b5088516040516370a0823160e01b81523060048201529296509094506000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561163a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165e9190611b67565b90508181111561168857611688336116768484611fc9565b8a516001600160a01b031691906109ab565b505050935093915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103ec57604051631afcd79f60e31b815260040160405180910390fd5b61091d611693565b60606116f7838360006117c9565b90505b92915050565b6040516001600160a01b0384811660248301528381166044830152606482018390526117399186918216906323b872dd906084016109d8565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561178f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b39190611b67565b905061173984846117c485856126c2565b611868565b6060814710156117ee5760405163cd78605960e01b815230600482015260240161034b565b600080856001600160a01b0316848660405161180a9190612680565b60006040518083038185875af1925050503d8060008114611847576040519150601f19603f3d011682016040523d82523d6000602084013e61184c565b606091505b509150915061185c8683836118f8565b925050505b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526118b98482611954565b611739576040516001600160a01b038481166024830152600060448301526118ee91869182169063095ea7b3906064016109d8565b6117398482610d29565b60608261190d57611908826119fc565b611861565b815115801561192457506001600160a01b0384163b155b1561194d57604051639996b31560e01b81526001600160a01b038516600482015260240161034b565b5080611861565b6000806000846001600160a01b0316846040516119719190612680565b6000604051808303816000865af19150503d80600081146119ae576040519150601f19603f3d011682016040523d82523d6000602084013e6119b3565b606091505b50915091508180156119dd5750805115806119dd5750808060200190518101906119dd9190612131565b80156119f357506000856001600160a01b03163b115b95945050505050565b805115611a0c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215611a3757600080fd5b5035919050565b6001600160a01b038116811461084257600080fd5b600080600060608486031215611a6857600080fd5b8335611a7381611a3e565b92506020840135611a8381611a3e565b929592945050506040919091013590565b600060208284031215611aa657600080fd5b813567ffffffffffffffff811115611abd57600080fd5b82016060818503121561186157600080fd5b600080600060608486031215611ae457600080fd5b8335611aef81611a3e565b92506020840135611aff81611a3e565b91506040840135611b0f81611a3e565b809150509250925092565b600060208284031215611b2c57600080fd5b813561186181611a3e565b60008060408385031215611b4a57600080fd5b823591506020830135611b5c81611a3e565b809150509250929050565b600060208284031215611b7957600080fd5b5051919050565b6000808335601e19843603018112611b9757600080fd5b83018035915067ffffffffffffffff821115611bb257600080fd5b6020019150600581901b3603821315611bca57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611c0a57611c0a611bd1565b60405290565b6040805190810167ffffffffffffffff81118282101715611c0a57611c0a611bd1565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5c57611c5c611bd1565b604052919050565b600067ffffffffffffffff821115611c7e57611c7e611bd1565b5060051b60200190565b600067ffffffffffffffff821115611ca257611ca2611bd1565b50601f01601f191660200190565b600082601f830112611cc157600080fd5b8135611cd4611ccf82611c88565b611c33565b818152846020838601011115611ce957600080fd5b816020850160208301376000918101602001919091529392505050565b600060608284031215611d1857600080fd5b611d20611be7565b90508135611d2d81611a3e565b815260208281013590820152604082013567ffffffffffffffff811115611d5357600080fd5b820160408185031215611d6557600080fd5b611d6d611c10565b81358152602082013567ffffffffffffffff811115611d8b57600080fd5b611d9786828501611cb0565b60208301525060408301525092915050565b600060408284031215611dbb57600080fd5b611dc3611c10565b9050813560038110611dd457600080fd5b8152602082013567ffffffffffffffff811115611df057600080fd5b611dfc84828501611cb0565b60208301525092915050565b6000611e16611ccf84611c64565b8381526020810190600585901b840136811115611e3257600080fd5b845b81811015611f5057803567ffffffffffffffff811115611e5357600080fd5b86016040368290031215611e6657600080fd5b611e6e611c10565b813567ffffffffffffffff811115611e8557600080fd5b820136601f820112611e9657600080fd5b8035611ea4611ccf82611c64565b8082825260208201915060208360051b850101925036831115611ec657600080fd5b602084015b83811015611f0857803567ffffffffffffffff811115611eea57600080fd5b611ef936602083890101611d06565b84525060209283019201611ecb565b508452505050602082013567ffffffffffffffff811115611f2857600080fd5b611f3436828501611da9565b6020830152508086525050602084019350602081019050611e34565b509095945050505050565b634e487b7160e01b600052603260045260246000fd5b60008235603e19833603018112611f8757600080fd5b9190910192915050565b60008235605e19833603018112611f8757600080fd5b60006116fa3683611d06565b634e487b7160e01b600052601160045260246000fd5b818103818111156116fa576116fa611fb3565b634e487b7160e01b600052602160045260246000fd5b600060ff821660ff810361200857612008611fb3565b60010192915050565b60005b8381101561202c578181015183820152602001612014565b50506000910152565b6000815180845261204d816020860160208601612011565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201526001600160a01b0383511660608201526020830151608082015260006040840151606060a0840152805160c084015260208101519050604060e08401526120bf610100840182612035565b905082810360408401526120d38185612035565b9695505050505050565b6001600160a01b03825116815260208201516020820152600060408301518051604084015260208101519050805161211c816060860160208501612011565b601f01601f1916929092016060019392505050565b60006020828403121561214357600080fd5b8151801515811461186157600080fd5b600082601f83011261216457600080fd5b8151612172611ccf82611c88565b81815284602083860101111561218757600080fd5b611454826020830160208701612011565b6000602082840312156121aa57600080fd5b815167ffffffffffffffff8111156121c157600080fd5b8201604081850312156121d357600080fd5b6121db611c10565b8151600281106121ea57600080fd5b8152602082015167ffffffffffffffff81111561220657600080fd5b61221286828501612153565b602083015250949350505050565b60006040828403121561223257600080fd5b61223a611c10565b9050815161224781611a3e565b815260209182015191810191909152919050565b60006020828403121561226d57600080fd5b815167ffffffffffffffff81111561228457600080fd5b820180840360e081121561229757600080fd5b61229f611be7565b60808212156122ad57600080fd5b6122b5611be7565b91506122c18684612220565b825260408381015160208401526060840151908301528181526122e78660808501612220565b602082015260c0830151915067ffffffffffffffff82111561230857600080fd5b61231486838501612153565b604082015295945050505050565b61234081865180516001600160a01b03168252602090810151910152565b6020850151604082015260408501516060820152612374608082018580516001600160a01b03168252602090810151910152565b6001600160a01b03831660c082015261010060e082015260006120d3610100830184612035565b60006123a9611ccf84611c64565b838152905060208101600684901b8301858111156123c657600080fd5b835b818110156123ea576123da8782612220565b83526020909201916040016123c8565b5050509392505050565b600082601f83011261240557600080fd5b6116f78383516020850161239b565b60006020828403121561242657600080fd5b815167ffffffffffffffff81111561243d57600080fd5b82016060818503121561244f57600080fd5b612457611be7565b815167ffffffffffffffff81111561246e57600080fd5b82016060818703121561248057600080fd5b612488611be7565b815167ffffffffffffffff81111561249f57600080fd5b8201601f810188136124b057600080fd5b6124bf8882516020840161239b565b8252506020828101518183015260409283015192820192909252825282015167ffffffffffffffff8111156124f357600080fd5b6124ff868285016123f4565b602083015250604082015167ffffffffffffffff81111561251f57600080fd5b61252b86828501612153565b604083015250949350505050565b600081518084526020840193506020830160005b828110156125895761257386835180516001600160a01b03168252602090810151910152565b604095909501946020919091019060010161254d565b5093949350505050565b60808152600060e0820186516060608085015281815180845261010086019150602083019350600092505b808310156125fb576125e482855180516001600160a01b03168252602090810151910152565b6040820191506020840193506001830192506125be565b50602089015160a0860152604089015160c086015284810360208601526126228189612539565b9250505061263b60408401866001600160a01b03169052565b828103606084015261264d8185612035565b979650505050505050565b602081016002831061267a57634e487b7160e01b600052602160045260246000fd5b91905290565b60008251611f87818460208701612011565b6020815260006116f76020830184612035565b6000602082840312156126b757600080fd5b815161186181611a3e565b808201808211156116fa576116fa611fb356fea2646970667358221220f7474cafb88ecbed3d7738492cd6e32414b9a7d92ac007337b3044cdab3c599164736f6c634300081c0033