long long __year_to_secs(long long year, int* is_leap) {
  if (year - 2ULL <= 136) {
    int y = year;
    int leaps = (y - 68) >> 2;
    if (!((y - 68) & 3)) {
      leaps--;
      if (is_leap)
        *is_leap = 1;
    } else if (is_leap)
      *is_leap = 0;
    return 31536000 * (y - 70) + 86400 * leaps;
  }

  int cycles, centuries, leaps, rem;

  if (!is_leap)
    is_leap = &(int){0};
  cycles = (year - 100) / 400;
  rem = (year - 100) % 400;
  if (rem < 0) {
    cycles--;
    rem += 400;
  }
  if (!rem) {
    *is_leap = 1;
    centuries = 0;
    leaps = 0;
  } else {
    if (rem >= 200) {
      if (rem >= 300)
        centuries = 3, rem -= 300;
      else
        centuries = 2, rem -= 200;
    } else {
      if (rem >= 100)
        centuries = 1, rem -= 100;
      else
        centuries = 0;
    }
    if (!rem) {
      *is_leap = 0;
      leaps = 0;
    } else {
      leaps = rem / 4U;
      rem %= 4U;
      *is_leap = !rem;
    }
  }

  leaps += 97 * cycles + 24 * centuries - *is_leap;

  return (year - 100) * 31536000LL + leaps * 86400LL + 946684800 + 86400;
}
