9.5k txs
10.1k calls
constructor
constructor(address _stakingToken, address _rewardToken, uint256 _rewardsTokenDecimals, address _multiplier, address _penaltyFeeCalculator)
functions
BURN_ADDRESS
viewfunction BURN_ADDRESS() view returns (address)
endsAt
viewfunction endsAt() view returns (uint256)
getUserRewards
viewfunction getUserRewards(address _user, uint256 _stakeNumber) view returns (uint256)
getUserStakes
viewfunction getUserStakes(address _user) view returns (tuple[])
isPaused
viewfunction isPaused() view returns (bool)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable() view returns (uint256)
lastUpdateTime
viewfunction lastUpdateTime() view returns (uint256)
owner
viewfunction owner() view returns (address)
penaltyFeeCalculator
viewfunction penaltyFeeCalculator() view returns (address)
rewardPerToken
viewfunction rewardPerToken() view returns (uint256)
rewardPerTokenStored
viewfunction rewardPerTokenStored() view returns (uint256)
rewardRatePerSec
viewfunction rewardRatePerSec() view returns (uint256)
rewardsDuration
viewfunction rewardsDuration() view returns (uint256)
rewardsMultiplier
viewfunction rewardsMultiplier() view returns (address)
rewardsToken
viewfunction rewardsToken() view returns (address)
rewardsTokenDecimals
viewfunction rewardsTokenDecimals() view returns (uint256)
stakingToken
viewfunction stakingToken() view returns (address)
startsAt
viewfunction startsAt() view returns (uint256)
totalRewards
viewfunction totalRewards() view returns (uint256)
totalStaked
viewfunction totalStaked() view returns (uint256)
totalWeightedStake
viewfunction totalWeightedStake() view returns (uint256)
userStakingInfo
viewfunction userStakingInfo(address, uint256) view returns (uint256 stakedAmount, uint256 minimumStakeTimestamp, uint256 duration, uint256 rewardPerTokenPaid, uint256 rewards)
claimRewards
nonpayablefunction claimRewards(uint256 _stakeNumber)
initializeStaking
nonpayablefunction initializeStaking(uint256 _startsAt, uint256 _rewardsDuration, uint256 _amount)
pauseStaking
nonpayablefunction pauseStaking()
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, uint256 tokenAmount)
resumeStaking
nonpayablefunction resumeStaking()
stake
nonpayablefunction stake(uint256 _amount, uint8 _stakeTimeOption, uint256 _unstakeTime)
transferOwnership
nonpayablefunction transferOwnership(address _newOwner)
unstake
nonpayablefunction unstake(uint256 _amount, uint256 _stakeNumber)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardPaid
event RewardPaid(address indexed user, uint256 stakeNumber, uint256 reward)
Staked
event Staked(address indexed user, uint256 stakeNumber, uint256 amount)
TokenRecovered
event TokenRecovered(address token, uint256 amount)
Unstaked
event Unstaked(address indexed user, uint256 stakeNumber, uint256 amount)
errors
No errors.
creation bytecode
0x6101206040523480156200001257600080fd5b5060405162002a4b38038062002a4b83398101604081905262000035916200009f565b6001600081905580546001600160a01b031916331790556001600160601b0319606095861b811660805293851b841660a05260c092909252831b821660e05290911b166101005262000105565b80516001600160a01b03811681146200009a57600080fd5b919050565b600080600080600060a08688031215620000b7578081fd5b620000c28662000082565b9450620000d26020870162000082565b935060408601519250620000e96060870162000082565b9150620000f96080870162000082565b90509295509295909350565b60805160601c60a05160601c60c05160e05160601c6101005160601c612885620001c66000396000818161025901526110de01526000818161039a01528181610f3c015281816113cd01528181611c2c0152611d5d015260008181610298015281816115ee0152611ea80152600081816103db015281816108090152818161089a015281816108e401528181610cb6015261212d0152600081816102db01528181610c2a015281816115080152818161154b0152611ce601526128856000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80639e2c8a5b11610104578063d1af0c7d116100a2578063f999c50611610071578063f999c50614610422578063f99b7d751461042a578063fccc28131461043d578063fff0c5361461044657600080fd5b8063d1af0c7d146103d6578063df136d65146103fd578063eed9da1f14610406578063f2fde38b1461040f57600080fd5b8063b6d7dc5c116100de578063b6d7dc5c14610395578063bddff592146103bc578063c8f33c91146103c5578063cd3daf9d146103ce57600080fd5b80639e2c8a5b1461035c578063af4686821461036f578063b187bd261461037857600080fd5b8063386a95251161017c578063817b1cd21161014b578063817b1cd21461030d578063842e2981146103165780638980f11f146103365780638da5cb5b1461034957600080fd5b8063386a9525146102cd57806372f702f3146102d65780637475f913146102fd57806380faa57d1461030557600080fd5b80630e15561a116101b85780630e15561a1461024b57806323a59277146102545780632792cdae1461029357806331d94f89146102ba57600080fd5b806304d978f1146101df5780630962ef791461021f5780630a09284a14610234575b600080fd5b6101f26101ed366004612521565b610459565b604080519586526020860194909452928401919091526060830152608082015260a0015b60405180910390f35b61023261022d36600461256a565b6104a7565b005b61023d60045481565b604051908152602001610216565b61023d60095481565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610216565b61023d7f000000000000000000000000000000000000000000000000000000000000000081565b6102326102c83660046125f5565b610520565b61023d60025481565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b610232610992565b61023d610afc565b61023d600a5481565b610329610324366004612507565b610b13565b604051610216919061263c565b610232610344366004612521565b610bba565b60015461027b906001600160a01b031681565b61023261036a3660046125d4565b610d96565b61023d60035481565b6008546103859060ff1681565b6040519015158152602001610216565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b61023d60065481565b61023d60055481565b61023d6115b8565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b61023d60075481565b61023d600b5481565b61023261041d366004612507565b611649565b610232611721565b61023261043836600461259a565b611817565b61027b61dead81565b61023d610454366004612521565b611d58565b600c602052816000526040600020818154811061047557600080fd5b600091825260209091206005909102018054600182015460028301546003840154600490940154929550909350919085565b600260005414156104ff5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260005561050e3382611fa2565b610518338261207f565b506001600055565b600260005414156105735760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104f6565b60026000556001546001600160a01b031633146105e65760405162461bcd60e51b815260206004820152602b60248201527f466c6f6b695374616b696e67506f6f6c3a3a6f6e6c794f776e65723a206e6f7460448201526a08185d5d1a1bdc9a5e995960aa1b60648201526084016104f6565b4283116106695760405162461bcd60e51b8152602060048201526044602482018190527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a655374616b908201527f696e673a205f7374617274734174206d75737420626520696e207468652066756064820152637475726560e01b608482015260a4016104f6565b600082116106df5760405162461bcd60e51b815260206004820152603960248201527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a655374616b60448201527f696e673a205f726577617264734475726174696f6e203d20300000000000000060648201526084016104f6565b600081116107555760405162461bcd60e51b815260206004820152603060248201527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a655374616b60448201527f696e673a205f616d6f756e74203d20300000000000000000000000000000000060648201526084016104f6565b600354156107cb5760405162461bcd60e51b815260206004820152603c60248201527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a655374616b60448201527f696e673a207374616b696e6720616c726561647920737461727465640000000060648201526084016104f6565b6107d6600080611fa2565b600282905560038390556107ea82846126dd565b60049081556040516370a0823160e01b815230918101919091526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561085357600080fd5b505afa158015610867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088b9190612582565b90506108c26001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561219e565b6040516370a0823160e01b815230600482015260009082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095e9190612582565b610968919061281f565b6009819055905061097984826126f5565b60065550506008805460ff191690555050600160005550565b6001546001600160a01b03163314610a005760405162461bcd60e51b815260206004820152602b60248201527f466c6f6b695374616b696e67506f6f6c3a3a6f6e6c794f776e65723a206e6f7460448201526a08185d5d1a1bdc9a5e995960aa1b60648201526084016104f6565b600060065411610a785760405162461bcd60e51b815260206004820152602f60248201527f466c6f6b695374616b696e67506f6f6c3a3a73746172745374616b696e673a2060448201527f7265776172642072617465203d2030000000000000000000000000000000000060648201526084016104f6565b60085460ff16610af05760405162461bcd60e51b815260206004820152603760248201527f466c6f6b695374616b696e67506f6f6c3a3a73746172745374616b696e673a2060448201527f7374616b696e6720616c7265616479207374617274656400000000000000000060648201526084016104f6565b6008805460ff19169055565b60006004544210610b0e575060045490565b504290565b6001600160a01b0381166000908152600c60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610baf57838290600052602060002090600502016040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505081526020019060010190610b4b565b505050509050919050565b6001546001600160a01b03163314610c285760405162461bcd60e51b815260206004820152602b60248201527f466c6f6b695374616b696e67506f6f6c3a3a6f6e6c794f776e65723a206e6f7460448201526a08185d5d1a1bdc9a5e995960aa1b60648201526084016104f6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610cb45760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420776974686472617720746865207374616b696e6720746f6b656044820152603760f91b60648201526084016104f6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610d365760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207769746864726177207468652072657761726420746f6b656e60448201526064016104f6565b600154610d50906001600160a01b0384811691168361223c565b604080516001600160a01b0384168152602081018390527f4590b594be6fdef6bd5e18792a2494ddf2156b618c7bbe48d13a92831208af05910160405180910390a15050565b60026000541415610de95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104f6565b600260005581610e615760405162461bcd60e51b815260206004820152602560248201527f466c6f6b695374616b696e67506f6f6c3a3a756e7374616b653a20616d6f756e60448201527f74203d203000000000000000000000000000000000000000000000000000000060648201526084016104f6565b336000908152600c60205260409020805482908110610e9057634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160000154821115610f175760405162461bcd60e51b815260206004820152602d60248201527f466c6f6b695374616b696e67506f6f6c3a3a756e7374616b653a206e6f74206560448201527f6e6f7567682062616c616e63650000000000000000000000000000000000000060648201526084016104f6565b610f213382611fa2565b336000908152600c6020526040812080546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163457b08099185908110610f8157634e487b7160e01b600052603260045260246000fd5b60009182526020808320600590920290910154338352600c9091526040909120805486908110610fc157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600201546040518363ffffffff1660e01b8152600401610ff9929190918252602082015260400190565b60206040518083038186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110499190612582565b905080600b600082825461105d919061281f565b9250508190555082600a6000828254611076919061281f565b9091555050336000908152600c602052604081208054849081106110aa57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600101544210156111d957336000908152600c6020526040902080546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b2c0f3cb918791908790811061112657634e487b7160e01b600052603260045260246000fd5b60009182526020909120600260059092020101546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526004810192909252602482015230604482015260640160206040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190612582565b9050838111156111d95750825b336000908152600c6020526040902080548591908590811061120b57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600001600082825461122b919061281f565b9091555050336000908152600c6020526040902080548490811061125f57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160000154600014156113b257611283338461207f565b336000908152600c6020526040902080546112a09060019061281f565b815481106112be57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600c6000336001600160a01b03166001600160a01b03168152602001908152602001600020848154811061131057634e487b7160e01b600052603260045260246000fd5b6000918252602080832084546005909302019182556001808501549083015560028085015490830155600380850154908301556004938401549390910192909255338152600c9091526040902080548061137a57634e487b7160e01b600052603160045260246000fd5b6000828152602081206005600019909301928302018181556001810182905560028101829055600381018290556004015590556114f5565b336000908152600c6020526040812080546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163457b0809918790811061141257634e487b7160e01b600052603260045260246000fd5b60009182526020808320600590920290910154338352600c909152604090912080548890811061145257634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600201546040518363ffffffff1660e01b815260040161148a929190918252602082015260400190565b60206040518083038186803b1580156114a257600080fd5b505afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612582565b905080600b60008282546114ee91906126dd565b9091555050505b801561153e576115316001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661dead8361223c565b61153b818561281f565b93505b6115726001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338661223c565b604080518481526020810186905233917f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e910160405180910390a2505060016000555050565b6000600a54600014156115cc575060075490565b60006005546115d9610afc565b6115e3919061281f565b600b549091506116147f0000000000000000000000000000000000000000000000000000000000000000600a612758565b826006546116229190612800565b61162c9190612800565b61163691906126f5565b60075461164391906126dd565b91505090565b6001546001600160a01b031633146116b75760405162461bcd60e51b815260206004820152602b60248201527f466c6f6b695374616b696e67506f6f6c3a3a6f6e6c794f776e65723a206e6f7460448201526a08185d5d1a1bdc9a5e995960aa1b60648201526084016104f6565b600180546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001546001600160a01b0316331461178f5760405162461bcd60e51b815260206004820152602b60248201527f466c6f6b695374616b696e67506f6f6c3a3a6f6e6c794f776e65723a206e6f7460448201526a08185d5d1a1bdc9a5e995960aa1b60648201526084016104f6565b60085460ff16156118085760405162461bcd60e51b815260206004820152603660248201527f466c6f6b695374616b696e67506f6f6c3a3a70617573655374616b696e673a2060448201527f7374616b696e6720616c7265616479207061757365640000000000000000000060648201526084016104f6565b6008805460ff19166001179055565b6002600054141561186a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104f6565b600260005560085460ff16156118e85760405162461bcd60e51b815260206004820152603060248201527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a65643a207360448201527f74616b696e67206973207061757365640000000000000000000000000000000060648201526084016104f6565b4260035411156119605760405162461bcd60e51b815260206004820152603a60248201527f466c6f6b695374616b696e67506f6f6c3a3a696e697469616c697a65643a207360448201527f74616b696e6720686173206e6f7420737461727465642079657400000000000060648201526084016104f6565b42600454116119d75760405162461bcd60e51b815260206004820152603360248201527f466c6f6b695374616b696e67506f6f6c3a3a6e6f7446696e69736865643a207360448201527f74616b696e67206861732066696e69736865640000000000000000000000000060648201526084016104f6565b60008311611a335760405162461bcd60e51b815260206004820152602360248201527f466c6f6b695374616b696e67506f6f6c3a3a7374616b653a20616d6f756e742060448201526203d20360ec1b60648201526084016104f6565b600080836001811115611a5657634e487b7160e01b600052602160045260246000fd5b14611a615781611a6b565b611a6b82426126dd565b90506003548111611ae45760405162461bcd60e51b815260206004820152603b60248201527f466c6f6b695374616b696e67506f6f6c3a3a7374616b653a205f6d696e696d7560448201527f6d5374616b6554696d657374616d70203c3d207374617274734174000000000060648201526084016104f6565b428111611b645760405162461bcd60e51b815260206004820152604260248201527f466c6f6b695374616b696e67506f6f6c3a3a7374616b653a205f6d696e696d7560448201527f6d5374616b6554696d657374616d70203c3d20626c6f636b2e74696d6573746160648201526106d760f41b608482015260a4016104f6565b6000611b70428361281f565b9050611b7d600080611fa2565b6040805160a08101825286815260208082018581528284018581526007546060850190815260006080860181815233808352600c87529782208054600181810183558285529784208951600590920201908155955186880155935160028601559151600385015590516004909301929092559381529254919291611c01919061281f565b60405163457b080960e01b815260048101899052602481018590529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063457b08099060440160206040518083038186803b158015611c6e57600080fd5b505afa158015611c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca69190612582565b905080600b6000828254611cba91906126dd565b9250508190555087600a6000828254611cd391906126dd565b90915550611d0e90506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b61219e565b60408051838152602081018a905233917f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90910160405180910390a250506001600055505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663457b0809600c6000876001600160a01b03166001600160a01b031681526020019081526020016000208581548110611dce57634e487b7160e01b600052603260045260246000fd5b600091825260208083206005909202909101546001600160a01b0389168352600c9091526040909120805487908110611e1757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600201546040518363ffffffff1660e01b8152600401611e4f929190918252602082015260400190565b60206040518083038186803b158015611e6757600080fd5b505afa158015611e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9f9190612582565b90506000611ece7f0000000000000000000000000000000000000000000000000000000000000000600a612758565b6001600160a01b0386166000908152600c60205260409020805486908110611f0657634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160030154611f206115b8565b611f2a919061281f565b611f349084612800565b611f3e91906126f5565b6001600160a01b0386166000908152600c6020526040902080549192509085908110611f7a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016004015481611f9791906126dd565b925050505b92915050565b611faa6115b8565b600755611fb5610afc565b6005556001600160a01b0382161561207b57611fd18282611d58565b6001600160a01b0383166000908152600c6020526040902080548390811061200957634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040181905550600754600c6000846001600160a01b03166001600160a01b03168152602001908152602001600020828154811061206557634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600301819055505b5050565b6001600160a01b0382166000908152600c602052604081208054839081106120b757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016004015490506000811115612199576001600160a01b0383166000908152600c6020526040812080548490811061210c57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600460059092020101556121546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848361223c565b60408051838152602081018390526001600160a01b038516917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526122369085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261226c565b50505050565b6040516001600160a01b03831660248201526044810182905261219990849063a9059cbb60e01b906064016121d2565b60006122c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123519092919063ffffffff16565b80519091501561219957808060200190518101906122df919061254a565b6121995760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104f6565b6060612360848460008561236a565b90505b9392505050565b6060824710156123e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104f6565b6001600160a01b0385163b6124395760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104f6565b600080866001600160a01b031685876040516124559190612620565b60006040518083038185875af1925050503d8060008114612492576040519150601f19603f3d011682016040523d82523d6000602084013e612497565b606091505b50915091506124a78282866124b2565b979650505050505050565b606083156124c1575081612363565b8251156124d15782518084602001fd5b8160405162461bcd60e51b81526004016104f691906126aa565b80356001600160a01b038116811461250257600080fd5b919050565b600060208284031215612518578081fd5b612363826124eb565b60008060408385031215612533578081fd5b61253c836124eb565b946020939093013593505050565b60006020828403121561255b578081fd5b81518015158114612363578182fd5b60006020828403121561257b578081fd5b5035919050565b600060208284031215612593578081fd5b5051919050565b6000806000606084860312156125ae578081fd5b833592506020840135600281106125c3578182fd5b929592945050506040919091013590565b600080604083850312156125e6578182fd5b50508035926020909101359150565b600080600060608486031215612609578283fd5b505081359360208301359350604090920135919050565b60008251612632818460208701612836565b9190910192915050565b602080825282518282018190526000919060409081850190868401855b8281101561269d5781518051855286810151878601528581015186860152606080820151908601526080908101519085015260a09093019290850190600101612659565b5091979650505050505050565b60208152600082518060208401526126c9816040850160208701612836565b601f01601f19169190910160400192915050565b600082198211156126f0576126f0612862565b500190565b60008261271057634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561275057816000190482111561273657612736612862565b8085161561274357918102915b93841c939080029061271a565b509250929050565b6000612363838360008261276e57506001611f9c565b8161277b57506000611f9c565b8160018114612791576002811461279b576127b7565b6001915050611f9c565b60ff8411156127ac576127ac612862565b50506001821b611f9c565b5060208310610133831016604e8410600b84101617156127da575081810a611f9c565b6127e48383612715565b80600019048211156127f8576127f8612862565b029392505050565b600081600019048311821515161561281a5761281a612862565b500290565b60008282101561283157612831612862565b500390565b60005b83811015612851578181015183820152602001612839565b838111156122365750506000910152565b634e487b7160e01b600052601160045260246000fdfea164736f6c6343000804000a000000000000000000000000cf0c122c6b73ff809c693db761e7baebe62b6a2e0000000000000000000000004507cef57c46789ef8d1a19ea45f4216bae2b5280000000000000000000000000000000000000000000000000000000000000009000000000000000000000000b254cc6c1d178c2de8182cede6113a986bb907210000000000000000000000004761295cb20bbf40952b3239bdc4fcd14021e30d