// This file was generated by the following script:
//
//   $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
//     --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx/tzfiles
//     --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
//     --tz_version 2025b
//     --action zonedb
//     --language arduino
//     --scope extended
//     --db_namespace zonedbx
//     --zi_namespace extended::Info
//     --start_year 2000
//     --until_year 2200
//
// using the TZ Database files
//
//   africa
//   antarctica
//   asia
//   australasia
//   backward
//   etcetera
//   europe
//   northamerica
//   southamerica
//
// from https://github.com/eggert/tz/releases/tag/2025b
//
// Supported Zones: 597 (340 zones, 257 links)
// Unsupported Zones: 0 (0 zones, 0 links)
//
// Requested Years: [2000,2200]
// Accurate Years: [2000,32767]
//
// Original Years:  [1844,2087]
// Generated Years: [1950,2087]
// Lower/Upper Truncated: [True,False]
//
// Estimator Years: [1950,2090]
// Max Buffer Size: 7
//
// Records:
//   Infos: 597
//   Eras: 647
//   Policies: 82
//   Rules: 731
//
// Memory (8-bits):
//   Context: 16
//   Rules: 6579
//   Policies: 246
//   Eras: 7117
//   Zones: 4420
//   Links: 3341
//   Registry: 1194
//   Formats: 231
//   Letters: 46
//   Fragments: 150
//   Names: 5660 (original: 9094)
//   TOTAL: 29000
//
// Memory (32-bits):
//   Context: 24
//   Rules: 8772
//   Policies: 656
//   Eras: 10352
//   Zones: 8160
//   Links: 6168
//   Registry: 2388
//   Formats: 231
//   Letters: 64
//   Fragments: 178
//   Names: 5660 (original: 9094)
//   TOTAL: 42653
//
// DO NOT EDIT

#include <zoneinfo/compat.h>
#include "zone_policies.h"

