private function verifyOtpWithWindow($otp, $timestamp, $window)
{
$window = abs($window);
for ($i = -$window; $i <= $window; ++$i) {
if ($this->compareOTP($this->at($i * $this->getPeriod() + $timestamp), $otp)) {
return true;
}
}
return false;
}