3 txs
0 calls
constructor
constructor()
functions
_poolInformation
viewfunction _poolInformation(uint256) view returns (uint128 raisingAmountPool, uint128 offeringAmountPool, uint128 capPerUserInLP, uint128 totalAmountPool)
addresses
viewfunction addresses(uint256) view returns (address)
endTimestamp
viewfunction endTimestamp() view returns (uint256)
MAX_BUFFER_SECONDS
viewfunction MAX_BUFFER_SECONDS() view returns (uint256)
MAX_POOL_ID
viewfunction MAX_POOL_ID() view returns (uint8)
MIN_DEPOSIT_AMOUNTS
viewfunction MIN_DEPOSIT_AMOUNTS(uint256) view returns (uint256)
owner
viewfunction owner() view returns (address)
signerAddress
viewfunction signerAddress() view returns (address)
startTimestamp
viewfunction startTimestamp() view returns (uint256)
totalTokensOffered
viewfunction totalTokensOffered() view returns (uint256)
viewUserAllocationPools
viewfunction viewUserAllocationPools(address _user, uint8[] _pids) view returns (uint256[])
viewUserInfo
viewfunction viewUserInfo(address _user, uint8[] _pids) view returns (uint256[], bool[])
viewUserOfferingAndRefundingAmountsForPools
viewfunction viewUserOfferingAndRefundingAmountsForPools(address _user, uint8[] _pids) view returns (uint256[2][])
depositPool
payablefunction depositPool(uint256 _amount, uint8 _pid, uint256 _expiredAt, bytes _signature) payable
finalWithdraw
nonpayablefunction finalWithdraw(uint256 _lpAmount0, uint256 _lpAmount1, uint256 _offerAmount)
harvestPool
nonpayablefunction harvestPool(uint8 _pid)
initialize
nonpayablefunction initialize(address[] _addresses, uint256[] _startAndEndTimestamps, uint256 _maxBufferSeconds, uint8 _maxPoolId)
recoverWrongTokens
nonpayablefunction recoverWrongTokens(address _tokenAddress, uint256 _tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setPool
nonpayablefunction setPool(uint256 _offeringAmountPool, uint256 _raisingAmountPool, uint256 _limitPerUserInLP, uint8 _pid)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMinDepositAmount
nonpayablefunction updateMinDepositAmount(uint256 _newAmount, uint8 _pid)
updateSignerAddress
nonpayablefunction updateSignerAddress(address _signerAddr)
updateStartAndEndTimestamps
nonpayablefunction updateStartAndEndTimestamps(uint256[] _startAndEndTimestamps)
events
AdminTokenRecovery
event AdminTokenRecovery(address tokenAddress, uint256 amountTokens)
AdminWithdraw
event AdminWithdraw(uint256 amountLP0, uint256 amountLP1, uint256 amountOfferingToken)
Deposit
event Deposit(address indexed user, uint256 amount, uint8 indexed pid)
Harvest
event Harvest(address indexed user, uint256 offeringAmount, uint256 excessAmount, uint8 indexed pid)
NewStartAndEndTimestamps
event NewStartAndEndTimestamps(uint256 startTimestamp, uint256 endTimestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PoolParametersSet
event PoolParametersSet(uint256 offeringAmountPool, uint256 raisingAmountPool, uint8 indexed pid)
UpdatedMinDepositAmount
event UpdatedMinDepositAmount(uint256 minAmount, uint8 indexed pid)
UpdatedSignerAddress
event UpdatedSignerAddress(address indexed signerAddr)
errors
AddressesLengthNotCorrect
error AddressesLengthNotCorrect()
AlreadyHarvested
error AlreadyHarvested()
AlreadyInitialized
error AlreadyInitialized()
AmountMustBeZero
error AmountMustBeZero()
AmountMustExceedMinimum
error AmountMustExceedMinimum()
AmountMustExceedZero
error AmountMustExceedZero()
CanNotBeLPToken
error CanNotBeLPToken()
CanNotBeOfferingToken
error CanNotBeOfferingToken()
DidNotParticipate
error DidNotParticipate()
EndTimeTooFar
error EndTimeTooFar()
IDOHasStarted
error IDOHasStarted()
MaxPoolIdNotValid
error MaxPoolIdNotValid()
NewAmountAboveUserCap
error NewAmountAboveUserCap()
NotEnoughLPTokens
error NotEnoughLPTokens()
NotEnoughOfferingTokens
error NotEnoughOfferingTokens()
PoolIdNotValid
error PoolIdNotValid()
PoolNotSet
error PoolNotSet()
Reentrancy
error Reentrancy()
SignatureVerifyFailed
error SignatureVerifyFailed()
SignerAddressZero
error SignerAddressZero()
StartAndEndTimestampsLengthNotCorrect
error StartAndEndTimestampsLengthNotCorrect()
StartTimeMustInferiorToEndTime
error StartTimeMustInferiorToEndTime()
TokensNotDepositedProperly
error TokensNotDepositedProperly()
TooEarly
error TooEarly()
TooLate
error TooLate()
creation bytecode
0x6080604052348015600e575f80fd5b506016336026565b620f42406009819055600a556075565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6126fe806100825f395ff3fe608060405260043610610147575f3560e01c8063a85adeab116100b3578063dfd2bb551161006d578063dfd2bb55146103c8578063e6fd48bc146103e7578063edf26d9b146103fc578063f2fde38b1461041b578063f93bf8331461043a578063f9cd5c1214610459575f80fd5b8063a85adeab146102d8578063b1ced5e7146102ed578063c8aa65c114610318578063ca463ca41461032b578063caa7f23214610357578063ce3f5e4b14610376575f80fd5b80635b7633d0116101045780635b7633d01461021e578063715018a614610255578063760b31801461026957806376920d081461027e5780638da5cb5b1461029d5780638fa2a9f0146102b9575f80fd5b80630f0b7a2b1461014b5780632374876c1461017d5780632937049e1461019e5780633f138d4b146101bd5780634af3c9b7146101dc57806354070e3914610209575b5f80fd5b348015610156575f80fd5b5061016a6101653660046120c8565b610485565b6040519081526020015b60405180910390f35b348015610188575f80fd5b5061019c6101973660046120f4565b61049b565b005b3480156101a9575f80fd5b5061019c6101b8366004612114565b610681565b3480156101c8575f80fd5b5061019c6101d7366004612153565b61076e565b3480156101e7575f80fd5b506101fb6101f63660046121bc565b61087f565b604051610174929190612245565b348015610214575f80fd5b5061016a60075481565b348015610229575f80fd5b5060115461023d906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b348015610260575f80fd5b5061019c610a26565b348015610274575f80fd5b5061016a600b5481565b348015610289575f80fd5b5061019c61029836600461229f565b610a5a565b3480156102a8575f80fd5b505f546001600160a01b031661023d565b3480156102c4575f80fd5b5061019c6102d33660046122db565b610c20565b3480156102e3575f80fd5b5061016a60065481565b3480156102f8575f80fd5b506008546103069060ff1681565b60405160ff9091168152602001610174565b61019c610326366004612308565b610cb9565b348015610336575f80fd5b5061034a6103453660046121bc565b61121e565b60405161017491906123de565b348015610362575f80fd5b5061019c610371366004612447565b611365565b348015610381575f80fd5b506103956103903660046120c8565b6114c9565b604080516001600160801b0395861681529385166020850152918416918301919091529091166060820152608001610174565b3480156103d3575f80fd5b5061019c6103e2366004612486565b611506565b3480156103f2575f80fd5b5061016a60055481565b348015610407575f80fd5b5061023d6104163660046120c8565b6116ae565b348015610426575f80fd5b5061019c6104353660046122db565b6116cd565b348015610445575f80fd5b5061019c61045436600461250d565b611767565b348015610464575f80fd5b506104786104733660046121bc565b6117ee565b6040516101749190612537565b60098160028110610494575f80fd5b0154905081565b688000000000ab143c065c156104b85763ab143c065f526004601cfd5b30688000000000ab143c065d6104cd816118a8565b60065442116104ef5760405163085de62560e01b815260040160405180910390fd5b335f90815260106020908152604080832060ff851684529091528120546001600160801b03169003610534576040516337191a8560e21b815260040160405180910390fd5b335f90815260106020908152604080832060ff8086168552925290912054600160801b90041615610578576040516302cce53760e21b815260040160405180910390fd5b335f81815260106020908152604080832060ff861684529091528120805460ff60801b1916600160801b1790559081906105b290846118d2565b909250905081156105d9576105d93383600160025b01546001600160a01b03169190611a58565b8015610630575f600160ff8516600481106105f6576105f6612549565b01546001600160a01b031603610615576106103382611ae7565b610630565b610630338260018660ff16600481106105c7576105c7612549565b604080518381526020810183905260ff85169133917f51524c2e5edfedf8b01b29719c661e4fbe27e71734e7cd773dabb7cb712fb3b3910160405180910390a350505f688000000000ab143c065d50565b5f546001600160a01b031633146106b35760405162461bcd60e51b81526004016106aa9061255d565b60405180910390fd5b82156106e3576001546001600160a01b03166106d8576106d33384611ae7565b6106e3565b6106e333845f611b3a565b8115610714576002546001600160a01b0316610708576107033383611ae7565b610714565b61071433836001611b3a565b8015610728576107283382600160026105c7565b60408051848152602081018490529081018290527f5cba002c3841a6704789c1f41f4dab171dc5a8c972c928498c961665cdecf41b9060600160405180910390a1505050565b5f546001600160a01b031633146107975760405162461bcd60e51b81526004016106aa9061255d565b6001546001600160a01b03908116908316036107c6576040516310da472360e01b815260040160405180910390fd5b6002546001600160a01b03908116908316036107f5576040516310da472360e01b815260040160405180910390fd5b6003546001600160a01b03908116908316036108245760405163a8dfadb960e01b815260040160405180910390fd5b6108386001600160a01b0383163383611a58565b604080516001600160a01b0384168152602081018390527f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab7812991015b60405180910390a15050565b6060805f8367ffffffffffffffff81111561089c5761089c6122f4565b6040519080825280602002602001820160405280156108c5578160200160208202803683370190505b5090505f8467ffffffffffffffff8111156108e2576108e26122f4565b60405190808252806020026020018201604052801561090b578160200160208202803683370190505b5090505f5b60ff8116861115610a19575f87878360ff1681811061093157610931612549565b905060200201602081019061094691906120f4565b60085490915060ff90811690821611610a06576001600160a01b0389165f90815260106020908152604080832060ff808616855292529091205485516001600160801b039091169186919085169081106109a2576109a2612549565b6020908102919091018101919091526001600160a01b038a165f90815260108252604080822060ff808616845293529020548451600160801b90910482169185919085169081106109f5576109f5612549565b911515602092830291909101909101525b5080610a11816125a6565b915050610910565b5090969095509350505050565b5f546001600160a01b03163314610a4f5760405162461bcd60e51b81526004016106aa9061255d565b610a585f611b5e565b565b5f546001600160a01b03163314610a835760405162461bcd60e51b81526004016106aa9061255d565b610a8c816118a8565b6005544210610aae57604051630eac48e360e01b815260040160405180910390fd5b610ab784611bad565b600c8260ff1660028110610acd57610acd612549565b6002020180546001600160801b03928316600160801b029216919091179055610af583611bad565b600c8260ff1660028110610b0b57610b0b612549565b6002020180546001600160801b0319166001600160801b0392909216919091179055610b3682611bad565b600c8260ff1660028110610b4c57610b4c612549565b600202016001015f6101000a8154816001600160801b0302191690836001600160801b031602179055505f805f90505b60085460ff90811690821611610bd557600c8160ff1660028110610ba257610ba2612549565b6002020154610bc190600160801b90046001600160801b0316836125c4565b915080610bcd816125a6565b915050610b7c565b50600b819055604080518681526020810186905260ff8416917fddaf243a142670be60c19ff7116b5d8b124717b29bb4cc03cead42161614105b910160405180910390a25050505050565b5f546001600160a01b03163314610c495760405162461bcd60e51b81526004016106aa9061255d565b6001600160a01b038116610c7057604051632b561add60e01b815260040160405180910390fd5b601180546001600160a01b0319166001600160a01b0383169081179091556040517fa7f36ce0102fe26e2c05a5883f82aac2cee294dd4aec8da709ec986aa16e2b7a905f90a250565b688000000000ab143c065c15610cd65763ab143c065f526004601cfd5b30688000000000ab143c065d610ceb836118a8565b604080513060208201526080918101829052600d60a08201526c5665726966794164647265737360981b60c08201523360608201529081018390525f9060e0016040516020818303038152906040528051906020012090505f610da3610d9d836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018290525f90605c01604051602081830303815290604052805190602001209050919050565b84611bc1565b905083421180610dc157506011546001600160a01b03828116911614155b15610ddf5760405163112d49d360e01b815260040160405180910390fd5b600c8560ff1660028110610df557610df5612549565b6002020154600160801b90046001600160801b03161580610e375750600c8560ff1660028110610e2757610e27612549565b60020201546001600160801b0316155b15610e5557604051633c67586360e01b815260040160405180910390fd5b600554421015610e785760405163085de62560e01b815260040160405180910390fd5b600654421115610e9b5760405163ecdd1c2960e01b815260040160405180910390fd5b600b546003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610ee4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0891906125d7565b1015610f275760405163726da7d560e11b815260040160405180910390fd5b5f80600160ff881660048110610f3f57610f3f612549565b01546001600160a01b031603610f7f57345f03610f6f57604051639e6c689560e01b815260040160405180910390fd5b610f7834611bad565b9050610ff9565b3415610f9e5760405163ac1cb9c960e01b815260040160405180910390fd5b865f03610fbe57604051639e6c689560e01b815260040160405180910390fd5b610fed33308960018a60ff1660048110610fda57610fda612549565b01546001600160a01b0316929190611be5565b610ff687611bad565b90505b335f90815260106020908152604080832060ff8a16845290915290205461102a9082906001600160801b03166125ee565b335f90815260106020908152604080832060ff8b16808552925290912080546001600160801b0319166001600160801b0393909316929092179091556009906002811061107957611079612549565b0154335f90815260106020908152604080832060ff8b1684529091529020546001600160801b031610156110c057604051632fb20d4560e21b815260040160405180910390fd5b5f600c8760ff16600281106110d7576110d7612549565b60020201600101546001600160801b0316111561115557600c8660ff166002811061110457611104612549565b6002020160010154335f90815260106020908152604080832060ff8b1684529091529020546001600160801b03918216911611156111555760405163017976fb60e61b815260040160405180910390fd5b80600c8760ff166002811061116c5761116c612549565b6002020160010160109054906101000a90046001600160801b031661119191906125ee565b600c8760ff16600281106111a7576111a7612549565b6001600291909102919091010180546001600160801b03928316600160801b02908316179055604051908216815260ff87169033907ff763e680fce25a97ffd55d8b705370c98b47b2285f7b3b2900c43606fd4180459060200160405180910390a35050505f688000000000ab143c065d50505050565b60605f8267ffffffffffffffff81111561123a5761123a6122f4565b60405190808252806020026020018201604052801561127357816020015b6112606120aa565b8152602001906001900390816112585790505b5090505f5b60ff811684111561135c575f805f600c88888660ff1681811061129d5761129d612549565b90506020020160208101906112b291906120f4565b60ff16600281106112c5576112c5612549565b60020201546001600160801b031611156113125761130c8888888660ff168181106112f2576112f2612549565b905060200201602081019061130791906120f4565b6118d2565b90925090505b604051806040016040528083815260200182815250848460ff168151811061133c5761133c612549565b602002602001018190525050508080611354906125a6565b915050611278565b50949350505050565b5f546001600160a01b0316331461138e5760405162461bcd60e51b81526004016106aa9061255d565b600281146113af57604051631397ee3560e31b815260040160405180910390fd5b6007546113bc90426125c4565b600654106113dd5760405163eb47c4f360e01b815260040160405180910390fd5b60065460055410611401576040516311af708560e21b815260040160405180910390fd5b600554421061142357604051630eac48e360e01b815260040160405180910390fd5b81815f81811061143557611435612549565b6020029190910135600555508181600181811061145457611454612549565b6020029190910135600655507f57df350cfad05a64accd73700fee8a7febd6d8430e035e45f0599ca62494aa8b82825f8161149157611491612549565b90506020020135838360018181106114ab576114ab612549565b90506020020135604051610873929190918252602082015260400190565b600c81600281106114d8575f80fd5b6002020180546001909101546001600160801b038083169350600160801b9283900481169282821692041684565b5f54600160a01b900460ff161561152f5760405162dc149f60e41b815260040160405180910390fd5b6004851461155057604051633b9b621f60e01b815260040160405180910390fd5b6002831461157157604051631397ee3560e31b815260040160405180910390fd5b5f805460ff60a01b1916600160a01b1781555b60ff81168611156116005786868260ff168181106115a4576115a4612549565b90506020020160208101906115b991906122db565b60018260ff16600481106115cf576115cf612549565b0180546001600160a01b0319166001600160a01b0392909216919091179055806115f8816125a6565b915050611584565b5083835f81811061161357611613612549565b6020029190910135600555508383600181811061163257611632612549565b6020029190910135600655506007829055600160ff821611611662576008805460ff191660ff831617905561167b565b604051633f0e260960e11b815260040160405180910390fd5b6116a68686600381811061169157611691612549565b905060200201602081019061043591906122db565b505050505050565b600181600481106116bd575f80fd5b01546001600160a01b0316905081565b5f546001600160a01b031633146116f65760405162461bcd60e51b81526004016106aa9061255d565b6001600160a01b03811661175b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106aa565b61176481611b5e565b50565b5f546001600160a01b031633146117905760405162461bcd60e51b81526004016106aa9061255d565b611799816118a8565b8160098260ff16600281106117b0576117b0612549565b015560405182815260ff8216907fefb6532c118ca8bcccd1ad6718d9e3d5f439d4176953ba393f110d80a192182b9060200160405180910390a25050565b60605f8267ffffffffffffffff81111561180a5761180a6122f4565b604051908082528060200260200182016040528015611833578160200160208202803683370190505b5090505f5b60ff811684111561135c576118768686868460ff1681811061185c5761185c612549565b905060200201602081019061187191906120f4565b611c89565b828260ff168151811061188b5761188b612549565b6020908102919091010152806118a0816125a6565b915050611838565b60085460ff908116908216111561176457604051630a26ca2560e31b815260040160405180910390fd5b6001600160a01b0382165f90815260106020908152604080832060ff8516808552925282205482916001600160801b03909116908290600c906002811061191b5761191b612549565b600290810291909101546001600160801b031691508190600c9060ff881690811061194857611948612549565b6002020160010160109054906101000a90046001600160801b03166001600160801b031611156119f7575f61197d8787611c89565b905064e8d4a5100081600c8860ff166002811061199c5761199c612549565b60020201546119bb9190600160801b90046001600160801b031661260d565b6119c59190612638565b94505f64e8d4a510006119d8838561260d565b6119e29190612638565b90506119ee818561264b565b94505050611a4f565b80600c8660ff1660028110611a0e57611a0e612549565b6002020154611a2d90600160801b90046001600160801b03168461260d565b611a379190612638565b935083158015611a4657505f82115b15611a4f578192505b50509250929050565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af191505080601f3d1160015f511416151615611aa25750823b153d17155b80611ae15760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016106aa565b50505050565b5f805f805f85875af1905080611b355760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b60448201526064016106aa565b505050565b611b43816118a8565b611b35838360018460ff16600481106105c7576105c7612549565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f600160801b8210611bbd575f80fd5b5090565b5f805f611bce8585611d6d565b91509150611bdb81611dd8565b5090505b92915050565b5f6040516323b872dd60e01b81526001600160a01b03851660048201526001600160a01b038416602482015282604482015260205f6064835f8a5af191505080601f3d1160015f511416151615611c3e5750833b153d17155b80611c825760405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b60448201526064016106aa565b5050505050565b6008545f9060ff9081169083161115611ca357505f611bdf565b5f600c8360ff1660028110611cba57611cba612549565b6002020160010160109054906101000a90046001600160801b03166001600160801b03161115611d6657600c8260ff1660028110611cfa57611cfa612549565b60020201600101546001600160a01b0384165f90815260106020908152604080832060ff87168452909152902054600160801b9091046001600160801b0390811691611d4c911664e8d4a5100061265e565b611d569190612687565b6001600160801b03169050611bdf565b505f611bdf565b5f808251604103611da1576020830151604084015160608501515f1a611d9587828585611f8d565b94509450505050611dd1565b8251604003611dca5760208301516040840151611dbf868383612072565b935093505050611dd1565b505f905060025b9250929050565b5f816004811115611deb57611deb6126b4565b03611df35750565b6001816004811115611e0757611e076126b4565b03611e545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106aa565b6002816004811115611e6857611e686126b4565b03611eb55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106aa565b6003816004811115611ec957611ec96126b4565b03611f215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106aa565b6004816004811115611f3557611f356126b4565b036117645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106aa565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611fc257505f90506003612069565b8460ff16601b14158015611fda57508460ff16601c14155b15611fea57505f90506004612069565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561203b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116612063575f60019250925050612069565b91505f90505b94509492505050565b5f806001600160ff1b0383168161208e60ff86901c601b6125c4565b905061209c87828885611f8d565b935093505050935093915050565b60405180604001604052806002906020820280368337509192915050565b5f602082840312156120d8575f80fd5b5035919050565b803560ff811681146120ef575f80fd5b919050565b5f60208284031215612104575f80fd5b61210d826120df565b9392505050565b5f805f60608486031215612126575f80fd5b505081359360208301359350604090920135919050565b80356001600160a01b03811681146120ef575f80fd5b5f8060408385031215612164575f80fd5b61216d8361213d565b946020939093013593505050565b5f8083601f84011261218b575f80fd5b50813567ffffffffffffffff8111156121a2575f80fd5b6020830191508360208260051b8501011115611dd1575f80fd5b5f805f604084860312156121ce575f80fd5b6121d78461213d565b9250602084013567ffffffffffffffff8111156121f2575f80fd5b6121fe8682870161217b565b9497909650939450505050565b5f8151808452602084019350602083015f5b8281101561223b57815186526020958601959091019060010161221d565b5093949350505050565b604081525f612257604083018561220b565b82810360208401528084518083526020830191506020860192505f5b818110156122935783511515835260209384019390920191600101612273565b50909695505050505050565b5f805f80608085870312156122b2575f80fd5b8435935060208501359250604085013591506122d0606086016120df565b905092959194509250565b5f602082840312156122eb575f80fd5b61210d8261213d565b634e487b7160e01b5f52604160045260245ffd5b5f805f806080858703121561231b575f80fd5b8435935061232b602086016120df565b925060408501359150606085013567ffffffffffffffff81111561234d575f80fd5b8501601f8101871361235d575f80fd5b803567ffffffffffffffff811115612377576123776122f4565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156123a6576123a66122f4565b6040528181528282016020018910156123bd575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b602080825282518282018190525f918401906040840190835b8181101561243c578351835f5b6002811015612423578251825260209283019290910190600101612404565b50505060209390930192604092909201916001016123f7565b509095945050505050565b5f8060208385031215612458575f80fd5b823567ffffffffffffffff81111561246e575f80fd5b61247a8582860161217b565b90969095509350505050565b5f805f805f806080878903121561249b575f80fd5b863567ffffffffffffffff8111156124b1575f80fd5b6124bd89828a0161217b565b909750955050602087013567ffffffffffffffff8111156124dc575f80fd5b6124e889828a0161217b565b90955093505060408701359150612501606088016120df565b90509295509295509295565b5f806040838503121561251e575f80fd5b8235915061252e602084016120df565b90509250929050565b602081525f61210d602083018461220b565b634e487b7160e01b5f52603260045260245ffd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f60ff821660ff81036125bb576125bb612592565b60010192915050565b80820180821115611bdf57611bdf612592565b5f602082840312156125e7575f80fd5b5051919050565b6001600160801b038181168382160190811115611bdf57611bdf612592565b8082028115828204841417611bdf57611bdf612592565b634e487b7160e01b5f52601260045260245ffd5b5f8261264657612646612624565b500490565b81810381811115611bdf57611bdf612592565b6001600160801b03818116838216029081169081811461268057612680612592565b5092915050565b5f6001600160801b0383168061269f5761269f612624565b806001600160801b0384160491505092915050565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212205864efc2ee04fd64cfdbff5bfe2642175d283afd0e057a2a78b8223f1c406b2364736f6c634300081a0033