12 txs
66 calls
constructor
constructor(address _poolManager, address _hook, address _wblt, address _bmx, address _dailyGauge)
functions
BMX
viewfunction BMX() view returns (address)
buybackBps
viewfunction buybackBps() view returns (uint16)
buybackPoolKey
viewfunction buybackPoolKey() view returns (address currency0, address currency1, uint24 fee, int24 tickSpacing, address hooks)
buybackPoolSet
viewfunction buybackPoolSet() view returns (bool)
DAILY_GAUGE
viewfunction DAILY_GAUGE() view returns (address)
getPendingPoolByIndex
viewfunction getPendingPoolByIndex(uint256 index) view returns (bytes32)
getPendingPools
viewfunction getPendingPools() view returns (bytes32[])
isHook
viewfunction isHook(address) view returns (bool)
isKeeper
viewfunction isKeeper(address) view returns (bool)
MIN_WBLT_FOR_BUYBACK
viewfunction MIN_WBLT_FOR_BUYBACK() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
pendingPoolsCount
viewfunction pendingPoolsCount() view returns (uint256)
pendingWbltForBuyback
viewfunction pendingWbltForBuyback(bytes32) view returns (uint256)
pendingWbltForVoter
viewfunction pendingWbltForVoter() view returns (uint256)
poolManager
viewfunction poolManager() view returns (address)
WBLT
viewfunction WBLT() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
claimVoterFees
nonpayablefunction claimVoterFees(address to)
collectFee
nonpayablefunction collectFee(tuple key, uint256 amountWblt, bool isInternalSwap)
flushBuffer
nonpayablefunction flushBuffer(bytes32 poolId, uint256 expectedBmxOut)
flushBuffers
nonpayablefunction flushBuffers(bytes32[] poolIds, uint256[] expectedBmxOuts)
renounceOwnership
nonpayablefunction renounceOwnership()
setBuybackBps
nonpayablefunction setBuybackBps(uint16 newBps)
setBuybackPoolKey
nonpayablefunction setBuybackPoolKey(tuple key)
setHook
nonpayablefunction setHook(address hook, bool enabled)
setKeeper
nonpayablefunction setKeeper(address keeper, bool enabled)
sweepERC20
nonpayablefunction sweepERC20(address token, uint256 amount, address to)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlockCallback
nonpayablefunction unlockCallback(bytes data) returns (bytes)
events
BuybackBpsUpdated
event BuybackBpsUpdated(uint16 newBps)
BuybackExecuted
event BuybackExecuted(bytes32 indexed poolId, uint256 wbltIn, uint256 bmxOut)
BuybackPoolSet
event BuybackPoolSet(bytes32 poolId)
FeeCollected
event FeeCollected(address indexed hook, bytes32 indexed poolId, uint256 totalAmount, uint256 buybackPortion, uint256 voterPortion, bool indexed isInternalSwap)
HookAuthorised
event HookAuthorised(address hook, bool enabled)
KeeperAuthorised
event KeeperAuthorised(address keeper, bool enabled)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
TokenSwept
event TokenSwept(address indexed token, uint256 amount, address indexed to)
VoterFeesClaimed
event VoterFeesClaimed(uint256 amount, address to)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
BelowMinimumThreshold
error BelowMinimumThreshold()
FailedInnerCall
error FailedInnerCall()
InvalidBps
error InvalidBps()
InvalidOption
error InvalidOption()
InvalidPoolKey
error InvalidPoolKey()
NoFunds
error NoFunds()
NoKey
error NoKey()
NoSwap
error NoSwap()
NotAllowed
error NotAllowed()
NotHook
error NotHook()
NotPoolManager
error NotPoolManager()
NotPoolManager
error NotPoolManager()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Slippage
error Slippage()
ZeroAddress
error ZeroAddress()
ZeroAmount
error ZeroAmount()
creation bytecode
0x6101006040526001805461ffff60a01b191661097960a21b179055348015610025575f80fd5b506040516126db3803806126db83398101604081905261004491610179565b8480338061006b57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610074816100fa565b5050506001600160a01b0385811660805284165f818152600b6020908152604091829020805460ff191660019081179091558251938452908301527f969bb7542263e82515f30263de146111e882f6d42fc244c9624a924b2d197790910160405180910390a16001600160a01b0392831660a05290821660c0521660e052506101ea9050565b600180546001600160a01b031916905561011381610116565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610113575f80fd5b5f805f805f60a0868803121561018d575f80fd5b855161019881610165565b60208701519095506101a981610165565b60408701519094506101ba81610165565b60608701519093506101cb81610165565b60808701519092506101dc81610165565b809150509295509295909350565b60805160a05160c05160e05161244e61028d5f395f81816103130152818161154a01526115a901525f81816101ef015281816106140152818161065b01528181610848015261152801525f818161027c015281816106ab0152818161080d01528181610edd01526112bd01525f81816104ab015281816109fb015281816110780152818161111b015281816112e5015281816113d301526114f4015261244e5ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c806398d91476116100fe578063d95b4abb1161009e578063e49e78ff1161006e578063e49e78ff146104de578063f2af25bc146104e6578063f2fde38b146104f3578063fdab987814610506575f80fd5b8063d95b4abb14610404578063d95c70f814610417578063dc4c90d3146104a6578063e30c3978146104cd575f80fd5b8063baa9f0fa116100d9578063baa9f0fa14610394578063d1b9e853146103bc578063d2676529146103cf578063d8ffeaeb146103f1575f80fd5b806398d9147614610365578063a6e9cc3d14610378578063ad9a83d914610381575f80fd5b80636ba42aaa11610174578063833e8db111610144578063833e8db1146102fb5780638a17f2d21461030e5780638da5cb5b1461033557806391dd734614610345575f80fd5b80636ba42aaa146102b1578063715018a6146102e357806378fdd390146102eb57806379ba5097146102f3575f80fd5b806344712c10116101af57806344712c101461024f57806345c25ea41461026257806354bda2b7146102775780635e964c1f1461029e575f80fd5b8063133795b4146101d55780631a669779146101ea578063366b552e1461022e575b5f80fd5b6101e86101e3366004611c86565b610525565b005b6102117f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61024161023c366004611ca7565b6105dd565b604051908152602001610225565b6101e861025d366004611cd4565b610601565b61026a6107ad565b6040516102259190611cee565b6102117f000000000000000000000000000000000000000000000000000000000000000081565b6101e86102ac366004611d44565b610803565b6102d36102bf366004611d83565b600c6020525f908152604090205460ff1681565b6040519015158152602001610225565b6101e8610900565b600d54610241565b6101e8610913565b6101e8610309366004611dab565b61095c565b6102117f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b0316610211565b610358610353366004611de2565b6109ee565b6040516102259190611e7e565b6101e8610373366004611e90565b610a4c565b610241600a5481565b6101e861038f366004611ef8565b610b22565b6001546103a990600160a01b900461ffff1681565b60405161ffff9091168152602001610225565b6101e86103ca366004611dab565b610c34565b6102d36103dd366004611d83565b600b6020525f908152604090205460ff1681565b6101e86103ff366004611f64565b610cbe565b6101e8610412366004611d83565b610e87565b60028054600354600454610466936001600160a01b03938416938381169362ffffff600160a01b820416937701000000000000000000000000000000000000000000000090910490920b911685565b604080516001600160a01b039687168152948616602086015262ffffff9093169284019290925260020b606083015291909116608082015260a001610225565b6102117f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b0316610211565b610241600181565b6005546102d39060ff1681565b6101e8610501366004611d83565b610f42565b610241610514366004611ca7565b60096020525f908152604090205481565b61052d610fb2565b6127108161ffff16111561056d576040517fc6cc5d7f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff16600160a01b61ffff8416908102919091179091556040519081527fda4694a6b8cb415b826e95148e7cffcdad2df632d70e393ae0c5b2b1baaa15a99060200160405180910390a150565b5f600d82815481106105f1576105f1611f97565b905f5260205f2001549050919050565b610609610fb2565b5f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166106416020840184611d83565b6001600160a01b0316148061069657506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661068b6040840160208501611d83565b6001600160a01b0316145b90505f6106db6106a96020850185611d83565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b806106f457506106f46106a96040850160208601611d83565b90508180156107005750805b610736576040517fc256622b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260026107438282611fc9565b505060055460ff1661075d576005805460ff191660011790555b7f1f549db2999e85cb1e3188c421ae2b05adb9a6d945b972784281e09915fdc7b761079761079036869003860186612119565b60a0902090565b60405190815260200160405180910390a1505050565b6060600d8054806020026020016040519081016040528092919081815260200182805480156107f957602002820191905f5260205f20905b8154815260200190600101908083116107e5575b5050505050905090565b61080b610fb2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148061087c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b1561089a57604051631eb49d6d60e11b815260040160405180910390fd5b6108ae6001600160a01b0384168284610fde565b806001600160a01b0316836001600160a01b03167fe8b2c769b00730298f87350efd2b5fa12b2af65f89e8b625c2edb67c25a6155d846040516108f391815260200190565b60405180910390a3505050565b610908610fb2565b6109115f611052565b565b60015433906001600160a01b031681146109505760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61095981611052565b50565b610964610fb2565b6001600160a01b03821661098b5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382165f818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f969bb7542263e82515f30263de146111e882f6d42fc244c9624a924b2d19779091015b60405180910390a15050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a395760405163570c108560e11b815260040160405180910390fd5b610a43838361106b565b90505b92915050565b335f908152600c602052604090205460ff1680610a6857503330145b610a8557604051631eb49d6d60e11b815260040160405180910390fd5b60055460ff16610ac1576040517f80246e7f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152600960205260409020546001811015610b0a576040517f1ea5f85c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60078390556008829055610b1d816110d3565b505050565b335f908152600c602052604090205460ff1680610b3e57503330145b610b5b57604051631eb49d6d60e11b815260040160405180910390fd5b828114610b94576040517f2a71953100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b83811015610c2d57306398d91476868684818110610bb657610bb6611f97565b90506020020135858585818110610bcf57610bcf611f97565b905060200201356040518363ffffffff1660e01b8152600401610bfc929190918252602082015260400190565b5f604051808303815f87803b158015610c13575f80fd5b505af1925050508015610c24575060015b50600101610b96565b5050505050565b610c3c610fb2565b6001600160a01b038216610c635760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382165f818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527ffad06187cdc2417b4edf7a5342b344d85dda9dcacc06d770166a7e6dc565bed191016109e2565b335f908152600b602052604090205460ff16610d06576040517fc72cfc3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f03610d3f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d5261079036869003860186612119565b6001549091505f9061271090610d7390600160a01b900461ffff16866121c5565b610d7d91906121dc565b90505f610d8a82866121fb565b604080518781526020810185905290810182905290915084151590849033907fbdd4ecbdbc1418a069673b5bcbf2e41d344a146f405239667bd6539793d18f939060600160405180910390a45f83815260096020526040902054610dee838261220e565b5f85815260096020526040812091909155600a8054849290610e1190849061220e565b909155505080158015610e2357505f83115b8015610e3a57505f848152600e6020526040902054155b15610e7e57600d80546001810182557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501859055545f858152600e60205260409020555b50505050505050565b610e8f610fb2565b600a545f819003610ecc576040517f43f9e11000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600a55610f046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610fde565b604080518281526001600160a01b03841660208201527f224c5ee7fd79ace10ea945d31053d6f5f566d6a5ca8ffdfb70a65980068b642c91016109e2565b610f4a610fb2565b600180546001600160a01b0383166001600160a01b03199091168117909155610f7a5f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146109115760405163118cdaa760e01b8152336004820152602401610947565b6040516001600160a01b03838116602483015260448201839052610b1d91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061119f565b600180546001600160a01b031916905561095981611219565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110b65760405163570c108560e11b815260040160405180910390fd5b6110be611268565b5060408051602081019091525f815292915050565b60068190556007545f9081526009602052604080822091909155517f48c894910000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906348c89491906111599060040160208082525f9082015260400190565b5f604051808303815f875af1158015611174573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261119b9190810190612221565b5050565b5f6111b36001600160a01b03841683611682565b905080515f141580156111d75750808060200190518101906111d591906122b5565b155b15610b1d576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610947565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6006545f8190036112a5576040517fc84be13500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546003546001600160a01b0391821691908116907f0000000000000000000000000000000000000000000000000000000000000000168214806113387f0000000000000000000000000000000000000000000000000000000000000000306fffffffffffffffffffffffffffffffff88165f856113245787611326565b885b6001600160a01b03169392919061168f565b5f6040518060600160405280831515815260200187611356906122d0565b8152602001836113845761137f600173fffd8963efd1fc6a506488495d951d5263988d26612306565b611394565b6113946401000276a36001612325565b6001600160a01b03908116909152604080517fde1abeef0000000000000000000000000000000000000000000000000000000060208201529293505f927f00000000000000000000000000000000000000000000000000000000000000009092169163f3cd914c916002918691016040516020818303038152906040526040518463ffffffff1660e01b815260040161142f93929190612344565b6020604051808303815f875af115801561144b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146f91906123d7565b90505f8361147d578661147f565b855b90505f84611499576114918360801d90565b600f0b6114a7565b6114a383600f0b90565b600f0b5b90506008548110156114e5576040517f7dd37f7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61151b6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000030845f61190c565b61156f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610fde565b6007546040517f48f60dfd0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348f60dfd906044015f604051808303815f87803b1580156115f2575f80fd5b505af1158015611604573d5f803e3d5ffd5b5050600754604080518d8152602081018690529193507f9ff78e7c440e5fcb39d1e846ff16b1e3ab6ba799bf89e6e5b33cab8fe5df891a92500160405180910390a25f600681905560078054908290556008829055808252600960205260408220549091036116765761167681611a15565b50505050505050505050565b6060610a4383835f611adc565b8115610c2d57801561174257836001600160a01b031663f5298aca846116c4886001600160a01b03166001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064015b5f604051808303815f87803b158015611727575f80fd5b505af1158015611739573d5f803e3d5ffd5b50505050610c2d565b6001600160a01b03851661180f57604051632961046560e21b81526001600160a01b03868116600483015285169063a5841194906024015f604051808303815f87803b158015611790575f80fd5b505af11580156117a2573d5f803e3d5ffd5b50505050836001600160a01b03166311da60b4836040518263ffffffff1660e01b815260040160206040518083038185885af11580156117e4573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061180991906123d7565b50610c2d565b604051632961046560e21b81526001600160a01b03868116600483015285169063a5841194906024015f604051808303815f87803b15801561184f575f80fd5b505af1158015611861573d5f803e3d5ffd5b505050506001600160a01b038316301461188f5761188a6001600160a01b038616848685611b90565b6118a3565b6118a36001600160a01b0386168584610fde565b836001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af11580156118e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190491906123d7565b505050505050565b8115610c2d578061196d576040517f0b0d9c090000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152848116602483015260448201849052851690630b0d9c0990606401611710565b836001600160a01b031663156e29f684611996886001600160a01b03166001600160a01b031690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064015f604051808303815f87803b1580156119f8575f80fd5b505af1158015611a0a573d5f803e3d5ffd5b505050505050505050565b5f818152600e602052604081205490819003611a2f575050565b600d54818114611aa1575f600d611a476001846121fb565b81548110611a5757611a57611f97565b905f5260205f200154905080600d600185611a7291906121fb565b81548110611a8257611a82611f97565b5f918252602080832090910192909255918252600e9052604090208290555b600d805480611ab257611ab26123ee565b5f828152602080822083015f19908101839055909201909255938152600e90935250506040812055565b606081471015611b1a576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610947565b5f80856001600160a01b03168486604051611b359190612402565b5f6040518083038185875af1925050503d805f8114611b6f576040519150601f19603f3d011682016040523d82523d5f602084013e611b74565b606091505b5091509150611b84868383611bcf565b925050505b9392505050565b6040516001600160a01b038481166024830152838116604483015260648201839052611bc99186918216906323b872dd9060840161100b565b50505050565b606082611be457611bdf82611c44565b611b89565b8151158015611bfb57506001600160a01b0384163b155b15611c3d576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610947565b5080611b89565b805115611c545780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60208284031215611c96575f80fd5b813561ffff81168114611b89575f80fd5b5f60208284031215611cb7575f80fd5b5035919050565b5f60a08284031215611cce575f80fd5b50919050565b5f60a08284031215611ce4575f80fd5b610a438383611cbe565b602080825282518282018190525f918401906040840190835b81811015611d25578351835260209384019390920191600101611d07565b509095945050505050565b6001600160a01b0381168114610959575f80fd5b5f805f60608486031215611d56575f80fd5b8335611d6181611d30565b9250602084013591506040840135611d7881611d30565b809150509250925092565b5f60208284031215611d93575f80fd5b8135611b8981611d30565b8015158114610959575f80fd5b5f8060408385031215611dbc575f80fd5b8235611dc781611d30565b91506020830135611dd781611d9e565b809150509250929050565b5f8060208385031215611df3575f80fd5b823567ffffffffffffffff811115611e09575f80fd5b8301601f81018513611e19575f80fd5b803567ffffffffffffffff811115611e2f575f80fd5b856020828401011115611e40575f80fd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a436020830184611e50565b5f8060408385031215611ea1575f80fd5b50508035926020909101359150565b5f8083601f840112611ec0575f80fd5b50813567ffffffffffffffff811115611ed7575f80fd5b6020830191508360208260051b8501011115611ef1575f80fd5b9250929050565b5f805f8060408587031215611f0b575f80fd5b843567ffffffffffffffff811115611f21575f80fd5b611f2d87828801611eb0565b909550935050602085013567ffffffffffffffff811115611f4c575f80fd5b611f5887828801611eb0565b95989497509550505050565b5f805f60e08486031215611f76575f80fd5b611f808585611cbe565b925060a0840135915060c0840135611d7881611d9e565b634e487b7160e01b5f52603260045260245ffd5b62ffffff81168114610959575f80fd5b8060020b8114610959575f80fd5b8135611fd481611d30565b81546001600160a01b0319166001600160a01b0382161782555060018101602083013561200081611d30565b81546001600160a01b0319166001600160a01b03821617825550604083013561202881611fab565b8154606085013561203881611fbb565b8060b81b79ffffff00000000000000000000000000000000000000000000001676ffffff00000000000000000000000000000000000000008460a01b167fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff841617178455505050505f60808301356120af81611d30565b6002830180546001600160a01b0319166001600160a01b038316179055905080611bc9565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612111576121116120d4565b604052919050565b5f60a082840312801561212a575f80fd5b5060405160a0810167ffffffffffffffff8111828210171561214e5761214e6120d4565b604052823561215c81611d30565b8152602083013561216c81611d30565b6020820152604083013561217f81611fab565b6040820152606083013561219281611fbb565b606082015260808301356121a581611d30565b60808201529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a4657610a466121b1565b5f826121f657634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610a4657610a466121b1565b80820180821115610a4657610a466121b1565b5f60208284031215612231575f80fd5b815167ffffffffffffffff811115612247575f80fd5b8201601f81018413612257575f80fd5b805167ffffffffffffffff811115612271576122716120d4565b612284601f8201601f19166020016120e8565b818152856020838501011115612298575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f602082840312156122c5575f80fd5b8151611b8981611d9e565b5f7f80000000000000000000000000000000000000000000000000000000000000008203612300576123006121b1565b505f0390565b6001600160a01b038281168282160390811115610a4657610a466121b1565b6001600160a01b038181168382160190811115610a4657610a466121b1565b83546001600160a01b0390811682526001850154808216602084015260a081811c62ffffff16604085015260b89190911c600290810b606085015286015490911660808301525f906123b790830185805115158252602080820151908301526040908101516001600160a01b0316910152565b6101206101008301526123ce610120830184611e50565b95945050505050565b5f602082840312156123e7575f80fd5b5051919050565b634e487b7160e01b5f52603160045260245ffd5b5f82518060208501845e5f92019182525091905056fea2646970667358221220a782e12fb629b51ae2292d8cc1e7e397019b71271f76e5bf33063e65693c705264736f6c634300081a0033000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000398f4d8befa9b9e5c1b635073e0082f00677f0cc0000000000000000000000004e74d4db6c0726ccded4656d0bce448876bb4c7a000000000000000000000000548f93779fbc992010c07467cbaf329dd5f059b70000000000000000000000003656ca017dfaa948e658669b209eceb78c063098