0 txs
0 calls
constructor
No constructor.
functions
activeTickLiquidity
viewfunction activeTickLiquidity(address pool) view returns (uint256 sqrtPrice, uint256 liquidity, uint256 reserveA, uint256 reserveB)
getActiveBins
viewfunction getActiveBins(address pool, uint128 startBinIndex, uint128 endBinIndex) view returns (tuple[] bins)
getAddLiquidityParams
viewfunction getAddLiquidityParams(address pool, address poolPosition, uint256 lpTokenAmount) view returns (tuple[] addParams, uint256 binLpTokenAmount0)
getBinDepth
viewfunction getBinDepth(address pool, uint128 binId) view returns (uint256 depth)
getBinsAtTick
viewfunction getBinsAtTick(address pool, int32 tick) view returns (tuple[] bins)
getSqrtPrice
viewfunction getSqrtPrice(address pool) view returns (uint256 sqrtPrice)
swapCallback
purefunction swapCallback(uint256 amountIn, uint256 amountOut, bytes _data) pure
tickLiquidity
viewfunction tickLiquidity(address pool, int32 tick) view returns (uint256 sqrtPrice, uint256 liquidity, uint256 reserveA, uint256 reserveB)
calculateSwap
nonpayablefunction calculateSwap(address pool, uint128 amount, bool tokenAIn, bool exactOutput, uint256 sqrtPriceLimit) returns (uint256 returnAmount)
events
No events.
errors
PRBMath__MulDivFixedPointOverflow
error PRBMath__MulDivFixedPointOverflow(uint256 prod1)
PRBMath__MulDivOverflow
error PRBMath__MulDivOverflow(uint256 prod1, uint256 denominator)
PRBMathUD60x18__SqrtOverflow
error PRBMathUD60x18__SqrtOverflow(uint256 x)
creation bytecode
0x608060405234801561001057600080fd5b50612e32806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c806391c0914e11610076578063a3a5d06d1161005b578063a3a5d06d1461014a578063d12e2bb21461017d578063d388a5a61461019d57600080fd5b806391c0914e14610122578063923b8a2a1461013557600080fd5b8063136c7589146100a85780632764cd0b146100ce5780632d4c5a38146100e157806380a51b2214610101575b600080fd5b6100bb6100b63660046122b0565b6101b0565b6040519081526020015b60405180910390f35b6100bb6100dc3660046122f7565b610338565b6100f46100ef36600461235b565b6104c7565b6040516100c591906123a6565b61011461010f36600461243d565b610950565b6040516100c592919061247e565b6100bb610130366004612510565b61096b565b61014861014336600461252d565b610980565b005b61015d610158366004612510565b610a12565b6040805194855260208501939093529183015260608201526080016100c5565b61019061018b3660046125bc565b610aa6565b6040516100c591906125ea565b61015d6101ab3660046125bc565b610cf8565b6040517f44a185bb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff82166004820152600090819073ffffffffffffffffffffffffffffffffffffffff8516906344a185bb9060240160e060405180830381865afa158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190612728565b90505b60608101516fffffffffffffffffffffffffffffffff1615610331578161027e8161280b565b60608301516040517f44a185bb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff8216600482015290955090935073ffffffffffffffffffffffffffffffffffffffff861691506344a185bb9060240160e060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a9190612728565b9050610258565b5092915050565b60008573ffffffffffffffffffffffffffffffffffffffff1663c51c9029308787878789604051602001610370911515815260200190565b6040516020818303038152906040526040518763ffffffff1660e01b81526004016103a0969594939291906128a7565b60408051808303816000875af19250505080156103f8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526103f591810190612910565b60015b6104bb57610404612934565b806308c379a0036104af5750610418612950565b8061042357506104b1565b8051600003610493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642053776170000000000000000000000000000000000000000060448201526064015b60405180910390fd5b808060200190518101906104a791906129f8565b9150506104be565b505b3d6000803e3d6000fd5b50505b95945050505050565b606060008473ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b8152600401608060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190612a11565b6040015190506fffffffffffffffffffffffffffffffff83161561058e57826fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff1610610589578261058b565b805b90505b806fffffffffffffffffffffffffffffffff1667ffffffffffffffff8111156105b9576105b9612682565b60405190808252806020026020018201604052801561063757816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816105d75790505b5091506000845b826fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16101561090857600073ffffffffffffffffffffffffffffffffffffffff88166344a185bb610693846001612aa4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526fffffffffffffffffffffffffffffffff909116600482015260240160e060405180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190612728565b9050610729826001612aa4565b60c082015160a08301516040517f83f9c63200000000000000000000000000000000000000000000000000000000815260039290920b600483015260ff1660248201526fffffffffffffffffffffffffffffffff919091169073ffffffffffffffffffffffffffffffffffffffff8a16906383f9c63290604401602060405180830381865afa1580156107c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e49190612acd565b6fffffffffffffffffffffffffffffffff161480610817575060608101516fffffffffffffffffffffffffffffffff1615155b156108f5576040518060c001604052808360016108349190612aa4565b6fffffffffffffffffffffffffffffffff1681526020018260a0015160ff1681526020018260c0015160030b815260200182600001516fffffffffffffffffffffffffffffffff16815260200182602001516fffffffffffffffffffffffffffffffff16815260200182606001516fffffffffffffffffffffffffffffffff1681525085846fffffffffffffffffffffffffffffffff16815181106108db576108db612aea565b602002602001018190525082806108f190612b19565b9350505b508061090081612b19565b91505061063e565b50816fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff16146109475760006109408284612b48565b8451038452505b50509392505050565b6060600061095f858585610e40565b90969095509350505050565b600061097682610a12565b5091949350505050565b600061098e82840184612b71565b90508015610a01576040805160208101879052015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261048a91600401612b8e565b6040805160208101869052016109a3565b60008060008060008573ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b8152600401608060405180830381865afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190612a11565b519050610a968682610cf8565b9299919850965090945092505050565b60408051600480825260a082019092526060919081816020015b6040805160e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610ac057905050915060005b600460ff82161015610ce3576040517f83f9c632000000000000000000000000000000000000000000000000000000008152600385900b600482015260ff8216602482015260009073ffffffffffffffffffffffffffffffffffffffff8716906383f9c63290604401602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190612acd565b90506fffffffffffffffffffffffffffffffff811615610cd0576040517f44a185bb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff8216600482015260009073ffffffffffffffffffffffffffffffffffffffff8816906344a185bb9060240160e060405180830381865afa158015610c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c939190612728565b90508085610ca2866004612ba1565b60ff1681518110610cb557610cb5612aea565b60200260200101819052508380610ccb90612bba565b945050505b5080610cdb81612bf5565b915050610b2c565b5060ff81161561033157815103815292915050565b60008060008060008673ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f91906129f8565b90506000610d7d8888610aa6565b905060005b8151811015610e05576000828281518110610d9f57610d9f612aea565b6020026020010151905080600001516fffffffffffffffffffffffffffffffff1686610dcb9190612c14565b955080602001516fffffffffffffffffffffffffffffffff1685610def9190612c14565b9450508080610dfd9061280b565b915050610d82565b50610e2e8484610e15858b61172b565b610e2986610e248d6001612c27565b61172b565b611a25565b90999098509396509194509192505050565b60606000808473ffffffffffffffffffffffffffffffffffffffff1663b15a3bc66040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e90573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ed69190810190612c69565b905060008673ffffffffffffffffffffffffffffffffffffffff166344a185bb83600081518110610f0957610f09612aea565b60200260200101516040518263ffffffff1660e01b8152600401610f4591906fffffffffffffffffffffffffffffffff91909116815260200190565b60e060405180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f869190612728565b905060008773ffffffffffffffffffffffffffffffffffffffff16633ab72c106040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff991906129f8565b905060008873ffffffffffffffffffffffffffffffffffffffff166321272d4c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c91906129f8565b90508773ffffffffffffffffffffffffffffffffffffffff1663ef0def6a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd9190612d1c565b1580156110ff575060608301516fffffffffffffffffffffffffffffffff1615155b15611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f42696e206973206d65726765643b206d69677261746520666972737400000000604482015260640161048a565b835167ffffffffffffffff81111561118057611180612682565b6040519080825280602002602001820160405280156111f757816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161119e5790505b509550611394878a73ffffffffffffffffffffffffffffffffffffffff16636da3bf8b8b73ffffffffffffffffffffffffffffffffffffffff166317d70f7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611265573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128991906129f8565b8860008151811061129c5761129c612aea565b60200260200101516040518363ffffffff1660e01b81526004016112dc9291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b602060405180830381865afa1580156112f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131d91906129f8565b8a73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138c91906129f8565b60015b611ab0565b61139f906001612c14565b94508460005b855181101561171d57801561151b578a73ffffffffffffffffffffffffffffffffffffffff166344a185bb8783815181106113e2576113e2612aea565b60200260200101516040518263ffffffff1660e01b815260040161141e91906fffffffffffffffffffffffffffffffff91909116815260200190565b60e060405180830381865afa15801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f9190612728565b6040517f771dc86a000000000000000000000000000000000000000000000000000000008152600481018390529095506115189073ffffffffffffffffffffffffffffffffffffffff8c169063771dc86a90602401602060405180830381865afa1580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612acd565b6fffffffffffffffffffffffffffffffff1688670de0b6b3a76400006001611ab0565b91505b8451602086015160009182916fffffffffffffffffffffffffffffffff918216911681830361157157608089015161156a90829088906fffffffffffffffffffffffffffffffff166001611ab0565b925061164e565b806000036115a657608089015161159f90839088906fffffffffffffffffffffffffffffffff166001611ab0565b935061164e565b6115c386670de0bfcbf5d6a000670de0b6b3a76400006001611ab0565b6115ce906001612c14565b95506115ff82878b608001516fffffffffffffffffffffffffffffffff166001600281111561138f5761138f612d39565b935061163c6116118286856001611ab0565b60808b01516116379084908a906fffffffffffffffffffffffffffffffff166001611ab0565b611b0f565b925061164b8284836001611ab0565b93505b6040518060a001604052808a60a0015160ff1681526020018a60c0015160030b81526020016000151581526020018360001461169d57611698611693878c6001611b2a565b611bec565b6116a0565b60005b6fffffffffffffffffffffffffffffffff16815260200182156116d1576116cc611693868b6001611b2a565b6116d4565b60005b6fffffffffffffffffffffffffffffffff168152508c86815181106116fb576116fb612aea565b60200260200101819052505050505080806117159061280b565b9150506113a5565b505050505050935093915050565b60008060008360030b12611742578260030b61174a565b8260030b6000035b84029050600060018216810361177157700100000000000000000000000000000000611783565b6ffffcb933bd6fad9d3af5f0b9f25db4d65b70ffffffffffffffffffffffffffffffffff16905060028216156117b7576ffff97272373d41fd789c8cb37ffcaa1c0260801c5b60048216156117d6576ffff2e50f5f656ac9229c67059486f3890260801c5b60088216156117f5576fffe5caca7e10e81259b3cddc7a0649410260801c5b6010821615611814576fffcb9843d60f67b19e8887e0bd251eb70260801c5b6020821615611833576fff973b41fa98cd2e57b660be99eb2c4a0260801c5b6040821615611852576fff2ea16466c9838804e327cb417cafcb0260801c5b6080821615611871576ffe5dee046a99d51e2cc356c2f617dbe00260801c5b610100821615611891576ffcbe86c7900aecf64236ab31f1f9dcb50260801c5b6102008216156118b1576ff987a7253ac4d9194200696907cf2e370260801c5b6104008216156118d1576ff3392b0822b88206f8abe8a3b44dd9be0260801c5b6108008216156118f1576fe7159475a2c578ef4f1d17b2b235d4800260801c5b611000821615611911576fd097f3bdfd254ee83bdd3f248e7e785e0260801c5b612000821615611931576fa9f746462d8f7dd10e744d913d0333330260801c5b614000821615611951576f70d869a156ddd32a39e257bc3f50aa9b0260801c5b618000821615611971576f31be135f97da6e09a19dc367e3b6da400260801c5b62010000821615611992576f09aa508b5b7e5a9780b0cc4e25d61a560260801c5b620200008216156119b2576e5d6af8dedbcb3a6ccb7ce618d142250260801c5b620400008216156119d1576d2216e584f630389b2052b8db590e0260801c5b60008460030b1315611a1057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81611a0c57611a0c612d68565b0490505b670de0b6b3a76400000260801c949350505050565b600080611a3486868686611c92565b905085600003611a4657839150611aa7565b84600003611a5657829150611aa7565b611a8f611a8a611a668386611d92565b611a709088612c14565b611a7a8488611da7565b611a84908a612c14565b90611d92565b611db3565b9150611aa4611a9e8386611e1e565b84611e2d565b91505b94509492505050565b600080611abe868686611e3c565b90506001836002811115611ad457611ad4612d39565b148015611af1575060008480611aec57611aec612d68565b868809115b15611b0457611b01600182612c14565b90505b90505b949350505050565b600081831015611b1f5781611b21565b825b90505b92915050565b60006001831480611b39575083155b15611b45575082611be5565b7f8000000000000000000000000000000000000000000000000000000000000000831615611ba057611b997f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841685612d97565b9050611be5565b818015611bbd57508280611bb657611bb6612d68565b6001850915155b611bd057611bcb8385612dae565b611b99565b611bda8385612dae565b611b99906001612c14565b9392505050565b60006fffffffffffffffffffffffffffffffff821115611c8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f3238206269747300000000000000000000000000000000000000000000000000606482015260840161048a565b5090565b600080603c86901c158015611ca95750603c85901c155b15611cba5750602894851b9493841b935b851580611cc5575084155b15611d0e576000611cd68686611da7565b611ce08886611d92565b611cea9190612c14565b905081611d038286611cfc8982612de9565b6000611f09565b901c92505050611b07565b60006001611d1c8787611da7565b611d268987611d92565b611d309190612c14565b901c90506000611d408686612de9565b905082611d86611d73611d5f611d568b8d611da7565b858a6000611f09565b611d698680611da7565b611a8a9190612c14565b611d7d9085612c14565b87846000611f09565b901c9350505050611b07565b6000611b2183670de0b6b3a764000084611f44565b6000611b218383611fd5565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f21821115611e0b576040517f6155b67d0000000000000000000000000000000000000000000000000000000081526004810183905260240161048a565b611b24670de0b6b3a764000083026120ec565b6000818311611b1f5781611b21565b6000818310611b1f5781611b21565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611e9457838281611e8a57611e8a612d68565b0492505050611be5565b808411611ea057600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000611f16858585611f44565b9050818015611f3457508280611f2e57611f2e612d68565b84860915155b15611b0757611b04816001612c14565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611f9257838281611e8a57611e8a612d68565b838110611ea0576040517f773cc18c000000000000000000000000000000000000000000000000000000008152600481018290526024810185905260440161048a565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848609848602925082811083820303915050670de0b6b3a76400008110612050576040517fd31b34020000000000000000000000000000000000000000000000000000000081526004810182905260240161048a565b600080670de0b6b3a764000086880991506706f05b59d3b1ffff821190508260000361208e5780670de0b6b3a7640000850401945050505050611b24565b6204000082850304939091119091037d40000000000000000000000000000000000000000000000000000000000002919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690201905092915050565b6000816000036120fe57506000919050565b5060018170010000000000000000000000000000000081106121255760409190911b9060801c5b6801000000000000000081106121405760209190911b9060401c5b64010000000081106121575760109190911b9060201c5b62010000811061216c5760089190911b9060101c5b61010081106121805760049190911b9060081c5b601081106121935760029190911b9060041c5b600881106121a357600182901b91505b60018284816121b4576121b4612d68565b048301901c915060018284816121cc576121cc612d68565b048301901c915060018284816121e4576121e4612d68565b048301901c915060018284816121fc576121fc612d68565b048301901c9150600182848161221457612214612d68565b048301901c9150600182848161222c5761222c612d68565b048301901c9150600182848161224457612244612d68565b048301901c9150600082848161225c5761225c612d68565b04905080831015611be55782611b07565b73ffffffffffffffffffffffffffffffffffffffff8116811461228f57600080fd5b50565b6fffffffffffffffffffffffffffffffff8116811461228f57600080fd5b600080604083850312156122c357600080fd5b82356122ce8161226d565b915060208301356122de81612292565b809150509250929050565b801515811461228f57600080fd5b600080600080600060a0868803121561230f57600080fd5b853561231a8161226d565b9450602086013561232a81612292565b9350604086013561233a816122e9565b9250606086013561234a816122e9565b949793965091946080013592915050565b60008060006060848603121561237057600080fd5b833561237b8161226d565b9250602084013561238b81612292565b9150604084013561239b81612292565b809150509250925092565b602080825282518282018190526000919060409081850190868401855b8281101561243057815180516fffffffffffffffffffffffffffffffff90811686528782015160ff16888701528682015160030b8787015260608083015182169087015260808083015182169087015260a091820151169085015260c090930192908501906001016123c3565b5091979650505050505050565b60008060006060848603121561245257600080fd5b833561245d8161226d565b9250602084013561246d8161226d565b929592945050506040919091013590565b6040808252835182820181905260009190606090818501906020808901865b838110156124fc578151805160ff1686528381015160030b8487015287810151151588870152868101516fffffffffffffffffffffffffffffffff90811688880152608091820151169086015260a0909401939082019060010161249d565b505095909501959095525092949350505050565b60006020828403121561252257600080fd5b8135611be58161226d565b6000806000806060858703121561254357600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561256957600080fd5b818701915087601f83011261257d57600080fd5b81358181111561258c57600080fd5b88602082850101111561259e57600080fd5b95989497505060200194505050565b8060030b811461228f57600080fd5b600080604083850312156125cf57600080fd5b82356125da8161226d565b915060208301356122de816125ad565b602080825282518282018190526000919060409081850190868401855b8281101561243057815180516fffffffffffffffffffffffffffffffff908116865287820151811688870152868201518116878701526060808301518216908701526080808301519091169086015260a08082015160ff169086015260c09081015160030b9085015260e09093019290850190600101612607565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156126f5576126f5612682565b6040525050565b805161270781612292565b919050565b805160ff8116811461270757600080fd5b8051612707816125ad565b600060e0828403121561273a57600080fd5b60405160e0810181811067ffffffffffffffff8211171561275d5761275d612682565b604052825161276b81612292565b8152602083015161277b81612292565b602082015261278c604084016126fc565b604082015261279d606084016126fc565b60608201526127ae608084016126fc565b60808201526127bf60a0840161270c565b60a08201526127d060c0840161271d565b60c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361283c5761283c6127dc565b5060010190565b6000815180845260005b818110156128695760208185018101518683018201520161284d565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff871681526fffffffffffffffffffffffffffffffff861660208201528415156040820152831515606082015282608082015260c060a0820152600061290460c0830184612843565b98975050505050505050565b6000806040838503121561292357600080fd5b505080516020909101519092909150565b600060033d111561294d5760046000803e5060005160e01c5b90565b600060443d101561295e5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff81602484011181841117156129ac57505050505090565b82850191508151818111156129c45750505050505090565b843d87010160208285010111156129de5750505050505090565b6129ed602082860101876126b1565b509095945050505050565b600060208284031215612a0a57600080fd5b5051919050565b600060808284031215612a2357600080fd5b6040516080810167ffffffffffffffff8282108183111715612a4757612a47612682565b8160405284519150612a58826125ad565b818352612a676020860161270c565b602084015260408501519150612a7c82612292565b816040840152606085015191508082168214612a9757600080fd5b5060608201529392505050565b6fffffffffffffffffffffffffffffffff818116838216019080821115610331576103316127dc565b600060208284031215612adf57600080fd5b8151611be581612292565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006fffffffffffffffffffffffffffffffff808316818103612b3e57612b3e6127dc565b6001019392505050565b6fffffffffffffffffffffffffffffffff828116828216039080821115610331576103316127dc565b600060208284031215612b8357600080fd5b8135611be5816122e9565b602081526000611b216020830184612843565b60ff8281168282160390811115611b2457611b246127dc565b600060ff821680612bcd57612bcd6127dc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b600060ff821660ff8103612c0b57612c0b6127dc565b60010192915050565b80820180821115611b2457611b246127dc565b600381810b9083900b01637fffffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000082121715611b2457611b246127dc565b60006020808385031215612c7c57600080fd5b825167ffffffffffffffff80821115612c9457600080fd5b818501915085601f830112612ca857600080fd5b815181811115612cba57612cba612682565b8060051b9150604051612ccf858401826126b1565b81815291830184019184810188841115612ce857600080fd5b938501935b83851015612d105784519250612d0283612292565b828152938501938501612ced565b50979650505050505050565b600060208284031215612d2e57600080fd5b8151611be5816122e9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8082028115828204841417611b2457611b246127dc565b600082612de4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b81810381811115611b2457611b246127dc56fea26469706673582212200527249ce89a4d08f7d9006c6a5355fd62163e6ba8923561a5d7addd03b0e69d64736f6c63430008110033