namespace ace_time {
namespace zonedbx {

//---------------------------------------------------------------------------
// Policies: 82
// Rules: 731
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Policy name: AN
// Rules: 10
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AN    1990    1995    -    Mar    Sun>=1    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    1987    1999    -    Oct    lastSun    2:00s    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AN    1990    1995    -    Mar    Sun>=1    2:00s    0    S
  {
    -110 /*fromYearTiny (1990)*/,
    -105 /*toYearTiny (1995)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    1996    2005    -    Mar    lastSun    2:00s    0    S
  {
    -104 /*fromYearTiny (1996)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    2000    only    -    Aug    lastSun    2:00s    1:00    D
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AN    2001    2007    -    Oct    lastSun    2:00s    1:00    D
  {
    -99 /*fromYearTiny (2001)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AN    2006    only    -    Apr    Sun>=1    2:00s    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    2007    only    -    Mar    lastSun    2:00s    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    2008    max    -    Apr    Sun>=1    2:00s    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AN    2008    max    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
  kZoneRulesAN /*rules*/,
  10 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: AQ
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AQ    1990    1992    -    Mar    Sun>=1    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
  kZoneRulesAQ /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: AS
// Rules: 8
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AS    1994    only    -    Mar    20    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    1987    2007    -    Oct    lastSun    2:00s    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AS    1994    only    -    Mar    20    2:00s    0    S
  {
    -106 /*fromYearTiny (1994)*/,
    -106 /*toYearTiny (1994)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    1995    2005    -    Mar    lastSun    2:00s    0    S
  {
    -105 /*fromYearTiny (1995)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    2006    only    -    Apr    2    2:00s    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    2007    only    -    Mar    lastSun    2:00s    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    2008    max    -    Apr    Sun>=1    2:00s    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AS    2008    max    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
  kZoneRulesAS /*rules*/,
  8 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: AT
// Rules: 9
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AT    1991    2005    -    Mar    lastSun    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AT    1988    1990    -    Oct    lastSun    2:00s    1:00    D
  {
    -112 /*fromYearTiny (1988)*/,
    -110 /*toYearTiny (1990)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AT    1991    1999    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -109 /*fromYearTiny (1991)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AT    1991    2005    -    Mar    lastSun    2:00s    0    S
  {
    -109 /*fromYearTiny (1991)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AT    2000    only    -    Aug    lastSun    2:00s    1:00    D
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AT    2001    max    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -99 /*fromYearTiny (2001)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AT    2006    only    -    Apr    Sun>=1    2:00s    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AT    2007    only    -    Mar    lastSun    2:00s    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AT    2008    max    -    Apr    Sun>=1    2:00s    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
  kZoneRulesAT /*rules*/,
  9 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: AV
// Rules: 10
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AV    1991    1994    -    Mar    Sun>=1    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    1988    1999    -    Oct    lastSun    2:00s    1:00    D
  {
    -112 /*fromYearTiny (1988)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AV    1991    1994    -    Mar    Sun>=1    2:00s    0    S
  {
    -109 /*fromYearTiny (1991)*/,
    -106 /*toYearTiny (1994)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    1995    2005    -    Mar    lastSun    2:00s    0    S
  {
    -105 /*fromYearTiny (1995)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    2000    only    -    Aug    lastSun    2:00s    1:00    D
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AV    2001    2007    -    Oct    lastSun    2:00s    1:00    D
  {
    -99 /*fromYearTiny (2001)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AV    2006    only    -    Apr    Sun>=1    2:00s    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    2007    only    -    Mar    lastSun    2:00s    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    2008    max    -    Apr    Sun>=1    2:00s    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AV    2008    max    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
  kZoneRulesAV /*rules*/,
  10 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: AW
// Rules: 5
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    AW    1992    only    -    Mar    Sun>=1    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AW    1992    only    -    Mar    Sun>=1    2:00s    0    S
  {
    -108 /*fromYearTiny (1992)*/,
    -108 /*toYearTiny (1992)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AW    2006    only    -    Dec     3    2:00s    1:00    D
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    AW    2007    2009    -    Mar    lastSun    2:00s    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    AW    2007    2008    -    Oct    lastSun    2:00s    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
  kZoneRulesAW /*rules*/,
  5 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Arg
// Rules: 7
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Arg    1989    1993    -    Mar    Sun>=1    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    1989    1993    -    Mar    Sun>=1    0:00    0    -
  {
    -111 /*fromYearTiny (1989)*/,
    -107 /*toYearTiny (1993)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    1999    only    -    Oct    Sun>=1    0:00    1:00    -
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    2000    only    -    Mar    3    0:00    0    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    2007    only    -    Dec    30    0:00    1:00    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    2008    2009    -    Mar    Sun>=15    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Arg    2008    only    -    Oct    Sun>=15    0:00    1:00    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = {
  kZoneRulesArg /*rules*/,
  7 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Armenia
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule Armenia    2011    only    -    Oct    lastSun     2:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Armenia    2011    only    -    Mar    lastSun     2:00s    1:00    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Armenia    2011    only    -    Oct    lastSun     2:00s    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
  kZoneRulesArmenia /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Aus
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Aus    1943    1944    -    Mar    lastSun    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
  kZoneRulesAus /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Azer
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Azer    1997    2015    -    Oct    lastSun     5:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Azer    1997    2015    -    Mar    lastSun     4:00    1:00    -
  {
    -103 /*fromYearTiny (1997)*/,
    -85 /*toYearTiny (2015)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Azer    1997    2015    -    Oct    lastSun     5:00    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    -85 /*toYearTiny (2015)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    20 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
  kZoneRulesAzer /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Barb
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Barb    1980    only    -    Sep    25    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
  kZoneRulesBarb /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Belize
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Belize    1983    only    -    Feb    12    0:00    0    CST
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    4 /*letterIndex ("CST")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
  kZoneRulesBelize /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Brazil
// Rules: 21
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Brazil    1999    only    -    Feb    21     0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    1998    only    -    Oct    11     0:00    1:00    -
  {
    -102 /*fromYearTiny (1998)*/,
    -102 /*toYearTiny (1998)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    1999    only    -    Feb    21     0:00    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    1999    only    -    Oct     3     0:00    1:00    -
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2000    only    -    Feb    27     0:00    0    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2000    2001    -    Oct    Sun>=8     0:00    1:00    -
  {
    -100 /*fromYearTiny (2000)*/,
    -99 /*toYearTiny (2001)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2001    2006    -    Feb    Sun>=15     0:00    0    -
  {
    -99 /*fromYearTiny (2001)*/,
    -94 /*toYearTiny (2006)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2002    only    -    Nov     3     0:00    1:00    -
  {
    -98 /*fromYearTiny (2002)*/,
    -98 /*toYearTiny (2002)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2003    only    -    Oct    19     0:00    1:00    -
  {
    -97 /*fromYearTiny (2003)*/,
    -97 /*toYearTiny (2003)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2004    only    -    Nov     2     0:00    1:00    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2005    only    -    Oct    16     0:00    1:00    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2006    only    -    Nov     5     0:00    1:00    -
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2007    only    -    Feb    25     0:00    0    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2007    only    -    Oct    Sun>=8     0:00    1:00    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2008    2017    -    Oct    Sun>=15    0:00    1:00    -
  {
    -92 /*fromYearTiny (2008)*/,
    -83 /*toYearTiny (2017)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2008    2011    -    Feb    Sun>=15    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -89 /*toYearTiny (2011)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2012    only    -    Feb    Sun>=22    0:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2013    2014    -    Feb    Sun>=15    0:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -86 /*toYearTiny (2014)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2015    only    -    Feb    Sun>=22    0:00    0    -
  {
    -85 /*fromYearTiny (2015)*/,
    -85 /*toYearTiny (2015)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2016    2019    -    Feb    Sun>=15    0:00    0    -
  {
    -84 /*fromYearTiny (2016)*/,
    -81 /*toYearTiny (2019)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Brazil    2018    only    -    Nov    Sun>=1    0:00    1:00    -
  {
    -82 /*fromYearTiny (2018)*/,
    -82 /*toYearTiny (2018)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
  kZoneRulesBrazil /*rules*/,
  21 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: CO
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    CO    1993    only    -    Feb     6    24:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
  kZoneRulesCO /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: CR
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    CR    1992    only    -    Mar    15    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
  kZoneRulesCR /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Canada
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Canada    1974    2006    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Canada    1974    1986    -    Apr    lastSun    2:00    1:00    D
  {
    -126 /*fromYearTiny (1974)*/,
    -114 /*toYearTiny (1986)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Canada    1974    2006    -    Oct    lastSun    2:00    0    S
  {
    -126 /*fromYearTiny (1974)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Canada    1987    2006    -    Apr    Sun>=1    2:00    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Canada    2007    max    -    Mar    Sun>=8    2:00    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Canada    2007    max    -    Nov    Sun>=1    2:00    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
  kZoneRulesCanada /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Chatham
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Chatham    1990    2007    -    Mar    Sun>=15    2:45s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chatham    1989    only    -    Oct    Sun>=8    2:45s    1:00    -
  {
    -111 /*fromYearTiny (1989)*/,
    -111 /*toYearTiny (1989)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    11 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chatham    1990    2006    -    Oct    Sun>=1    2:45s    1:00    -
  {
    -110 /*fromYearTiny (1990)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    11 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chatham    1990    2007    -    Mar    Sun>=15    2:45s    0    -
  {
    -110 /*fromYearTiny (1990)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    11 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chatham    2007    max    -    Sep    lastSun    2:45s    1:00    -
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    11 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chatham    2008    max    -    Apr    Sun>=1    2:45s    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    11 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
  kZoneRulesChatham /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Chile
// Rules: 18
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Chile    1999    only    -    Apr     4    3:00u    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    1998    only    -    Sep    27    4:00u    1:00    -
  {
    -102 /*fromYearTiny (1998)*/,
    -102 /*toYearTiny (1998)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    1999    only    -    Apr     4    3:00u    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    1999    2010    -    Oct    Sun>=9    4:00u    1:00    -
  {
    -101 /*fromYearTiny (1999)*/,
    -90 /*toYearTiny (2010)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2000    2007    -    Mar    Sun>=9    3:00u    0    -
  {
    -100 /*fromYearTiny (2000)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2008    only    -    Mar    30    3:00u    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2009    only    -    Mar    Sun>=9    3:00u    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2010    only    -    Apr    Sun>=1    3:00u    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2011    only    -    May    Sun>=2    3:00u    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    5 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2011    only    -    Aug    Sun>=16    4:00u    1:00    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2012    2014    -    Apr    Sun>=23    3:00u    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -86 /*toYearTiny (2014)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2012    2014    -    Sep    Sun>=2    4:00u    1:00    -
  {
    -88 /*fromYearTiny (2012)*/,
    -86 /*toYearTiny (2014)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2016    2018    -    May    Sun>=9    3:00u    0    -
  {
    -84 /*fromYearTiny (2016)*/,
    -82 /*toYearTiny (2018)*/,
    5 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2016    2018    -    Aug    Sun>=9    4:00u    1:00    -
  {
    -84 /*fromYearTiny (2016)*/,
    -82 /*toYearTiny (2018)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2019    max    -    Apr    Sun>=2    3:00u    0    -
  {
    -81 /*fromYearTiny (2019)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2019    2021    -    Sep    Sun>=2    4:00u    1:00    -
  {
    -81 /*fromYearTiny (2019)*/,
    -79 /*toYearTiny (2021)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2022    only    -    Sep    Sun>=9    4:00u    1:00    -
  {
    -78 /*fromYearTiny (2022)*/,
    -78 /*toYearTiny (2022)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Chile    2023    max    -    Sep    Sun>=2    4:00u    1:00    -
  {
    -77 /*fromYearTiny (2023)*/,
    126 /*toYearTiny (32766)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
  kZoneRulesChile /*rules*/,
  18 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Cook
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Cook    1979    1991    -    Mar    Sun>=1    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
  kZoneRulesCook /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Cuba
// Rules: 15
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Cuba    1997    only    -    Oct    12    0:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    1997    only    -    Oct    12    0:00s    0    S
  {
    -103 /*fromYearTiny (1997)*/,
    -103 /*toYearTiny (1997)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    1998    1999    -    Mar    lastSun    0:00s    1:00    D
  {
    -102 /*fromYearTiny (1998)*/,
    -101 /*toYearTiny (1999)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    1998    2003    -    Oct    lastSun    0:00s    0    S
  {
    -102 /*fromYearTiny (1998)*/,
    -97 /*toYearTiny (2003)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    2000    2003    -    Apr    Sun>=1    0:00s    1:00    D
  {
    -100 /*fromYearTiny (2000)*/,
    -97 /*toYearTiny (2003)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2004    only    -    Mar    lastSun    0:00s    1:00    D
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2006    2010    -    Oct    lastSun    0:00s    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -90 /*toYearTiny (2010)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    2007    only    -    Mar    Sun>=8    0:00s    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2008    only    -    Mar    Sun>=15    0:00s    1:00    D
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2009    2010    -    Mar    Sun>=8    0:00s    1:00    D
  {
    -91 /*fromYearTiny (2009)*/,
    -90 /*toYearTiny (2010)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2011    only    -    Mar    Sun>=15    0:00s    1:00    D
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2011    only    -    Nov    13    0:00s    0    S
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    2012    only    -    Apr    1    0:00s    1:00    D
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Cuba    2012    max    -    Nov    Sun>=1    0:00s    0    S
  {
    -88 /*fromYearTiny (2012)*/,
    126 /*toYearTiny (32766)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Cuba    2013    max    -    Mar    Sun>=8    0:00s    1:00    D
  {
    -87 /*fromYearTiny (2013)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
  kZoneRulesCuba /*rules*/,
  15 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Dhaka
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Dhaka    2009    only    -    Dec    31    24:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Dhaka    2009    only    -    Jun    19    23:00    1:00    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    92 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Dhaka    2009    only    -    Dec    31    24:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
  kZoneRulesDhaka /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: E-EurAsia
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesE_EurAsia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule E-EurAsia    1979    1995    -    Sep    lastSun     0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule E-EurAsia    1981    max    -    Mar    lastSun     0:00    1:00    -
  {
    -119 /*fromYearTiny (1981)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule E-EurAsia    1979    1995    -    Sep    lastSun     0:00    0    -
  {
    -121 /*fromYearTiny (1979)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule E-EurAsia    1996    max    -    Oct    lastSun     0:00    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyE_EurAsia ACE_TIME_PROGMEM = {
  kZoneRulesE_EurAsia /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: EU
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    EU    1979    1995    -    Sep    lastSun     1:00u    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    EU    1979    1995    -    Sep    lastSun     1:00u    0    -
  {
    -121 /*fromYearTiny (1979)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    EU    1981    max    -    Mar    lastSun     1:00u    1:00    S
  {
    -119 /*fromYearTiny (1981)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    EU    1996    max    -    Oct    lastSun     1:00u    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
  kZoneRulesEU /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: EUAsia
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    EUAsia    1979    1995    -    Sep    lastSun     1:00u    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    EUAsia    1981    max    -    Mar    lastSun     1:00u    1:00    S
  {
    -119 /*fromYearTiny (1981)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    EUAsia    1979    1995    -    Sep    lastSun     1:00u    0    -
  {
    -121 /*fromYearTiny (1979)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    EUAsia    1996    max    -    Oct    lastSun     1:00u    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
  kZoneRulesEUAsia /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Ecuador
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Ecuador    1993    only    -    Feb     5    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
  kZoneRulesEcuador /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Egypt
// Rules: 17
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Egypt    1966    1994    -    Oct     1    3:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    1966    1994    -    Oct     1    3:00    0    -
  {
    -127 /*fromYearTiny (1966)*/,
    -106 /*toYearTiny (1994)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    1995    2010    -    Apr    lastFri     0:00s    1:00    S
  {
    -105 /*fromYearTiny (1995)*/,
    -90 /*toYearTiny (2010)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Egypt    1995    2005    -    Sep    lastThu    24:00    0    -
  {
    -105 /*fromYearTiny (1995)*/,
    -95 /*toYearTiny (2005)*/,
    9 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2006    only    -    Sep    21    24:00    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2007    only    -    Sep    Thu>=1    24:00    0    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    9 /*inMonth*/,
    4 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2008    only    -    Aug    lastThu    24:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    8 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2009    only    -    Aug    20    24:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2010    only    -    Aug    10    24:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2010    only    -    Sep     9    24:00    1:00    S
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Egypt    2010    only    -    Sep    lastThu    24:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    9 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2014    only    -    May    15    24:00    1:00    S
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Egypt    2014    only    -    Jun    26    24:00    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2014    only    -    Jul    31    24:00    1:00    S
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Egypt    2014    only    -    Sep    lastThu    24:00    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    9 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Egypt    2023    max    -    Apr    lastFri     0:00    1:00    S
  {
    -77 /*fromYearTiny (2023)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Egypt    2023    max    -    Oct    lastThu    24:00    0    -
  {
    -77 /*fromYearTiny (2023)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = {
  kZoneRulesEgypt /*rules*/,
  17 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Eire
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Eire    1981    max    -    Mar    lastSun     1:00u    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Eire    1981    max    -    Mar    lastSun     1:00u    0    -
  {
    -119 /*fromYearTiny (1981)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Eire    1990    1995    -    Oct    Sun>=22     1:00u    -1:00    -
  {
    -110 /*fromYearTiny (1990)*/,
    -105 /*toYearTiny (1995)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Eire    1996    max    -    Oct    lastSun     1:00u    -1:00    -
  {
    -104 /*fromYearTiny (1996)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
  kZoneRulesEire /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Falk
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesFalk[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Falk    1984    1985    -    Apr    lastSun    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Falk    1984    1985    -    Apr    lastSun    0:00    0    -
  {
    -116 /*fromYearTiny (1984)*/,
    -115 /*toYearTiny (1985)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Falk    1985    2000    -    Sep    Sun>=9    0:00    1:00    -
  {
    -115 /*fromYearTiny (1985)*/,
    -100 /*toYearTiny (2000)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Falk    1986    2000    -    Apr    Sun>=16    0:00    0    -
  {
    -114 /*fromYearTiny (1986)*/,
    -100 /*toYearTiny (2000)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Falk    2001    2010    -    Apr    Sun>=15    2:00    0    -
  {
    -99 /*fromYearTiny (2001)*/,
    -90 /*toYearTiny (2010)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Falk    2001    2010    -    Sep    Sun>=1    2:00    1:00    -
  {
    -99 /*fromYearTiny (2001)*/,
    -90 /*toYearTiny (2010)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyFalk ACE_TIME_PROGMEM = {
  kZoneRulesFalk /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Fiji
// Rules: 13
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Fiji    1999    2000    -    Feb    lastSun    3:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    1998    1999    -    Nov    Sun>=1    2:00    1:00    -
  {
    -102 /*fromYearTiny (1998)*/,
    -101 /*toYearTiny (1999)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    1999    2000    -    Feb    lastSun    3:00    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    -100 /*toYearTiny (2000)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2009    only    -    Nov    29    2:00    1:00    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2010    only    -    Mar    lastSun    3:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2010    2013    -    Oct    Sun>=21    2:00    1:00    -
  {
    -90 /*fromYearTiny (2010)*/,
    -87 /*toYearTiny (2013)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2011    only    -    Mar    Sun>=1    3:00    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2012    2013    -    Jan    Sun>=18    3:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -87 /*toYearTiny (2013)*/,
    1 /*inMonth*/,
    7 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2014    only    -    Jan    Sun>=18    2:00    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    1 /*inMonth*/,
    7 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2014    2018    -    Nov    Sun>=1    2:00    1:00    -
  {
    -86 /*fromYearTiny (2014)*/,
    -82 /*toYearTiny (2018)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2015    2021    -    Jan    Sun>=12    3:00    0    -
  {
    -85 /*fromYearTiny (2015)*/,
    -79 /*toYearTiny (2021)*/,
    1 /*inMonth*/,
    7 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2019    only    -    Nov    Sun>=8    2:00    1:00    -
  {
    -81 /*fromYearTiny (2019)*/,
    -81 /*toYearTiny (2019)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Fiji    2020    only    -    Dec    20    2:00    1:00    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
  kZoneRulesFiji /*rules*/,
  13 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Guam
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesGuam[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Guam    1977    only    -    Aug    28    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyGuam ACE_TIME_PROGMEM = {
  kZoneRulesGuam /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Guat
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Guat    1991    only    -    Sep     7    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Guat    1991    only    -    Sep     7    0:00    0    S
  {
    -109 /*fromYearTiny (1991)*/,
    -109 /*toYearTiny (1991)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Guat    2006    only    -    Apr    30    0:00    1:00    D
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Guat    2006    only    -    Oct     1    0:00    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
  kZoneRulesGuat /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: HK
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    HK    1979    only    -    Oct    21    3:30    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
  kZoneRulesHK /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Haiti
// Rules: 8
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Haiti    1988    1997    -    Oct    lastSun    1:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Haiti    1988    1997    -    Oct    lastSun    1:00s    0    S
  {
    -112 /*fromYearTiny (1988)*/,
    -103 /*toYearTiny (1997)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Haiti    2005    2006    -    Apr    Sun>=1    0:00    1:00    D
  {
    -95 /*fromYearTiny (2005)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Haiti    2005    2006    -    Oct    lastSun    0:00    0    S
  {
    -95 /*fromYearTiny (2005)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Haiti    2012    2015    -    Mar    Sun>=8    2:00    1:00    D
  {
    -88 /*fromYearTiny (2012)*/,
    -85 /*toYearTiny (2015)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Haiti    2012    2015    -    Nov    Sun>=1    2:00    0    S
  {
    -88 /*fromYearTiny (2012)*/,
    -85 /*toYearTiny (2015)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Haiti    2017    max    -    Mar    Sun>=8    2:00    1:00    D
  {
    -83 /*fromYearTiny (2017)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Haiti    2017    max    -    Nov    Sun>=1    2:00    0    S
  {
    -83 /*fromYearTiny (2017)*/,
    126 /*toYearTiny (32766)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
  kZoneRulesHaiti /*rules*/,
  8 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Holiday
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Holiday    1993    1994    -    Mar    Sun>=1    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
  kZoneRulesHoliday /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Hond
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Hond    1987    1988    -    Sep    lastSun    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Hond    1987    1988    -    Sep    lastSun    0:00    0    S
  {
    -113 /*fromYearTiny (1987)*/,
    -112 /*toYearTiny (1988)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Hond    2006    only    -    May    Sun>=1    0:00    1:00    D
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    5 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Hond    2006    only    -    Aug    Mon>=1    0:00    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    8 /*inMonth*/,
    1 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
  kZoneRulesHond /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Iran
// Rules: 28
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Iran    1996    only    -    Sep    20    24:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    1996    only    -    Sep    20    24:00    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    -104 /*toYearTiny (1996)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    1997    1999    -    Mar    21    24:00    1:00    -
  {
    -103 /*fromYearTiny (1997)*/,
    -101 /*toYearTiny (1999)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    1997    1999    -    Sep    21    24:00    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    -101 /*toYearTiny (1999)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2000    only    -    Mar    20    24:00    1:00    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2000    only    -    Sep    20    24:00    0    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2001    2003    -    Mar    21    24:00    1:00    -
  {
    -99 /*fromYearTiny (2001)*/,
    -97 /*toYearTiny (2003)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2001    2003    -    Sep    21    24:00    0    -
  {
    -99 /*fromYearTiny (2001)*/,
    -97 /*toYearTiny (2003)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2004    only    -    Mar    20    24:00    1:00    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2004    only    -    Sep    20    24:00    0    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2005    only    -    Mar    21    24:00    1:00    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2005    only    -    Sep    21    24:00    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2008    only    -    Mar    20    24:00    1:00    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2008    only    -    Sep    20    24:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2009    2011    -    Mar    21    24:00    1:00    -
  {
    -91 /*fromYearTiny (2009)*/,
    -89 /*toYearTiny (2011)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2009    2011    -    Sep    21    24:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -89 /*toYearTiny (2011)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2012    only    -    Mar    20    24:00    1:00    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2012    only    -    Sep    20    24:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2013    2015    -    Mar    21    24:00    1:00    -
  {
    -87 /*fromYearTiny (2013)*/,
    -85 /*toYearTiny (2015)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2013    2015    -    Sep    21    24:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -85 /*toYearTiny (2015)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2016    only    -    Mar    20    24:00    1:00    -
  {
    -84 /*fromYearTiny (2016)*/,
    -84 /*toYearTiny (2016)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2016    only    -    Sep    20    24:00    0    -
  {
    -84 /*fromYearTiny (2016)*/,
    -84 /*toYearTiny (2016)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2017    2019    -    Mar    21    24:00    1:00    -
  {
    -83 /*fromYearTiny (2017)*/,
    -81 /*toYearTiny (2019)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2017    2019    -    Sep    21    24:00    0    -
  {
    -83 /*fromYearTiny (2017)*/,
    -81 /*toYearTiny (2019)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2020    only    -    Mar    20    24:00    1:00    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2020    only    -    Sep    20    24:00    0    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2021    2022    -    Mar    21    24:00    1:00    -
  {
    -79 /*fromYearTiny (2021)*/,
    -78 /*toYearTiny (2022)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iran    2021    2022    -    Sep    21    24:00    0    -
  {
    -79 /*fromYearTiny (2021)*/,
    -78 /*toYearTiny (2022)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
  kZoneRulesIran /*rules*/,
  28 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Iraq
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Iraq    1985    1990    -    Sep    lastSun    1:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iraq    1985    1990    -    Sep    lastSun    1:00s    0    -
  {
    -115 /*fromYearTiny (1985)*/,
    -110 /*toYearTiny (1990)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iraq    1991    2007    -    Apr     1    3:00s    1:00    -
  {
    -109 /*fromYearTiny (1991)*/,
    -93 /*toYearTiny (2007)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Iraq    1991    2007    -    Oct     1    3:00s    0    -
  {
    -109 /*fromYearTiny (1991)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
  kZoneRulesIraq /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Japan
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Japan    1948    1951    -    Sep    Sat>=8    25:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
  kZoneRulesJapan /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Jordan
// Rules: 14
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Jordan    1995    1998    -    Sep    Fri>=15    0:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    1995    1998    -    Sep    Fri>=15    0:00s    0    -
  {
    -105 /*fromYearTiny (1995)*/,
    -102 /*toYearTiny (1998)*/,
    9 /*inMonth*/,
    5 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    1999    only    -    Jul     1    0:00s    1:00    S
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Jordan    1999    2002    -    Sep    lastFri    0:00s    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    -98 /*toYearTiny (2002)*/,
    9 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2000    2001    -    Mar    lastThu    0:00s    1:00    S
  {
    -100 /*fromYearTiny (2000)*/,
    -99 /*toYearTiny (2001)*/,
    3 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Jordan    2002    2012    -    Mar    lastThu    24:00    1:00    S
  {
    -98 /*fromYearTiny (2002)*/,
    -88 /*toYearTiny (2012)*/,
    3 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Jordan    2003    only    -    Oct    24    0:00s    0    -
  {
    -97 /*fromYearTiny (2003)*/,
    -97 /*toYearTiny (2003)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2004    only    -    Oct    15    0:00s    0    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2005    only    -    Sep    lastFri    0:00s    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    9 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2006    2011    -    Oct    lastFri    0:00s    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -89 /*toYearTiny (2011)*/,
    10 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2013    only    -    Dec    20    0:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2014    2021    -    Mar    lastThu    24:00    1:00    S
  {
    -86 /*fromYearTiny (2014)*/,
    -79 /*toYearTiny (2021)*/,
    3 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Jordan    2014    2022    -    Oct    lastFri    0:00s    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -78 /*toYearTiny (2022)*/,
    10 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Jordan    2022    only    -    Feb    lastThu    24:00    1:00    S
  {
    -78 /*fromYearTiny (2022)*/,
    -78 /*toYearTiny (2022)*/,
    2 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
  kZoneRulesJordan /*rules*/,
  14 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Kyrgyz
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesKyrgyz[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Kyrgyz    1992    1996    -    Sep    lastSun    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Kyrgyz    1992    1996    -    Sep    lastSun    0:00    0    -
  {
    -108 /*fromYearTiny (1992)*/,
    -104 /*toYearTiny (1996)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Kyrgyz    1997    2005    -    Mar    lastSun    2:30    1:00    -
  {
    -103 /*fromYearTiny (1997)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    10 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Kyrgyz    1997    2004    -    Oct    lastSun    2:30    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    -96 /*toYearTiny (2004)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    10 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyKyrgyz ACE_TIME_PROGMEM = {
  kZoneRulesKyrgyz /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: LH
// Rules: 10
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    LH    1990    1995    -    Mar    Sun>=1    2:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    1987    1999    -    Oct    lastSun    2:00    0:30    -
  {
    -113 /*fromYearTiny (1987)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    1990    1995    -    Mar    Sun>=1    2:00    0    -
  {
    -110 /*fromYearTiny (1990)*/,
    -105 /*toYearTiny (1995)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    1996    2005    -    Mar    lastSun    2:00    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2000    only    -    Aug    lastSun    2:00    0:30    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    8 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2001    2007    -    Oct    lastSun    2:00    0:30    -
  {
    -99 /*fromYearTiny (2001)*/,
    -93 /*toYearTiny (2007)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2006    only    -    Apr    Sun>=1    2:00    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2007    only    -    Mar    lastSun    2:00    0    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2008    max    -    Apr    Sun>=1    2:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    LH    2008    max    -    Oct    Sun>=1    2:00    0:30    -
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
  kZoneRulesLH /*rules*/,
  10 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Lebanon
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Lebanon    1993    1998    -    Sep    lastSun    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Lebanon    1993    max    -    Mar    lastSun    0:00    1:00    S
  {
    -107 /*fromYearTiny (1993)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Lebanon    1993    1998    -    Sep    lastSun    0:00    0    -
  {
    -107 /*fromYearTiny (1993)*/,
    -102 /*toYearTiny (1998)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Lebanon    1999    max    -    Oct    lastSun    0:00    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
  kZoneRulesLebanon /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Libya
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesLibya[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Libya    1997    only    -    Oct     4    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Libya    1997    only    -    Oct     4    0:00    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    -103 /*toYearTiny (1997)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Libya    2013    only    -    Mar    lastFri    1:00    1:00    S
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Libya    2013    only    -    Oct    lastFri    2:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    10 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyLibya ACE_TIME_PROGMEM = {
  kZoneRulesLibya /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Macau
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Macau    1979    only    -    Oct    Sun>=16    03:30    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
  kZoneRulesMacau /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Mauritius
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
  // Anchor: Rule Mauritius    1983    only    -    Mar    21    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Mauritius    1983    only    -    Mar    21    0:00    0    -
  {
    -117 /*fromYearTiny (1983)*/,
    -117 /*toYearTiny (1983)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Mauritius    2008    only    -    Oct    lastSun    2:00    1:00    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Mauritius    2009    only    -    Mar    lastSun    2:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
  kZoneRulesMauritius /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Mexico
// Rules: 8
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Mexico    1950    only    -    Jul    30    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Mexico    1950    only    -    Jul    30    0:00    0    S
  {
    -127 /*fromYearTiny (1950)*/,
    -127 /*toYearTiny (1950)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Mexico    1996    2000    -    Apr    Sun>=1    2:00    1:00    D
  {
    -104 /*fromYearTiny (1996)*/,
    -100 /*toYearTiny (2000)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Mexico    1996    2000    -    Oct    lastSun    2:00    0    S
  {
    -104 /*fromYearTiny (1996)*/,
    -100 /*toYearTiny (2000)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Mexico    2001    only    -    May    Sun>=1    2:00    1:00    D
  {
    -99 /*fromYearTiny (2001)*/,
    -99 /*toYearTiny (2001)*/,
    5 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Mexico    2001    only    -    Sep    lastSun    2:00    0    S
  {
    -99 /*fromYearTiny (2001)*/,
    -99 /*toYearTiny (2001)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Mexico    2002    2022    -    Apr    Sun>=1    2:00    1:00    D
  {
    -98 /*fromYearTiny (2002)*/,
    -78 /*toYearTiny (2022)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Mexico    2002    2022    -    Oct    lastSun    2:00    0    S
  {
    -98 /*fromYearTiny (2002)*/,
    -78 /*toYearTiny (2022)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
  kZoneRulesMexico /*rules*/,
  8 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Moldova
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Moldova    1997    max    -    Oct    lastSun     3:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Moldova    1997    max    -    Mar    lastSun     2:00    1:00    S
  {
    -103 /*fromYearTiny (1997)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Moldova    1997    max    -    Oct    lastSun     3:00    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
  kZoneRulesMoldova /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Moncton
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Moncton    1957    1972    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Moncton    1957    1972    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (1957)*/,
    -127 /*toYearTiny (1972)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Moncton    1993    2006    -    Apr    Sun>=1    0:01    1:00    D
  {
    -107 /*fromYearTiny (1993)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Moncton    1993    2006    -    Oct    lastSun    0:01    0    S
  {
    -107 /*fromYearTiny (1993)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
  kZoneRulesMoncton /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Mongol
// Rules: 7
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Mongol    1984    1998    -    Sep    lastSun    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    1984    1998    -    Sep    lastSun    0:00    0    -
  {
    -116 /*fromYearTiny (1984)*/,
    -102 /*toYearTiny (1998)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    2001    only    -    Apr    lastSat    2:00    1:00    -
  {
    -99 /*fromYearTiny (2001)*/,
    -99 /*toYearTiny (2001)*/,
    4 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    2001    2006    -    Sep    lastSat    2:00    0    -
  {
    -99 /*fromYearTiny (2001)*/,
    -94 /*toYearTiny (2006)*/,
    9 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    2002    2006    -    Mar    lastSat    2:00    1:00    -
  {
    -98 /*fromYearTiny (2002)*/,
    -94 /*toYearTiny (2006)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    2015    2016    -    Mar    lastSat    2:00    1:00    -
  {
    -85 /*fromYearTiny (2015)*/,
    -84 /*toYearTiny (2016)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Mongol    2015    2016    -    Sep    lastSat    0:00    0    -
  {
    -85 /*fromYearTiny (2015)*/,
    -84 /*toYearTiny (2016)*/,
    9 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
  kZoneRulesMongol /*rules*/,
  7 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Morocco
// Rules: 170
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Morocco    1978    only    -    Aug     4     0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    1978    only    -    Aug     4     0:00    0    -
  {
    -122 /*fromYearTiny (1978)*/,
    -122 /*toYearTiny (1978)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2008    only    -    Jun     1     0:00    1:00    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2008    only    -    Sep     1     0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2009    only    -    Jun     1     0:00    1:00    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2009    only    -    Aug    21     0:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2010    only    -    May     2     0:00    1:00    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2010    only    -    Aug     8     0:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2011    only    -    Apr     3     0:00    1:00    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2011    only    -    Jul    31     0:00    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2012    2013    -    Apr    lastSun     2:00    1:00    -
  {
    -88 /*fromYearTiny (2012)*/,
    -87 /*toYearTiny (2013)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2012    only    -    Jul    20     3:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2012    only    -    Aug    20     2:00    1:00    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2012    only    -    Sep    30     3:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2013    only    -    Jul     7     3:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2013    only    -    Aug    10     2:00    1:00    -
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2013    2018    -    Oct    lastSun     3:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -82 /*toYearTiny (2018)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2014    2018    -    Mar    lastSun     2:00    1:00    -
  {
    -86 /*fromYearTiny (2014)*/,
    -82 /*toYearTiny (2018)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2014    only    -    Jun    28     3:00    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2014    only    -    Aug     2     2:00    1:00    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2015    only    -    Jun    14     3:00    0    -
  {
    -85 /*fromYearTiny (2015)*/,
    -85 /*toYearTiny (2015)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2015    only    -    Jul    19     2:00    1:00    -
  {
    -85 /*fromYearTiny (2015)*/,
    -85 /*toYearTiny (2015)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2016    only    -    Jun     5     3:00    0    -
  {
    -84 /*fromYearTiny (2016)*/,
    -84 /*toYearTiny (2016)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2016    only    -    Jul    10     2:00    1:00    -
  {
    -84 /*fromYearTiny (2016)*/,
    -84 /*toYearTiny (2016)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2017    only    -    May    21     3:00    0    -
  {
    -83 /*fromYearTiny (2017)*/,
    -83 /*toYearTiny (2017)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2017    only    -    Jul     2     2:00    1:00    -
  {
    -83 /*fromYearTiny (2017)*/,
    -83 /*toYearTiny (2017)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2018    only    -    May    13     3:00    0    -
  {
    -82 /*fromYearTiny (2018)*/,
    -82 /*toYearTiny (2018)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2018    only    -    Jun    17     2:00    1:00    -
  {
    -82 /*fromYearTiny (2018)*/,
    -82 /*toYearTiny (2018)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2019    only    -    May     5     3:00    -1:00    -
  {
    -81 /*fromYearTiny (2019)*/,
    -81 /*toYearTiny (2019)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2019    only    -    Jun     9     2:00    0    -
  {
    -81 /*fromYearTiny (2019)*/,
    -81 /*toYearTiny (2019)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2020    only    -    Apr    19     3:00    -1:00    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2020    only    -    May    31     2:00    0    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2021    only    -    Apr    11     3:00    -1:00    -
  {
    -79 /*fromYearTiny (2021)*/,
    -79 /*toYearTiny (2021)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2021    only    -    May    16     2:00    0    -
  {
    -79 /*fromYearTiny (2021)*/,
    -79 /*toYearTiny (2021)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2022    only    -    Mar    27     3:00    -1:00    -
  {
    -78 /*fromYearTiny (2022)*/,
    -78 /*toYearTiny (2022)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2022    only    -    May     8     2:00    0    -
  {
    -78 /*fromYearTiny (2022)*/,
    -78 /*toYearTiny (2022)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2023    only    -    Mar    19     3:00    -1:00    -
  {
    -77 /*fromYearTiny (2023)*/,
    -77 /*toYearTiny (2023)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2023    only    -    Apr    23     2:00    0    -
  {
    -77 /*fromYearTiny (2023)*/,
    -77 /*toYearTiny (2023)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2024    only    -    Mar    10     3:00    -1:00    -
  {
    -76 /*fromYearTiny (2024)*/,
    -76 /*toYearTiny (2024)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2024    only    -    Apr    14     2:00    0    -
  {
    -76 /*fromYearTiny (2024)*/,
    -76 /*toYearTiny (2024)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2025    only    -    Feb    23     3:00    -1:00    -
  {
    -75 /*fromYearTiny (2025)*/,
    -75 /*toYearTiny (2025)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2025    only    -    Apr     6     2:00    0    -
  {
    -75 /*fromYearTiny (2025)*/,
    -75 /*toYearTiny (2025)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2026    only    -    Feb    15     3:00    -1:00    -
  {
    -74 /*fromYearTiny (2026)*/,
    -74 /*toYearTiny (2026)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2026    only    -    Mar    22     2:00    0    -
  {
    -74 /*fromYearTiny (2026)*/,
    -74 /*toYearTiny (2026)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2027    only    -    Feb     7     3:00    -1:00    -
  {
    -73 /*fromYearTiny (2027)*/,
    -73 /*toYearTiny (2027)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2027    only    -    Mar    14     2:00    0    -
  {
    -73 /*fromYearTiny (2027)*/,
    -73 /*toYearTiny (2027)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2028    only    -    Jan    23     3:00    -1:00    -
  {
    -72 /*fromYearTiny (2028)*/,
    -72 /*toYearTiny (2028)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2028    only    -    Mar     5     2:00    0    -
  {
    -72 /*fromYearTiny (2028)*/,
    -72 /*toYearTiny (2028)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2029    only    -    Jan    14     3:00    -1:00    -
  {
    -71 /*fromYearTiny (2029)*/,
    -71 /*toYearTiny (2029)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2029    only    -    Feb    18     2:00    0    -
  {
    -71 /*fromYearTiny (2029)*/,
    -71 /*toYearTiny (2029)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2029    only    -    Dec    30     3:00    -1:00    -
  {
    -71 /*fromYearTiny (2029)*/,
    -71 /*toYearTiny (2029)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2030    only    -    Feb    10     2:00    0    -
  {
    -70 /*fromYearTiny (2030)*/,
    -70 /*toYearTiny (2030)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2030    only    -    Dec    22     3:00    -1:00    -
  {
    -70 /*fromYearTiny (2030)*/,
    -70 /*toYearTiny (2030)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2031    only    -    Jan    26     2:00    0    -
  {
    -69 /*fromYearTiny (2031)*/,
    -69 /*toYearTiny (2031)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2031    only    -    Dec    14     3:00    -1:00    -
  {
    -69 /*fromYearTiny (2031)*/,
    -69 /*toYearTiny (2031)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2032    only    -    Jan    18     2:00    0    -
  {
    -68 /*fromYearTiny (2032)*/,
    -68 /*toYearTiny (2032)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2032    only    -    Nov    28     3:00    -1:00    -
  {
    -68 /*fromYearTiny (2032)*/,
    -68 /*toYearTiny (2032)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2033    only    -    Jan     9     2:00    0    -
  {
    -67 /*fromYearTiny (2033)*/,
    -67 /*toYearTiny (2033)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2033    only    -    Nov    20     3:00    -1:00    -
  {
    -67 /*fromYearTiny (2033)*/,
    -67 /*toYearTiny (2033)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2033    only    -    Dec    25     2:00    0    -
  {
    -67 /*fromYearTiny (2033)*/,
    -67 /*toYearTiny (2033)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2034    only    -    Nov     5     3:00    -1:00    -
  {
    -66 /*fromYearTiny (2034)*/,
    -66 /*toYearTiny (2034)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2034    only    -    Dec    17     2:00    0    -
  {
    -66 /*fromYearTiny (2034)*/,
    -66 /*toYearTiny (2034)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2035    only    -    Oct    28     3:00    -1:00    -
  {
    -65 /*fromYearTiny (2035)*/,
    -65 /*toYearTiny (2035)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2035    only    -    Dec     9     2:00    0    -
  {
    -65 /*fromYearTiny (2035)*/,
    -65 /*toYearTiny (2035)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2036    only    -    Oct    19     3:00    -1:00    -
  {
    -64 /*fromYearTiny (2036)*/,
    -64 /*toYearTiny (2036)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2036    only    -    Nov    23     2:00    0    -
  {
    -64 /*fromYearTiny (2036)*/,
    -64 /*toYearTiny (2036)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2037    only    -    Oct     4     3:00    -1:00    -
  {
    -63 /*fromYearTiny (2037)*/,
    -63 /*toYearTiny (2037)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2037    only    -    Nov    15     2:00    0    -
  {
    -63 /*fromYearTiny (2037)*/,
    -63 /*toYearTiny (2037)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2038    only    -    Sep    26     3:00    -1:00    -
  {
    -62 /*fromYearTiny (2038)*/,
    -62 /*toYearTiny (2038)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2038    only    -    Oct    31     2:00    0    -
  {
    -62 /*fromYearTiny (2038)*/,
    -62 /*toYearTiny (2038)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2039    only    -    Sep    18     3:00    -1:00    -
  {
    -61 /*fromYearTiny (2039)*/,
    -61 /*toYearTiny (2039)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2039    only    -    Oct    23     2:00    0    -
  {
    -61 /*fromYearTiny (2039)*/,
    -61 /*toYearTiny (2039)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2040    only    -    Sep     2     3:00    -1:00    -
  {
    -60 /*fromYearTiny (2040)*/,
    -60 /*toYearTiny (2040)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2040    only    -    Oct    14     2:00    0    -
  {
    -60 /*fromYearTiny (2040)*/,
    -60 /*toYearTiny (2040)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2041    only    -    Aug    25     3:00    -1:00    -
  {
    -59 /*fromYearTiny (2041)*/,
    -59 /*toYearTiny (2041)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2041    only    -    Sep    29     2:00    0    -
  {
    -59 /*fromYearTiny (2041)*/,
    -59 /*toYearTiny (2041)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2042    only    -    Aug    10     3:00    -1:00    -
  {
    -58 /*fromYearTiny (2042)*/,
    -58 /*toYearTiny (2042)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2042    only    -    Sep    21     2:00    0    -
  {
    -58 /*fromYearTiny (2042)*/,
    -58 /*toYearTiny (2042)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2043    only    -    Aug     2     3:00    -1:00    -
  {
    -57 /*fromYearTiny (2043)*/,
    -57 /*toYearTiny (2043)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2043    only    -    Sep    13     2:00    0    -
  {
    -57 /*fromYearTiny (2043)*/,
    -57 /*toYearTiny (2043)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2044    only    -    Jul    24     3:00    -1:00    -
  {
    -56 /*fromYearTiny (2044)*/,
    -56 /*toYearTiny (2044)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2044    only    -    Aug    28     2:00    0    -
  {
    -56 /*fromYearTiny (2044)*/,
    -56 /*toYearTiny (2044)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2045    only    -    Jul     9     3:00    -1:00    -
  {
    -55 /*fromYearTiny (2045)*/,
    -55 /*toYearTiny (2045)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2045    only    -    Aug    20     2:00    0    -
  {
    -55 /*fromYearTiny (2045)*/,
    -55 /*toYearTiny (2045)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2046    only    -    Jul     1     3:00    -1:00    -
  {
    -54 /*fromYearTiny (2046)*/,
    -54 /*toYearTiny (2046)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2046    only    -    Aug     5     2:00    0    -
  {
    -54 /*fromYearTiny (2046)*/,
    -54 /*toYearTiny (2046)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2047    only    -    Jun    23     3:00    -1:00    -
  {
    -53 /*fromYearTiny (2047)*/,
    -53 /*toYearTiny (2047)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2047    only    -    Jul    28     2:00    0    -
  {
    -53 /*fromYearTiny (2047)*/,
    -53 /*toYearTiny (2047)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2048    only    -    Jun     7     3:00    -1:00    -
  {
    -52 /*fromYearTiny (2048)*/,
    -52 /*toYearTiny (2048)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2048    only    -    Jul    19     2:00    0    -
  {
    -52 /*fromYearTiny (2048)*/,
    -52 /*toYearTiny (2048)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2049    only    -    May    30     3:00    -1:00    -
  {
    -51 /*fromYearTiny (2049)*/,
    -51 /*toYearTiny (2049)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2049    only    -    Jul     4     2:00    0    -
  {
    -51 /*fromYearTiny (2049)*/,
    -51 /*toYearTiny (2049)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2050    only    -    May    15     3:00    -1:00    -
  {
    -50 /*fromYearTiny (2050)*/,
    -50 /*toYearTiny (2050)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2050    only    -    Jun    26     2:00    0    -
  {
    -50 /*fromYearTiny (2050)*/,
    -50 /*toYearTiny (2050)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2051    only    -    May     7     3:00    -1:00    -
  {
    -49 /*fromYearTiny (2051)*/,
    -49 /*toYearTiny (2051)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2051    only    -    Jun    18     2:00    0    -
  {
    -49 /*fromYearTiny (2051)*/,
    -49 /*toYearTiny (2051)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2052    only    -    Apr    28     3:00    -1:00    -
  {
    -48 /*fromYearTiny (2052)*/,
    -48 /*toYearTiny (2052)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2052    only    -    Jun     2     2:00    0    -
  {
    -48 /*fromYearTiny (2052)*/,
    -48 /*toYearTiny (2052)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2053    only    -    Apr    13     3:00    -1:00    -
  {
    -47 /*fromYearTiny (2053)*/,
    -47 /*toYearTiny (2053)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2053    only    -    May    25     2:00    0    -
  {
    -47 /*fromYearTiny (2053)*/,
    -47 /*toYearTiny (2053)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2054    only    -    Apr     5     3:00    -1:00    -
  {
    -46 /*fromYearTiny (2054)*/,
    -46 /*toYearTiny (2054)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2054    only    -    May    10     2:00    0    -
  {
    -46 /*fromYearTiny (2054)*/,
    -46 /*toYearTiny (2054)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2055    only    -    Mar    28     3:00    -1:00    -
  {
    -45 /*fromYearTiny (2055)*/,
    -45 /*toYearTiny (2055)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2055    only    -    May     2     2:00    0    -
  {
    -45 /*fromYearTiny (2055)*/,
    -45 /*toYearTiny (2055)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2056    only    -    Mar    12     3:00    -1:00    -
  {
    -44 /*fromYearTiny (2056)*/,
    -44 /*toYearTiny (2056)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2056    only    -    Apr    23     2:00    0    -
  {
    -44 /*fromYearTiny (2056)*/,
    -44 /*toYearTiny (2056)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2057    only    -    Mar     4     3:00    -1:00    -
  {
    -43 /*fromYearTiny (2057)*/,
    -43 /*toYearTiny (2057)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2057    only    -    Apr     8     2:00    0    -
  {
    -43 /*fromYearTiny (2057)*/,
    -43 /*toYearTiny (2057)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2058    only    -    Feb    17     3:00    -1:00    -
  {
    -42 /*fromYearTiny (2058)*/,
    -42 /*toYearTiny (2058)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2058    only    -    Mar    31     2:00    0    -
  {
    -42 /*fromYearTiny (2058)*/,
    -42 /*toYearTiny (2058)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2059    only    -    Feb     9     3:00    -1:00    -
  {
    -41 /*fromYearTiny (2059)*/,
    -41 /*toYearTiny (2059)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2059    only    -    Mar    23     2:00    0    -
  {
    -41 /*fromYearTiny (2059)*/,
    -41 /*toYearTiny (2059)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2060    only    -    Feb     1     3:00    -1:00    -
  {
    -40 /*fromYearTiny (2060)*/,
    -40 /*toYearTiny (2060)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2060    only    -    Mar     7     2:00    0    -
  {
    -40 /*fromYearTiny (2060)*/,
    -40 /*toYearTiny (2060)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2061    only    -    Jan    16     3:00    -1:00    -
  {
    -39 /*fromYearTiny (2061)*/,
    -39 /*toYearTiny (2061)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2061    only    -    Feb    27     2:00    0    -
  {
    -39 /*fromYearTiny (2061)*/,
    -39 /*toYearTiny (2061)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2062    only    -    Jan     8     3:00    -1:00    -
  {
    -38 /*fromYearTiny (2062)*/,
    -38 /*toYearTiny (2062)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2062    only    -    Feb    12     2:00    0    -
  {
    -38 /*fromYearTiny (2062)*/,
    -38 /*toYearTiny (2062)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2062    only    -    Dec    31     3:00    -1:00    -
  {
    -38 /*fromYearTiny (2062)*/,
    -38 /*toYearTiny (2062)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2063    only    -    Feb     4     2:00    0    -
  {
    -37 /*fromYearTiny (2063)*/,
    -37 /*toYearTiny (2063)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2063    only    -    Dec    16     3:00    -1:00    -
  {
    -37 /*fromYearTiny (2063)*/,
    -37 /*toYearTiny (2063)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2064    only    -    Jan    27     2:00    0    -
  {
    -36 /*fromYearTiny (2064)*/,
    -36 /*toYearTiny (2064)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2064    only    -    Dec     7     3:00    -1:00    -
  {
    -36 /*fromYearTiny (2064)*/,
    -36 /*toYearTiny (2064)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2065    only    -    Jan    11     2:00    0    -
  {
    -35 /*fromYearTiny (2065)*/,
    -35 /*toYearTiny (2065)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2065    only    -    Nov    22     3:00    -1:00    -
  {
    -35 /*fromYearTiny (2065)*/,
    -35 /*toYearTiny (2065)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2066    only    -    Jan     3     2:00    0    -
  {
    -34 /*fromYearTiny (2066)*/,
    -34 /*toYearTiny (2066)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2066    only    -    Nov    14     3:00    -1:00    -
  {
    -34 /*fromYearTiny (2066)*/,
    -34 /*toYearTiny (2066)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2066    only    -    Dec    26     2:00    0    -
  {
    -34 /*fromYearTiny (2066)*/,
    -34 /*toYearTiny (2066)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2067    only    -    Nov     6     3:00    -1:00    -
  {
    -33 /*fromYearTiny (2067)*/,
    -33 /*toYearTiny (2067)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2067    only    -    Dec    11     2:00    0    -
  {
    -33 /*fromYearTiny (2067)*/,
    -33 /*toYearTiny (2067)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2068    only    -    Oct    21     3:00    -1:00    -
  {
    -32 /*fromYearTiny (2068)*/,
    -32 /*toYearTiny (2068)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2068    only    -    Dec     2     2:00    0    -
  {
    -32 /*fromYearTiny (2068)*/,
    -32 /*toYearTiny (2068)*/,
    12 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2069    only    -    Oct    13     3:00    -1:00    -
  {
    -31 /*fromYearTiny (2069)*/,
    -31 /*toYearTiny (2069)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2069    only    -    Nov    17     2:00    0    -
  {
    -31 /*fromYearTiny (2069)*/,
    -31 /*toYearTiny (2069)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2070    only    -    Oct     5     3:00    -1:00    -
  {
    -30 /*fromYearTiny (2070)*/,
    -30 /*toYearTiny (2070)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2070    only    -    Nov     9     2:00    0    -
  {
    -30 /*fromYearTiny (2070)*/,
    -30 /*toYearTiny (2070)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2071    only    -    Sep    20     3:00    -1:00    -
  {
    -29 /*fromYearTiny (2071)*/,
    -29 /*toYearTiny (2071)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2071    only    -    Nov     1     2:00    0    -
  {
    -29 /*fromYearTiny (2071)*/,
    -29 /*toYearTiny (2071)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2072    only    -    Sep    11     3:00    -1:00    -
  {
    -28 /*fromYearTiny (2072)*/,
    -28 /*toYearTiny (2072)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2072    only    -    Oct    16     2:00    0    -
  {
    -28 /*fromYearTiny (2072)*/,
    -28 /*toYearTiny (2072)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2073    only    -    Aug    27     3:00    -1:00    -
  {
    -27 /*fromYearTiny (2073)*/,
    -27 /*toYearTiny (2073)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2073    only    -    Oct     8     2:00    0    -
  {
    -27 /*fromYearTiny (2073)*/,
    -27 /*toYearTiny (2073)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2074    only    -    Aug    19     3:00    -1:00    -
  {
    -26 /*fromYearTiny (2074)*/,
    -26 /*toYearTiny (2074)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2074    only    -    Sep    30     2:00    0    -
  {
    -26 /*fromYearTiny (2074)*/,
    -26 /*toYearTiny (2074)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2075    only    -    Aug    11     3:00    -1:00    -
  {
    -25 /*fromYearTiny (2075)*/,
    -25 /*toYearTiny (2075)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2075    only    -    Sep    15     2:00    0    -
  {
    -25 /*fromYearTiny (2075)*/,
    -25 /*toYearTiny (2075)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2076    only    -    Jul    26     3:00    -1:00    -
  {
    -24 /*fromYearTiny (2076)*/,
    -24 /*toYearTiny (2076)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2076    only    -    Sep     6     2:00    0    -
  {
    -24 /*fromYearTiny (2076)*/,
    -24 /*toYearTiny (2076)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2077    only    -    Jul    18     3:00    -1:00    -
  {
    -23 /*fromYearTiny (2077)*/,
    -23 /*toYearTiny (2077)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2077    only    -    Aug    22     2:00    0    -
  {
    -23 /*fromYearTiny (2077)*/,
    -23 /*toYearTiny (2077)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2078    only    -    Jul    10     3:00    -1:00    -
  {
    -22 /*fromYearTiny (2078)*/,
    -22 /*toYearTiny (2078)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2078    only    -    Aug    14     2:00    0    -
  {
    -22 /*fromYearTiny (2078)*/,
    -22 /*toYearTiny (2078)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2079    only    -    Jun    25     3:00    -1:00    -
  {
    -21 /*fromYearTiny (2079)*/,
    -21 /*toYearTiny (2079)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2079    only    -    Aug     6     2:00    0    -
  {
    -21 /*fromYearTiny (2079)*/,
    -21 /*toYearTiny (2079)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2080    only    -    Jun    16     3:00    -1:00    -
  {
    -20 /*fromYearTiny (2080)*/,
    -20 /*toYearTiny (2080)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2080    only    -    Jul    21     2:00    0    -
  {
    -20 /*fromYearTiny (2080)*/,
    -20 /*toYearTiny (2080)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2081    only    -    Jun     1     3:00    -1:00    -
  {
    -19 /*fromYearTiny (2081)*/,
    -19 /*toYearTiny (2081)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2081    only    -    Jul    13     2:00    0    -
  {
    -19 /*fromYearTiny (2081)*/,
    -19 /*toYearTiny (2081)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2082    only    -    May    24     3:00    -1:00    -
  {
    -18 /*fromYearTiny (2082)*/,
    -18 /*toYearTiny (2082)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2082    only    -    Jun    28     2:00    0    -
  {
    -18 /*fromYearTiny (2082)*/,
    -18 /*toYearTiny (2082)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2083    only    -    May    16     3:00    -1:00    -
  {
    -17 /*fromYearTiny (2083)*/,
    -17 /*toYearTiny (2083)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2083    only    -    Jun    20     2:00    0    -
  {
    -17 /*fromYearTiny (2083)*/,
    -17 /*toYearTiny (2083)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2084    only    -    Apr    30     3:00    -1:00    -
  {
    -16 /*fromYearTiny (2084)*/,
    -16 /*toYearTiny (2084)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2084    only    -    Jun    11     2:00    0    -
  {
    -16 /*fromYearTiny (2084)*/,
    -16 /*toYearTiny (2084)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2085    only    -    Apr    22     3:00    -1:00    -
  {
    -15 /*fromYearTiny (2085)*/,
    -15 /*toYearTiny (2085)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2085    only    -    May    27     2:00    0    -
  {
    -15 /*fromYearTiny (2085)*/,
    -15 /*toYearTiny (2085)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2086    only    -    Apr    14     3:00    -1:00    -
  {
    -14 /*fromYearTiny (2086)*/,
    -14 /*toYearTiny (2086)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2086    only    -    May    19     2:00    0    -
  {
    -14 /*fromYearTiny (2086)*/,
    -14 /*toYearTiny (2086)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2087    only    -    Mar    30     3:00    -1:00    -
  {
    -13 /*fromYearTiny (2087)*/,
    -13 /*toYearTiny (2087)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Morocco    2087    only    -    May    11     2:00    0    -
  {
    -13 /*fromYearTiny (2087)*/,
    -13 /*toYearTiny (2087)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
  kZoneRulesMorocco /*rules*/,
  170 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: NC
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    NC    1997    only    -    Mar     2    2:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
  kZoneRulesNC /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: NT_YK
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesNT_YK[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    NT_YK    1972    2006    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    NT_YK    1972    1986    -    Apr    lastSun    2:00    1:00    D
  {
    -127 /*fromYearTiny (1972)*/,
    -114 /*toYearTiny (1986)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    NT_YK    1972    2006    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (1972)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    NT_YK    1987    2006    -    Apr    Sun>=1    2:00    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyNT_YK ACE_TIME_PROGMEM = {
  kZoneRulesNT_YK /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: NZ
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    NZ    1990    2007    -    Mar    Sun>=15    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    NZ    1989    only    -    Oct    Sun>=8    2:00s    1:00    D
  {
    -111 /*fromYearTiny (1989)*/,
    -111 /*toYearTiny (1989)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    NZ    1990    2006    -    Oct    Sun>=1    2:00s    1:00    D
  {
    -110 /*fromYearTiny (1990)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    NZ    1990    2007    -    Mar    Sun>=15    2:00s    0    S
  {
    -110 /*fromYearTiny (1990)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    NZ    2007    max    -    Sep    lastSun    2:00s    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    NZ    2008    max    -    Apr    Sun>=1    2:00s    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    126 /*toYearTiny (32766)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
  kZoneRulesNZ /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Namibia
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Namibia    1994    2017    -    Sep    Sun>=1    2:00    0    CAT
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    3 /*letterIndex ("CAT")*/,
  },
  // Rule    Namibia    1994    only    -    Mar    21    0:00    -1:00    WAT
  {
    -106 /*fromYearTiny (1994)*/,
    -106 /*toYearTiny (1994)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    8 /*letterIndex ("WAT")*/,
  },
  // Rule    Namibia    1994    2017    -    Sep    Sun>=1    2:00    0    CAT
  {
    -106 /*fromYearTiny (1994)*/,
    -83 /*toYearTiny (2017)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    3 /*letterIndex ("CAT")*/,
  },
  // Rule    Namibia    1995    2017    -    Apr    Sun>=1    2:00    -1:00    WAT
  {
    -105 /*fromYearTiny (1995)*/,
    -83 /*toYearTiny (2017)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
    8 /*letterIndex ("WAT")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
  kZoneRulesNamibia /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Nic
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Nic    1979    1980    -    Jun    Mon>=23    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Nic    1979    1980    -    Jun    Mon>=23    0:00    0    S
  {
    -121 /*fromYearTiny (1979)*/,
    -120 /*toYearTiny (1980)*/,
    6 /*inMonth*/,
    1 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Nic    2005    only    -    Apr    10    0:00    1:00    D
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Nic    2005    only    -    Oct    Sun>=1    0:00    0    S
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Nic    2006    only    -    Apr    30    2:00    1:00    D
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Nic    2006    only    -    Oct    Sun>=1    1:00    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
  kZoneRulesNic /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: PRC
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    PRC    1986    1991    -    Sep    Sun>=11     2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
  kZoneRulesPRC /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Pakistan
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
  // Anchor: Rule Pakistan    2002    only    -    Oct    Sun>=2    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Pakistan    2002    only    -    Apr    Sun>=2    0:00    1:00    S
  {
    -98 /*fromYearTiny (2002)*/,
    -98 /*toYearTiny (2002)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Pakistan    2002    only    -    Oct    Sun>=2    0:00    0    -
  {
    -98 /*fromYearTiny (2002)*/,
    -98 /*toYearTiny (2002)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Pakistan    2008    only    -    Jun    1    0:00    1:00    S
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Pakistan    2008    2009    -    Nov    1    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -91 /*toYearTiny (2009)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Pakistan    2009    only    -    Apr    15    0:00    1:00    S
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
  kZoneRulesPakistan /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Palestine
// Rules: 111
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = {
  // Anchor: Rule Palestine    1999    2003    -    Oct    Fri>=15    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    1999    2005    -    Apr    Fri>=15    0:00    1:00    S
  {
    -101 /*fromYearTiny (1999)*/,
    -95 /*toYearTiny (2005)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    1999    2003    -    Oct    Fri>=15    0:00    0    -
  {
    -101 /*fromYearTiny (1999)*/,
    -97 /*toYearTiny (2003)*/,
    10 /*inMonth*/,
    5 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2004    only    -    Oct     1    1:00    0    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2005    only    -    Oct     4    2:00    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2006    2007    -    Apr     1    0:00    1:00    S
  {
    -94 /*fromYearTiny (2006)*/,
    -93 /*toYearTiny (2007)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2006    only    -    Sep    22    0:00    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2007    only    -    Sep    13    2:00    0    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2008    2009    -    Mar    lastFri    0:00    1:00    S
  {
    -92 /*fromYearTiny (2008)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2008    only    -    Sep     1    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2009    only    -    Sep     4    1:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2010    only    -    Mar    26    0:00    1:00    S
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2010    only    -    Aug    11    0:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2011    only    -    Apr     1    0:01    1:00    S
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2011    only    -    Aug     1    0:00    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2011    only    -    Aug    30    0:00    1:00    S
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2011    only    -    Sep    30    0:00    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2012    2014    -    Mar    lastThu    24:00    1:00    S
  {
    -88 /*fromYearTiny (2012)*/,
    -86 /*toYearTiny (2014)*/,
    3 /*inMonth*/,
    4 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    96 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2012    only    -    Sep    21    1:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2013    only    -    Sep    27    0:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -87 /*toYearTiny (2013)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2014    only    -    Oct    24    0:00    0    -
  {
    -86 /*fromYearTiny (2014)*/,
    -86 /*toYearTiny (2014)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2015    only    -    Mar    28    0:00    1:00    S
  {
    -85 /*fromYearTiny (2015)*/,
    -85 /*toYearTiny (2015)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2015    only    -    Oct    23    1:00    0    -
  {
    -85 /*fromYearTiny (2015)*/,
    -85 /*toYearTiny (2015)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2016    2018    -    Mar    Sat<=30    1:00    1:00    S
  {
    -84 /*fromYearTiny (2016)*/,
    -82 /*toYearTiny (2018)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2016    2018    -    Oct    Sat<=30    1:00    0    -
  {
    -84 /*fromYearTiny (2016)*/,
    -82 /*toYearTiny (2018)*/,
    10 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2019    only    -    Mar    29    0:00    1:00    S
  {
    -81 /*fromYearTiny (2019)*/,
    -81 /*toYearTiny (2019)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2019    only    -    Oct    Sat<=30    0:00    0    -
  {
    -81 /*fromYearTiny (2019)*/,
    -81 /*toYearTiny (2019)*/,
    10 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2020    2021    -    Mar    Sat<=30    0:00    1:00    S
  {
    -80 /*fromYearTiny (2020)*/,
    -79 /*toYearTiny (2021)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2020    only    -    Oct    24    1:00    0    -
  {
    -80 /*fromYearTiny (2020)*/,
    -80 /*toYearTiny (2020)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2021    only    -    Oct    29    1:00    0    -
  {
    -79 /*fromYearTiny (2021)*/,
    -79 /*toYearTiny (2021)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2022    only    -    Mar    27    0:00    1:00    S
  {
    -78 /*fromYearTiny (2022)*/,
    -78 /*toYearTiny (2022)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2022    2035    -    Oct    Sat<=30    2:00    0    -
  {
    -78 /*fromYearTiny (2022)*/,
    -65 /*toYearTiny (2035)*/,
    10 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2023    only    -    Apr    29    2:00    1:00    S
  {
    -77 /*fromYearTiny (2023)*/,
    -77 /*toYearTiny (2023)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2024    only    -    Apr    20    2:00    1:00    S
  {
    -76 /*fromYearTiny (2024)*/,
    -76 /*toYearTiny (2024)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2025    only    -    Apr    12    2:00    1:00    S
  {
    -75 /*fromYearTiny (2025)*/,
    -75 /*toYearTiny (2025)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2026    2054    -    Mar    Sat<=30    2:00    1:00    S
  {
    -74 /*fromYearTiny (2026)*/,
    -46 /*toYearTiny (2054)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2036    only    -    Oct    18    2:00    0    -
  {
    -64 /*fromYearTiny (2036)*/,
    -64 /*toYearTiny (2036)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2037    only    -    Oct    10    2:00    0    -
  {
    -63 /*fromYearTiny (2037)*/,
    -63 /*toYearTiny (2037)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2038    only    -    Sep    25    2:00    0    -
  {
    -62 /*fromYearTiny (2038)*/,
    -62 /*toYearTiny (2038)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2039    only    -    Sep    17    2:00    0    -
  {
    -61 /*fromYearTiny (2039)*/,
    -61 /*toYearTiny (2039)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2040    only    -    Sep     1    2:00    0    -
  {
    -60 /*fromYearTiny (2040)*/,
    -60 /*toYearTiny (2040)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2040    only    -    Oct    20    2:00    1:00    S
  {
    -60 /*fromYearTiny (2040)*/,
    -60 /*toYearTiny (2040)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2040    2067    -    Oct    Sat<=30    2:00    0    -
  {
    -60 /*fromYearTiny (2040)*/,
    -33 /*toYearTiny (2067)*/,
    10 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2041    only    -    Aug    24    2:00    0    -
  {
    -59 /*fromYearTiny (2041)*/,
    -59 /*toYearTiny (2041)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2041    only    -    Oct     5    2:00    1:00    S
  {
    -59 /*fromYearTiny (2041)*/,
    -59 /*toYearTiny (2041)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2042    only    -    Aug    16    2:00    0    -
  {
    -58 /*fromYearTiny (2042)*/,
    -58 /*toYearTiny (2042)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2042    only    -    Sep    27    2:00    1:00    S
  {
    -58 /*fromYearTiny (2042)*/,
    -58 /*toYearTiny (2042)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2043    only    -    Aug     1    2:00    0    -
  {
    -57 /*fromYearTiny (2043)*/,
    -57 /*toYearTiny (2043)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2043    only    -    Sep    19    2:00    1:00    S
  {
    -57 /*fromYearTiny (2043)*/,
    -57 /*toYearTiny (2043)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2044    only    -    Jul    23    2:00    0    -
  {
    -56 /*fromYearTiny (2044)*/,
    -56 /*toYearTiny (2044)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2044    only    -    Sep     3    2:00    1:00    S
  {
    -56 /*fromYearTiny (2044)*/,
    -56 /*toYearTiny (2044)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2045    only    -    Jul    15    2:00    0    -
  {
    -55 /*fromYearTiny (2045)*/,
    -55 /*toYearTiny (2045)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2045    only    -    Aug    26    2:00    1:00    S
  {
    -55 /*fromYearTiny (2045)*/,
    -55 /*toYearTiny (2045)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2046    only    -    Jun    30    2:00    0    -
  {
    -54 /*fromYearTiny (2046)*/,
    -54 /*toYearTiny (2046)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2046    only    -    Aug    18    2:00    1:00    S
  {
    -54 /*fromYearTiny (2046)*/,
    -54 /*toYearTiny (2046)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2047    only    -    Jun    22    2:00    0    -
  {
    -53 /*fromYearTiny (2047)*/,
    -53 /*toYearTiny (2047)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2047    only    -    Aug     3    2:00    1:00    S
  {
    -53 /*fromYearTiny (2047)*/,
    -53 /*toYearTiny (2047)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2048    only    -    Jun     6    2:00    0    -
  {
    -52 /*fromYearTiny (2048)*/,
    -52 /*toYearTiny (2048)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2048    only    -    Jul    25    2:00    1:00    S
  {
    -52 /*fromYearTiny (2048)*/,
    -52 /*toYearTiny (2048)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2049    only    -    May    29    2:00    0    -
  {
    -51 /*fromYearTiny (2049)*/,
    -51 /*toYearTiny (2049)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2049    only    -    Jul    10    2:00    1:00    S
  {
    -51 /*fromYearTiny (2049)*/,
    -51 /*toYearTiny (2049)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2050    only    -    May    21    2:00    0    -
  {
    -50 /*fromYearTiny (2050)*/,
    -50 /*toYearTiny (2050)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2050    only    -    Jul     2    2:00    1:00    S
  {
    -50 /*fromYearTiny (2050)*/,
    -50 /*toYearTiny (2050)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2051    only    -    May     6    2:00    0    -
  {
    -49 /*fromYearTiny (2051)*/,
    -49 /*toYearTiny (2051)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2051    only    -    Jun    24    2:00    1:00    S
  {
    -49 /*fromYearTiny (2051)*/,
    -49 /*toYearTiny (2051)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2052    only    -    Apr    27    2:00    0    -
  {
    -48 /*fromYearTiny (2052)*/,
    -48 /*toYearTiny (2052)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2052    only    -    Jun     8    2:00    1:00    S
  {
    -48 /*fromYearTiny (2052)*/,
    -48 /*toYearTiny (2052)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2053    only    -    Apr    12    2:00    0    -
  {
    -47 /*fromYearTiny (2053)*/,
    -47 /*toYearTiny (2053)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2053    only    -    May    31    2:00    1:00    S
  {
    -47 /*fromYearTiny (2053)*/,
    -47 /*toYearTiny (2053)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    31 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2054    only    -    Apr     4    2:00    0    -
  {
    -46 /*fromYearTiny (2054)*/,
    -46 /*toYearTiny (2054)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2054    only    -    May    23    2:00    1:00    S
  {
    -46 /*fromYearTiny (2054)*/,
    -46 /*toYearTiny (2054)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2055    only    -    May     8    2:00    1:00    S
  {
    -45 /*fromYearTiny (2055)*/,
    -45 /*toYearTiny (2055)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2056    only    -    Apr    29    2:00    1:00    S
  {
    -44 /*fromYearTiny (2056)*/,
    -44 /*toYearTiny (2056)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2057    only    -    Apr    14    2:00    1:00    S
  {
    -43 /*fromYearTiny (2057)*/,
    -43 /*toYearTiny (2057)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2058    only    -    Apr     6    2:00    1:00    S
  {
    -42 /*fromYearTiny (2058)*/,
    -42 /*toYearTiny (2058)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2059    max    -    Mar    Sat<=30    2:00    1:00    S
  {
    -41 /*fromYearTiny (2059)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2068    only    -    Oct    20    2:00    0    -
  {
    -32 /*fromYearTiny (2068)*/,
    -32 /*toYearTiny (2068)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2069    only    -    Oct    12    2:00    0    -
  {
    -31 /*fromYearTiny (2069)*/,
    -31 /*toYearTiny (2069)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2070    only    -    Oct     4    2:00    0    -
  {
    -30 /*fromYearTiny (2070)*/,
    -30 /*toYearTiny (2070)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2071    only    -    Sep    19    2:00    0    -
  {
    -29 /*fromYearTiny (2071)*/,
    -29 /*toYearTiny (2071)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2072    only    -    Sep    10    2:00    0    -
  {
    -28 /*fromYearTiny (2072)*/,
    -28 /*toYearTiny (2072)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2072    only    -    Oct    22    2:00    1:00    S
  {
    -28 /*fromYearTiny (2072)*/,
    -28 /*toYearTiny (2072)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2072    max    -    Oct    Sat<=30    2:00    0    -
  {
    -28 /*fromYearTiny (2072)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    6 /*onDayOfWeek*/,
    -30 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2073    only    -    Sep     2    2:00    0    -
  {
    -27 /*fromYearTiny (2073)*/,
    -27 /*toYearTiny (2073)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2073    only    -    Oct    14    2:00    1:00    S
  {
    -27 /*fromYearTiny (2073)*/,
    -27 /*toYearTiny (2073)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2074    only    -    Aug    18    2:00    0    -
  {
    -26 /*fromYearTiny (2074)*/,
    -26 /*toYearTiny (2074)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    18 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2074    only    -    Oct     6    2:00    1:00    S
  {
    -26 /*fromYearTiny (2074)*/,
    -26 /*toYearTiny (2074)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2075    only    -    Aug    10    2:00    0    -
  {
    -25 /*fromYearTiny (2075)*/,
    -25 /*toYearTiny (2075)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    10 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2075    only    -    Sep    21    2:00    1:00    S
  {
    -25 /*fromYearTiny (2075)*/,
    -25 /*toYearTiny (2075)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2076    only    -    Jul    25    2:00    0    -
  {
    -24 /*fromYearTiny (2076)*/,
    -24 /*toYearTiny (2076)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2076    only    -    Sep    12    2:00    1:00    S
  {
    -24 /*fromYearTiny (2076)*/,
    -24 /*toYearTiny (2076)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2077    only    -    Jul    17    2:00    0    -
  {
    -23 /*fromYearTiny (2077)*/,
    -23 /*toYearTiny (2077)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2077    only    -    Sep     4    2:00    1:00    S
  {
    -23 /*fromYearTiny (2077)*/,
    -23 /*toYearTiny (2077)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    4 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2078    only    -    Jul     9    2:00    0    -
  {
    -22 /*fromYearTiny (2078)*/,
    -22 /*toYearTiny (2078)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2078    only    -    Aug    20    2:00    1:00    S
  {
    -22 /*fromYearTiny (2078)*/,
    -22 /*toYearTiny (2078)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    20 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2079    only    -    Jun    24    2:00    0    -
  {
    -21 /*fromYearTiny (2079)*/,
    -21 /*toYearTiny (2079)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2079    only    -    Aug    12    2:00    1:00    S
  {
    -21 /*fromYearTiny (2079)*/,
    -21 /*toYearTiny (2079)*/,
    8 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2080    only    -    Jun    15    2:00    0    -
  {
    -20 /*fromYearTiny (2080)*/,
    -20 /*toYearTiny (2080)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2080    only    -    Jul    27    2:00    1:00    S
  {
    -20 /*fromYearTiny (2080)*/,
    -20 /*toYearTiny (2080)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2081    only    -    Jun     7    2:00    0    -
  {
    -19 /*fromYearTiny (2081)*/,
    -19 /*toYearTiny (2081)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2081    only    -    Jul    19    2:00    1:00    S
  {
    -19 /*fromYearTiny (2081)*/,
    -19 /*toYearTiny (2081)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2082    only    -    May    23    2:00    0    -
  {
    -18 /*fromYearTiny (2082)*/,
    -18 /*toYearTiny (2082)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2082    only    -    Jul    11    2:00    1:00    S
  {
    -18 /*fromYearTiny (2082)*/,
    -18 /*toYearTiny (2082)*/,
    7 /*inMonth*/,
    0 /*onDayOfWeek*/,
    11 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2083    only    -    May    15    2:00    0    -
  {
    -17 /*fromYearTiny (2083)*/,
    -17 /*toYearTiny (2083)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2083    only    -    Jun    26    2:00    1:00    S
  {
    -17 /*fromYearTiny (2083)*/,
    -17 /*toYearTiny (2083)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    26 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2084    only    -    Apr    29    2:00    0    -
  {
    -16 /*fromYearTiny (2084)*/,
    -16 /*toYearTiny (2084)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2084    only    -    Jun    17    2:00    1:00    S
  {
    -16 /*fromYearTiny (2084)*/,
    -16 /*toYearTiny (2084)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    17 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2085    only    -    Apr    21    2:00    0    -
  {
    -15 /*fromYearTiny (2085)*/,
    -15 /*toYearTiny (2085)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    21 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2085    only    -    Jun     9    2:00    1:00    S
  {
    -15 /*fromYearTiny (2085)*/,
    -15 /*toYearTiny (2085)*/,
    6 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule Palestine    2086    only    -    Apr    13    2:00    0    -
  {
    -14 /*fromYearTiny (2086)*/,
    -14 /*toYearTiny (2086)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    13 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule Palestine    2086    only    -    May    25    2:00    1:00    S
  {
    -14 /*fromYearTiny (2086)*/,
    -14 /*toYearTiny (2086)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    25 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = {
  kZoneRulesPalestine /*rules*/,
  111 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Para
// Rules: 11
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Para    1997    only    -    Feb    lastSun    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    1996    2001    -    Oct    Sun>=1    0:00    1:00    -
  {
    -104 /*fromYearTiny (1996)*/,
    -99 /*toYearTiny (2001)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    1997    only    -    Feb    lastSun    0:00    0    -
  {
    -103 /*fromYearTiny (1997)*/,
    -103 /*toYearTiny (1997)*/,
    2 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    1998    2001    -    Mar    Sun>=1    0:00    0    -
  {
    -102 /*fromYearTiny (1998)*/,
    -99 /*toYearTiny (2001)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2002    2004    -    Apr    Sun>=1    0:00    0    -
  {
    -98 /*fromYearTiny (2002)*/,
    -96 /*toYearTiny (2004)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2002    2003    -    Sep    Sun>=1    0:00    1:00    -
  {
    -98 /*fromYearTiny (2002)*/,
    -97 /*toYearTiny (2003)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2004    2009    -    Oct    Sun>=15    0:00    1:00    -
  {
    -96 /*fromYearTiny (2004)*/,
    -91 /*toYearTiny (2009)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2005    2009    -    Mar    Sun>=8    0:00    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2010    2024    -    Oct    Sun>=1    0:00    1:00    -
  {
    -90 /*fromYearTiny (2010)*/,
    -76 /*toYearTiny (2024)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2010    2012    -    Apr    Sun>=8    0:00    0    -
  {
    -90 /*fromYearTiny (2010)*/,
    -88 /*toYearTiny (2012)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Para    2013    2024    -    Mar    Sun>=22    0:00    0    -
  {
    -87 /*fromYearTiny (2013)*/,
    -76 /*toYearTiny (2024)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPara ACE_TIME_PROGMEM = {
  kZoneRulesPara /*rules*/,
  11 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Peru
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Peru    1994    only    -    Apr     1    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
  kZoneRulesPeru /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Phil
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Phil    1990    only    -    Jul    28    24:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
  kZoneRulesPhil /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: ROK
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    ROK    1987    1988    -    Oct    Sun>=8     3:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
  kZoneRulesROK /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Russia
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesRussia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Russia    1984    1995    -    Sep    lastSun     2:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Russia    1984    1995    -    Sep    lastSun     2:00s    0    -
  {
    -116 /*fromYearTiny (1984)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Russia    1985    2010    -    Mar    lastSun     2:00s    1:00    S
  {
    -115 /*fromYearTiny (1985)*/,
    -90 /*toYearTiny (2010)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Russia    1996    2010    -    Oct    lastSun     2:00s    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    -90 /*toYearTiny (2010)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyRussia ACE_TIME_PROGMEM = {
  kZoneRulesRussia /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: RussiaAsia
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule RussiaAsia    1984    1995    -    Sep    lastSun     2:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule RussiaAsia    1984    1995    -    Sep    lastSun     2:00s    0    -
  {
    -116 /*fromYearTiny (1984)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule RussiaAsia    1985    2010    -    Mar    lastSun     2:00s    1:00    -
  {
    -115 /*fromYearTiny (1985)*/,
    -90 /*toYearTiny (2010)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule RussiaAsia    1996    2010    -    Oct    lastSun     2:00s    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    -90 /*toYearTiny (2010)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
  kZoneRulesRussiaAsia /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: SA
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    SA    1943    1944    -    Mar    Sun>=15    2:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
  kZoneRulesSA /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Salv
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Salv    1987    1988    -    Sep    lastSun    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
  kZoneRulesSalv /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: SanLuis
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesSanLuis[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    SanLuis    2008    2009    -    Mar    Sun>=8    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    SanLuis    2008    2009    -    Mar    Sun>=8    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    SanLuis    2007    2008    -    Oct    Sun>=8    0:00    1:00    -
  {
    -93 /*fromYearTiny (2007)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicySanLuis ACE_TIME_PROGMEM = {
  kZoneRulesSanLuis /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: StJohns
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesStJohns[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    StJohns    1987    2006    -    Oct    lastSun    0:01    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    StJohns    1987    2006    -    Oct    lastSun    0:01    0    S
  {
    -113 /*fromYearTiny (1987)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    StJohns    1988    only    -    Apr    Sun>=1    0:01    2:00    DD
  {
    -112 /*fromYearTiny (1988)*/,
    -112 /*toYearTiny (1988)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
    6 /*letterIndex ("DD")*/,
  },
  // Rule    StJohns    1989    2006    -    Apr    Sun>=1    0:01    1:00    D
  {
    -111 /*fromYearTiny (1989)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    StJohns    2007    2011    -    Mar    Sun>=8    0:01    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    -89 /*toYearTiny (2011)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    StJohns    2007    2010    -    Nov    Sun>=1    0:01    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -90 /*toYearTiny (2010)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    1 /*atTimeModifier (kSuffixW + minute=1)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyStJohns ACE_TIME_PROGMEM = {
  kZoneRulesStJohns /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Sudan
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesSudan[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Sudan    1970    1985    -    Oct    15    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicySudan ACE_TIME_PROGMEM = {
  kZoneRulesSudan /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Syria
// Rules: 13
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesSyria[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Syria    1994    2005    -    Oct     1    0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Syria    1994    2005    -    Oct     1    0:00    0    -
  {
    -106 /*fromYearTiny (1994)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Syria    1997    1998    -    Mar    lastMon    0:00    1:00    S
  {
    -103 /*fromYearTiny (1997)*/,
    -102 /*toYearTiny (1998)*/,
    3 /*inMonth*/,
    1 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    1999    2006    -    Apr     1    0:00    1:00    S
  {
    -101 /*fromYearTiny (1999)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2006    only    -    Sep    22    0:00    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Syria    2007    only    -    Mar    lastFri    0:00    1:00    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2007    only    -    Nov     Fri>=1    0:00    0    -
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    11 /*inMonth*/,
    5 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Syria    2008    only    -    Apr    Fri>=1    0:00    1:00    S
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2008    only    -    Nov    1    0:00    0    -
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    11 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Syria    2009    only    -    Mar    lastFri    0:00    1:00    S
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2010    2011    -    Apr    Fri>=1    0:00    1:00    S
  {
    -90 /*fromYearTiny (2010)*/,
    -89 /*toYearTiny (2011)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2012    2022    -    Mar    lastFri    0:00    1:00    S
  {
    -88 /*fromYearTiny (2012)*/,
    -78 /*toYearTiny (2022)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Syria    2009    2022    -    Oct    lastFri    0:00    0    -
  {
    -91 /*fromYearTiny (2009)*/,
    -78 /*toYearTiny (2022)*/,
    10 /*inMonth*/,
    5 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicySyria ACE_TIME_PROGMEM = {
  kZoneRulesSyria /*rules*/,
  13 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Taiwan
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Taiwan    1979    only    -    Oct    1    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
  kZoneRulesTaiwan /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Thule
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Thule    1991    1992    -    Sep    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Thule    1991    1992    -    Sep    lastSun    2:00    0    S
  {
    -109 /*fromYearTiny (1991)*/,
    -108 /*toYearTiny (1992)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Thule    1993    2006    -    Apr    Sun>=1    2:00    1:00    D
  {
    -107 /*fromYearTiny (1993)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Thule    1993    2006    -    Oct    lastSun    2:00    0    S
  {
    -107 /*fromYearTiny (1993)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Thule    2007    max    -    Mar    Sun>=8    2:00    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Thule    2007    max    -    Nov    Sun>=1    2:00    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
  kZoneRulesThule /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Tonga
// Rules: 7
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Tonga    2000    only    -    Mar    19    2:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    1999    only    -    Oct     7    2:00s    1:00    -
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    2000    only    -    Mar    19    2:00s    0    -
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    2000    2001    -    Nov    Sun>=1    2:00    1:00    -
  {
    -100 /*fromYearTiny (2000)*/,
    -99 /*toYearTiny (2001)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    2001    2002    -    Jan    lastSun    2:00    0    -
  {
    -99 /*fromYearTiny (2001)*/,
    -98 /*toYearTiny (2002)*/,
    1 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    2016    only    -    Nov    Sun>=1    2:00    1:00    -
  {
    -84 /*fromYearTiny (2016)*/,
    -84 /*toYearTiny (2016)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tonga    2017    only    -    Jan    Sun>=15    3:00    0    -
  {
    -83 /*fromYearTiny (2017)*/,
    -83 /*toYearTiny (2017)*/,
    1 /*inMonth*/,
    7 /*onDayOfWeek*/,
    15 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
  kZoneRulesTonga /*rules*/,
  7 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Troll
// Rules: 3
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesTroll[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Troll    2004    max    -    Oct    lastSun    1:00u    0:00    +00
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    1 /*letterIndex ("+00")*/,
  },
  // Rule    Troll    2005    max    -    Mar    lastSun    1:00u    2:00    +02
  {
    -95 /*fromYearTiny (2005)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
    2 /*letterIndex ("+02")*/,
  },
  // Rule    Troll    2004    max    -    Oct    lastSun    1:00u    0:00    +00
  {
    -96 /*fromYearTiny (2004)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    32 /*atTimeModifier (kSuffixU + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    1 /*letterIndex ("+00")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = {
  kZoneRulesTroll /*rules*/,
  3 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Tunisia
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Tunisia    1988    1990    -    Sep    lastSun     0:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tunisia    1988    1990    -    Sep    lastSun     0:00s    0    -
  {
    -112 /*fromYearTiny (1988)*/,
    -110 /*toYearTiny (1990)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tunisia    2005    only    -    May     1     0:00s    1:00    S
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    5 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Tunisia    2005    only    -    Sep    30     1:00s    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    30 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Tunisia    2006    2008    -    Mar    lastSun     2:00s    1:00    S
  {
    -94 /*fromYearTiny (2006)*/,
    -92 /*toYearTiny (2008)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Tunisia    2006    2008    -    Oct    lastSun     2:00s    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
  kZoneRulesTunisia /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Turkey
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesTurkey[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Turkey    1986    1995    -    Sep    lastSun    1:00s    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Turkey    1986    1995    -    Sep    lastSun    1:00s    0    -
  {
    -114 /*fromYearTiny (1986)*/,
    -105 /*toYearTiny (1995)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Turkey    1995    2006    -    Mar    lastSun    1:00s    1:00    S
  {
    -105 /*fromYearTiny (1995)*/,
    -94 /*toYearTiny (2006)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Turkey    1996    2006    -    Oct    lastSun    1:00s    0    -
  {
    -104 /*fromYearTiny (1996)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyTurkey ACE_TIME_PROGMEM = {
  kZoneRulesTurkey /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: US
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    US    1967    2006    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    US    1967    2006    -    Oct    lastSun    2:00    0    S
  {
    -127 /*fromYearTiny (1967)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    US    1976    1986    -    Apr    lastSun    2:00    1:00    D
  {
    -124 /*fromYearTiny (1976)*/,
    -114 /*toYearTiny (1986)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    US    1987    2006    -    Apr    Sun>=1    2:00    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -94 /*toYearTiny (2006)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    US    2007    max    -    Mar    Sun>=8    2:00    1:00    D
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    US    2007    max    -    Nov    Sun>=1    2:00    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    126 /*toYearTiny (32766)*/,
    11 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
  kZoneRulesUS /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Uruguay
// Rules: 7
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Uruguay    1993    only    -    Feb    28     0:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    1993    only    -    Feb    28     0:00    0    -
  {
    -107 /*fromYearTiny (1993)*/,
    -107 /*toYearTiny (1993)*/,
    2 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    2004    only    -    Sep    19     0:00    1:00    -
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    19 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    2005    only    -    Mar    27     2:00    0    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    2005    only    -    Oct     9     2:00    1:00    -
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    2006    2015    -    Mar    Sun>=8     2:00    0    -
  {
    -94 /*fromYearTiny (2006)*/,
    -85 /*toYearTiny (2015)*/,
    3 /*inMonth*/,
    7 /*onDayOfWeek*/,
    8 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    Uruguay    2006    2014    -    Oct    Sun>=1     2:00    1:00    -
  {
    -94 /*fromYearTiny (2006)*/,
    -86 /*toYearTiny (2014)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
  kZoneRulesUruguay /*rules*/,
  7 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Vanuatu
// Rules: 1
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Vanuatu    1992    1993    -    Jan    Sat>=22    24:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
  kZoneRulesVanuatu /*rules*/,
  1 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: WS
// Rules: 6
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    WS    2011    only    -    Apr    Sat>=1    4:00    0    -
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    WS    2010    only    -    Sep    lastSun    0:00    1    -
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    WS    2011    only    -    Apr    Sat>=1    4:00    0    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    4 /*inMonth*/,
    6 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    WS    2011    only    -    Sep    lastSat    3:00    1    -
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    9 /*inMonth*/,
    6 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    WS    2012    2021    -    Apr    Sun>=1    4:00    0    -
  {
    -88 /*fromYearTiny (2012)*/,
    -79 /*toYearTiny (2021)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    16 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },
  // Rule    WS    2012    2020    -    Sep    lastSun    3:00    1    -
  {
    -88 /*fromYearTiny (2012)*/,
    -80 /*toYearTiny (2020)*/,
    9 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    12 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    0 /*letterIndex ("")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
  kZoneRulesWS /*rules*/,
  6 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Winn
// Rules: 4
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Winn    1966    2005    -    Oct    lastSun    2:00s    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Winn    1966    1986    -    Apr    lastSun    2:00s    1:00    D
  {
    -127 /*fromYearTiny (1966)*/,
    -114 /*toYearTiny (1986)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Winn    1966    2005    -    Oct    lastSun    2:00s    0    S
  {
    -127 /*fromYearTiny (1966)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Winn    1987    2005    -    Apr    Sun>=1    2:00s    1:00    D
  {
    -113 /*fromYearTiny (1987)*/,
    -95 /*toYearTiny (2005)*/,
    4 /*inMonth*/,
    7 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    16 /*atTimeModifier (kSuffixS + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
  kZoneRulesWinn /*rules*/,
  4 /*numRules*/,
};

//---------------------------------------------------------------------------
// Policy name: Zion
// Rules: 25
//---------------------------------------------------------------------------

static const extended::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
  // Anchor: Rule    Zion    1998    only    -    Sep     6    0:00    0    S
  {
    -127 /*fromYearTiny (-32767)*/,
    -127 /*toYearTiny (-32767)*/,
    1 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    1998    only    -    Sep     6    0:00    0    S
  {
    -102 /*fromYearTiny (1998)*/,
    -102 /*toYearTiny (1998)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    0 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    1999    only    -    Apr     2    2:00    1:00    D
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    1999    only    -    Sep     3    2:00    0    S
  {
    -101 /*fromYearTiny (1999)*/,
    -101 /*toYearTiny (1999)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2000    only    -    Apr    14    2:00    1:00    D
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    14 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2000    only    -    Oct     6    1:00    0    S
  {
    -100 /*fromYearTiny (2000)*/,
    -100 /*toYearTiny (2000)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    6 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2001    only    -    Apr     9    1:00    1:00    D
  {
    -99 /*fromYearTiny (2001)*/,
    -99 /*toYearTiny (2001)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2001    only    -    Sep    24    1:00    0    S
  {
    -99 /*fromYearTiny (2001)*/,
    -99 /*toYearTiny (2001)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    24 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2002    only    -    Mar    29    1:00    1:00    D
  {
    -98 /*fromYearTiny (2002)*/,
    -98 /*toYearTiny (2002)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    29 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2002    only    -    Oct     7    1:00    0    S
  {
    -98 /*fromYearTiny (2002)*/,
    -98 /*toYearTiny (2002)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2003    only    -    Mar    28    1:00    1:00    D
  {
    -97 /*fromYearTiny (2003)*/,
    -97 /*toYearTiny (2003)*/,
    3 /*inMonth*/,
    0 /*onDayOfWeek*/,
    28 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2003    only    -    Oct     3    1:00    0    S
  {
    -97 /*fromYearTiny (2003)*/,
    -97 /*toYearTiny (2003)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    3 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2004    only    -    Apr     7    1:00    1:00    D
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    4 /*inMonth*/,
    0 /*onDayOfWeek*/,
    7 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2004    only    -    Sep    22    1:00    0    S
  {
    -96 /*fromYearTiny (2004)*/,
    -96 /*toYearTiny (2004)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    22 /*onDayOfMonth*/,
    4 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2005    2012    -    Apr    Fri<=1    2:00    1:00    D
  {
    -95 /*fromYearTiny (2005)*/,
    -88 /*toYearTiny (2012)*/,
    4 /*inMonth*/,
    5 /*onDayOfWeek*/,
    -1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2005    only    -    Oct     9    2:00    0    S
  {
    -95 /*fromYearTiny (2005)*/,
    -95 /*toYearTiny (2005)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    9 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2006    only    -    Oct     1    2:00    0    S
  {
    -94 /*fromYearTiny (2006)*/,
    -94 /*toYearTiny (2006)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    1 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2007    only    -    Sep    16    2:00    0    S
  {
    -93 /*fromYearTiny (2007)*/,
    -93 /*toYearTiny (2007)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    16 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2008    only    -    Oct     5    2:00    0    S
  {
    -92 /*fromYearTiny (2008)*/,
    -92 /*toYearTiny (2008)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    5 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2009    only    -    Sep    27    2:00    0    S
  {
    -91 /*fromYearTiny (2009)*/,
    -91 /*toYearTiny (2009)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    27 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2010    only    -    Sep    12    2:00    0    S
  {
    -90 /*fromYearTiny (2010)*/,
    -90 /*toYearTiny (2010)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    12 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2011    only    -    Oct     2    2:00    0    S
  {
    -89 /*fromYearTiny (2011)*/,
    -89 /*toYearTiny (2011)*/,
    10 /*inMonth*/,
    0 /*onDayOfWeek*/,
    2 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2012    only    -    Sep    23    2:00    0    S
  {
    -88 /*fromYearTiny (2012)*/,
    -88 /*toYearTiny (2012)*/,
    9 /*inMonth*/,
    0 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },
  // Rule    Zion    2013    max    -    Mar    Fri>=23    2:00    1:00    D
  {
    -87 /*fromYearTiny (2013)*/,
    126 /*toYearTiny (32766)*/,
    3 /*inMonth*/,
    5 /*onDayOfWeek*/,
    23 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
    5 /*letterIndex ("D")*/,
  },
  // Rule    Zion    2013    max    -    Oct    lastSun    2:00    0    S
  {
    -87 /*fromYearTiny (2013)*/,
    126 /*toYearTiny (32766)*/,
    10 /*inMonth*/,
    7 /*onDayOfWeek*/,
    0 /*onDayOfMonth*/,
    8 /*atTimeCode*/,
    0 /*atTimeModifier (kSuffixW + minute=0)*/,
    4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
    7 /*letterIndex ("S")*/,
  },

};

const extended::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
  kZoneRulesZion /*rules*/,
  25 /*numRules*/,
};



}
}
