```\nfunction unlockStake() external {\n    DepositInfo storage info = deposits[msg.sender];\n    require(info.unstakeDelaySec != 0, "not staked");\n    require(info.staked, "already unstaking");\n    uint48 withdrawTime = uint48(block.timestamp) + info.unstakeDelaySec;\n    info.withdrawTime = withdrawTime;\n    info.staked = false;\n    emit StakeUnlocked(msg.sender, withdrawTime);\n}\n```\n