diff --git a/scripts/TimeZones.csx b/scripts/TimeZones.csx index 865b466e2..d0a39ba00 100644 --- a/scripts/TimeZones.csx +++ b/scripts/TimeZones.csx @@ -69,31 +69,7 @@ stream.WriteLine(" * Automatically generated with scripts/TimeZones.csx"); stream.WriteLine(" */ "); stream.WriteLine(); -stream.WriteLine("#pragma pack(push, 1)"); -stream.WriteLine("struct _TIME_ZONE_RULE_ENTRY"); -stream.WriteLine("{"); -stream.WriteLine("\tUINT64 TicksStart;"); -stream.WriteLine("\tUINT64 TicksEnd;"); -stream.WriteLine("\tINT32 DaylightDelta;"); -stream.WriteLine("\tSYSTEMTIME StandardDate;"); -stream.WriteLine("\tSYSTEMTIME DaylightDate;"); -stream.WriteLine("};"); -stream.WriteLine("typedef struct _TIME_ZONE_RULE_ENTRY TIME_ZONE_RULE_ENTRY;"); -stream.WriteLine(); - -stream.WriteLine("struct _TIME_ZONE_ENTRY"); -stream.WriteLine("{"); -stream.WriteLine("\tconst char* Id;"); -stream.WriteLine("\tINT32 Bias;"); -stream.WriteLine("\tBOOL SupportsDST;"); -stream.WriteLine("\tconst char* DisplayName;"); -stream.WriteLine("\tconst char* StandardName;"); -stream.WriteLine("\tconst char* DaylightName;"); -stream.WriteLine("\tconst TIME_ZONE_RULE_ENTRY* RuleTable;"); -stream.WriteLine("\tUINT32 RuleTableCount;"); -stream.WriteLine("};"); -stream.WriteLine("typedef struct _TIME_ZONE_ENTRY TIME_ZONE_ENTRY;"); -stream.WriteLine("#pragma pack(pop)"); +stream.WriteLine("#include \"TimeZones.h\""); stream.WriteLine(); index = 0; @@ -175,7 +151,7 @@ foreach (TimeZoneInfo timeZone in timeZones) } index = 0; -stream.WriteLine("static const TIME_ZONE_ENTRY TimeZoneTable[] ="); +stream.WriteLine("const TIME_ZONE_ENTRY TimeZoneTable[] ="); stream.WriteLine("{"); foreach (TimeZoneInfo timeZone in timeZones) @@ -222,6 +198,8 @@ foreach (TimeZoneInfo timeZone in timeZones) } stream.WriteLine("};"); stream.WriteLine(); +stream.WriteLine("const size_t TimeZoneTableNrElements = ARRAYSIZE(TimeZoneTable);"); +stream.WriteLine(); stream.Close(); diff --git a/winpr/libwinpr/timezone/TimeZones.c b/winpr/libwinpr/timezone/TimeZones.c index d8b628029..9d554dadc 100644 --- a/winpr/libwinpr/timezone/TimeZones.c +++ b/winpr/libwinpr/timezone/TimeZones.c @@ -166,11 +166,32 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_15[] = { { { 0, 1, 0, 1, 0, 0, 0, 0 }, }, { - 3155378076000000000ULL, + 636187356000000000ULL, 635871996000000000ULL, 60, { 0, 5, 6, 2, 22, 0, 0, 0 }, { 0, 8, 6, 2, 22, 0, 0, 0 }, + }, + { + 636502716000000000ULL, + 636188220000000000ULL, + 60, + { 0, 5, 6, 2, 22, 0, 0, 0 }, + { 0, 8, 6, 2, 22, 0, 0, 0 }, + }, + { + 636818076000000000ULL, + 636503580000000000ULL, + 60, + { 0, 5, 6, 2, 22, 0, 0, 0 }, + { 0, 8, 6, 2, 22, 0, 0, 0 }, + }, + { + 3155378076000000000ULL, + 636818940000000000ULL, + 60, + { 0, 4, 6, 1, 22, 0, 0, 0 }, + { 0, 9, 6, 1, 22, 0, 0, 0 }, } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_16[] = { { @@ -380,7 +401,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_24[] = { { 636503580000000000ULL, 60, { 0, 11, 0, 1, 2, 0, 0, 0 }, - { 0, 1, 1, 1, 0, 0, 0, 0 }, + { 0, 3, 0, 2, 2, 0, 0, 0 }, }, { 3155378076000000000ULL, @@ -684,155 +705,8 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_28[] = { { 637133436000000000ULL, 636818940000000000ULL, 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 637449660000000000ULL, - 637134300000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 637765020000000000ULL, - 637450524000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638080380000000000ULL, - 637765884000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638395740000000000ULL, - 638081244000000000ULL, - 60, - { 0, 2, 6, 5, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638711964000000000ULL, - 638396604000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639027324000000000ULL, - 638712828000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639342684000000000ULL, - 639028188000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 639658044000000000ULL, - 639343548000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639974268000000000ULL, - 639658908000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640289628000000000ULL, - 639975132000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640604988000000000ULL, - 640290492000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640920348000000000ULL, - 640605852000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641236572000000000ULL, - 640921212000000000ULL, - 60, - { 0, 2, 6, 2, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641551932000000000ULL, - 641237436000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641867292000000000ULL, - 641552796000000000ULL, - 60, - { 0, 2, 6, 5, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642182652000000000ULL, - 641868156000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642498876000000000ULL, - 642183516000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642814236000000000ULL, - 642499740000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 643129596000000000ULL, - 642815100000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 643444956000000000ULL, - 643130460000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 3155378076000000000ULL, - 643445820000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, + { 0, 2, 0, 3, 0, 0, 0, 0 }, + { 0, 1, 2, 1, 0, 0, 0, 0 }, } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_30[] = { { @@ -899,11 +773,32 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_30[] = { { { 0, 1, 0, 1, 0, 0, 0, 0 }, }, { - 3155378076000000000ULL, + 636187356000000000ULL, 635871996000000000ULL, 60, { 0, 5, 6, 2, 23, 59, 59, 999 }, { 0, 8, 6, 2, 23, 59, 59, 999 }, + }, + { + 636502716000000000ULL, + 636188220000000000ULL, + 60, + { 0, 5, 6, 2, 23, 59, 59, 999 }, + { 0, 8, 6, 2, 23, 59, 59, 999 }, + }, + { + 636818076000000000ULL, + 636503580000000000ULL, + 60, + { 0, 5, 6, 2, 23, 59, 59, 999 }, + { 0, 8, 6, 2, 23, 59, 59, 999 }, + }, + { + 3155378076000000000ULL, + 636818940000000000ULL, + 60, + { 0, 4, 6, 1, 23, 59, 59, 999 }, + { 0, 9, 6, 1, 23, 59, 59, 999 }, } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_31[] = { { @@ -1080,155 +975,8 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_33[] = { { 637133436000000000ULL, 636818940000000000ULL, 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 637449660000000000ULL, - 637134300000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 637765020000000000ULL, - 637450524000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638080380000000000ULL, - 637765884000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638395740000000000ULL, - 638081244000000000ULL, - 60, - { 0, 2, 6, 5, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 638711964000000000ULL, - 638396604000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639027324000000000ULL, - 638712828000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639342684000000000ULL, - 639028188000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 639658044000000000ULL, - 639343548000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 639974268000000000ULL, - 639658908000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640289628000000000ULL, - 639975132000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640604988000000000ULL, - 640290492000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 640920348000000000ULL, - 640605852000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641236572000000000ULL, - 640921212000000000ULL, - 60, - { 0, 2, 6, 2, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641551932000000000ULL, - 641237436000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 641867292000000000ULL, - 641552796000000000ULL, - 60, - { 0, 2, 6, 5, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642182652000000000ULL, - 641868156000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642498876000000000ULL, - 642183516000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 642814236000000000ULL, - 642499740000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 10, 6, 5, 23, 59, 59, 999 }, - }, - { - 643129596000000000ULL, - 642815100000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 643444956000000000ULL, - 643130460000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, - }, - { - 3155378076000000000ULL, - 643445820000000000ULL, - 60, - { 0, 2, 6, 3, 23, 59, 59, 999 }, - { 0, 11, 6, 1, 23, 59, 59, 999 }, + { 0, 2, 0, 3, 0, 0, 0, 0 }, + { 0, 1, 2, 1, 0, 0, 0, 0 }, } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_35[] = { { @@ -1506,6 +1254,29 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_43[] = { { } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_46[] = { { + 3155378076000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 3, 0, 5, 1, 0, 0, 0 }, +} }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_48[] = { { + 636818076000000000ULL, + 636503580000000000ULL, + -60, + { 0, 1, 1, 1, 1, 0, 0, 0 }, + { 0, 1, 1, 1, 0, 0, 0, 0 }, + }, + { + 637133436000000000ULL, + 636818940000000000ULL, + 60, + { 0, 1, 2, 1, 2, 0, 0, 0 }, + { 0, 1, 2, 1, 0, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_49[] = { { 633662748000000000ULL, 633347388000000000ULL, 60, @@ -1579,33 +1350,24 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_46[] = { { 636818076000000000ULL, 636503580000000000ULL, 60, - { 0, 10, 0, 5, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, + { 0, 10, 0, 4, 3, 0, 0, 0 }, + { 0, 3, 0, 4, 2, 0, 0, 0 }, + }, + { + 637133436000000000ULL, + 636818940000000000ULL, + 60, + { 0, 1, 2, 1, 0, 0, 0, 0 }, + { 0, 6, 0, 2, 2, 0, 0, 0 }, }, { 3155378076000000000ULL, - 636818940000000000ULL, + 637134300000000000ULL, 60, - { 0, 10, 0, 4, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, + { 0, 4, 0, 3, 3, 0, 0, 0 }, + { 0, 5, 0, 4, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_47[] = { { - 3155378076000000000ULL, - 0ULL, - 60, - { 0, 10, 0, 5, 2, 0, 0, 0 }, - { 0, 3, 0, 5, 1, 0, 0, 0 }, -} }; - -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_49[] = { { - 3155378076000000000ULL, - 0ULL, - 60, - { 0, 10, 0, 5, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, -} }; - static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_50[] = { { 3155378076000000000ULL, 0ULL, @@ -1623,19 +1385,12 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_51[] = { { } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_52[] = { { - 636502716000000000ULL, - 0ULL, - 0, - { 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0, 0, 0, 0 }, - }, - { - 636818076000000000ULL, - 636503580000000000ULL, - -60, - { 0, 1, 1, 1, 1, 0, 0, 0 }, - { 0, 1, 1, 1, 0, 0, 0, 0 }, - } }; + 3155378076000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 3, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, +} }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_53[] = { { 3155378076000000000ULL, @@ -1995,11 +1750,25 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_61[] = { { { 0, 3, 6, 5, 1, 0, 0, 0 }, }, { - 3155378076000000000ULL, + 636818076000000000ULL, 636503580000000000ULL, 60, { 0, 10, 6, 5, 1, 0, 0, 0 }, { 0, 3, 6, 4, 1, 0, 0, 0 }, + }, + { + 637133436000000000ULL, + 636818940000000000ULL, + 60, + { 0, 10, 6, 4, 1, 0, 0, 0 }, + { 0, 3, 5, 5, 0, 0, 0, 0 }, + }, + { + 3155378076000000000ULL, + 637134300000000000ULL, + 60, + { 0, 10, 6, 5, 1, 0, 0, 0 }, + { 0, 3, 5, 4, 0, 0, 0, 0 }, } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_63[] = { { @@ -2607,6 +2376,56 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_81[] = { { } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_83[] = { { + 634293468000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 3, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 634608828000000000ULL, + 634294332000000000ULL, + 60, + { 0, 1, 6, 1, 0, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 635555772000000000ULL, + 635241276000000000ULL, + 60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 3, 1, 0, 0, 0, 0 }, + }, + { + 635871132000000000ULL, + 635556636000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636187356000000000ULL, + 635871996000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636502716000000000ULL, + 636188220000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636818076000000000ULL, + 636503580000000000ULL, + -60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 1, 1, 0, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_84[] = { { 634608828000000000ULL, 0ULL, 60, @@ -2614,7 +2433,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_83[] = { { { 0, 3, 0, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_86[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_87[] = { { 634293468000000000ULL, 0ULL, 60, @@ -2650,7 +2469,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_86[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_87[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_88[] = { { 633662748000000000ULL, 633347388000000000ULL, 60, @@ -2665,7 +2484,22 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_87[] = { { { 0, 4, 2, 2, 23, 59, 59, 999 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_92[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_89[] = { { + 636502716000000000ULL, + 0ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636818076000000000ULL, + 636503580000000000ULL, + 60, + { 0, 12, 5, 3, 0, 0, 0, 0 }, + { 0, 1, 1, 1, 0, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_94[] = { { 633978108000000000ULL, 633663612000000000ULL, 60, @@ -2673,7 +2507,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_92[] = { { { 0, 6, 5, 3, 23, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_93[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_95[] = { { 634293468000000000ULL, 0ULL, 60, @@ -2709,7 +2543,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_93[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_96[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_98[] = { { 634293468000000000ULL, 0ULL, 60, @@ -2745,7 +2579,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_96[] = { { { 0, 1, 5, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_97[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_99[] = { { 633031164000000000ULL, 0ULL, 60, @@ -2767,78 +2601,6 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_97[] = { { { 0, 3, 6, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_98[] = { { - 634293468000000000ULL, - 0ULL, - 60, - { 0, 10, 0, 5, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, - { - 634608828000000000ULL, - 634294332000000000ULL, - 60, - { 0, 1, 6, 1, 0, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, - { - 634925052000000000ULL, - 634609692000000000ULL, - 0, - { 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0, 0, 0, 0 }, - }, - { - 635240412000000000ULL, - 634925916000000000ULL, - 0, - { 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0, 0, 0, 0 }, - }, - { - 635555772000000000ULL, - 635241276000000000ULL, - 60, - { 0, 10, 0, 5, 2, 0, 0, 0 }, - { 0, 1, 3, 1, 0, 0, 0, 0 }, - } }; - -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_99[] = { { - 634293468000000000ULL, - 0ULL, - 60, - { 0, 10, 0, 5, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, - { - 634608828000000000ULL, - 634294332000000000ULL, - 60, - { 0, 1, 6, 1, 0, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, - { - 635555772000000000ULL, - 635241276000000000ULL, - 60, - { 0, 10, 0, 5, 2, 0, 0, 0 }, - { 0, 1, 3, 1, 0, 0, 0, 0 }, - }, - { - 635871132000000000ULL, - 635556636000000000ULL, - 0, - { 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0, 0, 0, 0 }, - }, - { - 636187356000000000ULL, - 635871996000000000ULL, - -60, - { 0, 7, 0, 4, 2, 0, 0, 0 }, - { 0, 1, 5, 1, 0, 0, 0, 0 }, - } }; - static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_100[] = { { 634293468000000000ULL, 0ULL, @@ -2853,42 +2615,6 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_100[] = { { { 0, 1, 6, 1, 0, 0, 0, 0 }, { 0, 3, 0, 5, 2, 0, 0, 0 }, }, - { - 635555772000000000ULL, - 635241276000000000ULL, - 60, - { 0, 10, 0, 5, 2, 0, 0, 0 }, - { 0, 1, 3, 1, 0, 0, 0, 0 }, - }, - { - 635871132000000000ULL, - 635556636000000000ULL, - 0, - { 0, 1, 0, 1, 0, 0, 0, 1 }, - { 0, 1, 0, 1, 0, 0, 0, 0 }, - }, - { - 636187356000000000ULL, - 635871996000000000ULL, - -60, - { 0, 5, 0, 5, 2, 0, 0, 0 }, - { 0, 1, 5, 1, 0, 0, 0, 0 }, - } }; - -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_102[] = { { - 634293468000000000ULL, - 0ULL, - 60, - { 0, 10, 0, 5, 3, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, - { - 634608828000000000ULL, - 634294332000000000ULL, - 60, - { 0, 1, 6, 1, 0, 0, 0, 0 }, - { 0, 3, 0, 5, 2, 0, 0, 0 }, - }, { 634925052000000000ULL, 634609692000000000ULL, @@ -2911,7 +2637,115 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_102[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_101[] = { { + 634293468000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 3, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 634608828000000000ULL, + 634294332000000000ULL, + 60, + { 0, 1, 6, 1, 0, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 635555772000000000ULL, + 635241276000000000ULL, + 60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 3, 1, 0, 0, 0, 0 }, + }, + { + 635871132000000000ULL, + 635556636000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636187356000000000ULL, + 635871996000000000ULL, + -60, + { 0, 7, 0, 4, 2, 0, 0, 0 }, + { 0, 1, 5, 1, 0, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_102[] = { { + 634293468000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 3, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 634608828000000000ULL, + 634294332000000000ULL, + 60, + { 0, 1, 6, 1, 0, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 635555772000000000ULL, + 635241276000000000ULL, + 60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 3, 1, 0, 0, 0, 0 }, + }, + { + 635871132000000000ULL, + 635556636000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 636187356000000000ULL, + 635871996000000000ULL, + -60, + { 0, 5, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 5, 1, 0, 0, 0, 0 }, + } }; + static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_104[] = { { + 634293468000000000ULL, + 0ULL, + 60, + { 0, 10, 0, 5, 3, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 634608828000000000ULL, + 634294332000000000ULL, + 60, + { 0, 1, 6, 1, 0, 0, 0, 0 }, + { 0, 3, 0, 5, 2, 0, 0, 0 }, + }, + { + 634925052000000000ULL, + 634609692000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 635240412000000000ULL, + 634925916000000000ULL, + 0, + { 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0 }, + }, + { + 635555772000000000ULL, + 635241276000000000ULL, + 60, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + { 0, 1, 3, 1, 0, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_106[] = { { 633031164000000000ULL, 632716668000000000ULL, 60, @@ -2940,7 +2774,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_104[] = { { { 0, 1, 4, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_106[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_108[] = { { 635871132000000000ULL, 635556636000000000ULL, 60, @@ -2955,7 +2789,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_106[] = { { { 0, 3, 6, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_108[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_110[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3005,7 +2839,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_108[] = { { { 0, 1, 5, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_110[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_112[] = { { 635871132000000000ULL, 635556636000000000ULL, 30, @@ -3034,7 +2868,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_110[] = { { { 0, 1, 1, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_112[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_114[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3070,22 +2904,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_112[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_113[] = { { - 633346524000000000ULL, - 0ULL, - 60, - { 0, 3, 0, 5, 3, 0, 0, 0 }, - { 0, 10, 0, 5, 2, 0, 0, 0 }, - }, - { - 3155378076000000000ULL, - 633347388000000000ULL, - 60, - { 0, 4, 0, 1, 3, 0, 0, 0 }, - { 0, 10, 0, 1, 2, 0, 0, 0 }, - } }; - -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_116[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_115[] = { { 633346524000000000ULL, 0ULL, 60, @@ -3101,6 +2920,21 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_116[] = { { } }; static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_118[] = { { + 633346524000000000ULL, + 0ULL, + 60, + { 0, 3, 0, 5, 3, 0, 0, 0 }, + { 0, 10, 0, 5, 2, 0, 0, 0 }, + }, + { + 3155378076000000000ULL, + 633347388000000000ULL, + 60, + { 0, 4, 0, 1, 3, 0, 0, 0 }, + { 0, 10, 0, 1, 2, 0, 0, 0 }, + } }; + +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_120[] = { { 633346524000000000ULL, 0ULL, 60, @@ -3115,7 +2949,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_118[] = { { { 0, 10, 0, 1, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_119[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_121[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3151,7 +2985,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_119[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_120[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_122[] = { { 632715804000000000ULL, 0ULL, 30, @@ -3180,7 +3014,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_120[] = { { { 0, 10, 0, 1, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_121[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_123[] = { { 635240412000000000ULL, 0ULL, 0, @@ -3195,7 +3029,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_121[] = { { { 0, 12, 0, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_122[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_124[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3231,7 +3065,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_122[] = { { { 0, 1, 3, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_123[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_125[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3281,7 +3115,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_123[] = { { { 0, 1, 5, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_124[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_126[] = { { 635555772000000000ULL, 0ULL, 0, @@ -3294,9 +3128,23 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_124[] = { { 30, { 0, 10, 0, 1, 2, 0, 0, 0 }, { 0, 1, 4, 1, 0, 0, 0, 0 }, + }, + { + 637133436000000000ULL, + 636818940000000000ULL, + 60, + { 0, 1, 2, 1, 0, 0, 0, 0 }, + { 0, 10, 0, 1, 2, 0, 0, 0 }, + }, + { + 3155378076000000000ULL, + 637134300000000000ULL, + 60, + { 0, 4, 0, 1, 3, 0, 0, 0 }, + { 0, 10, 0, 1, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_125[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_127[] = { { 634293468000000000ULL, 0ULL, 60, @@ -3332,7 +3180,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_125[] = { { { 0, 1, 5, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_127[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_129[] = { { 633978108000000000ULL, 0ULL, 60, @@ -3354,7 +3202,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_127[] = { { { 0, 3, 0, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_128[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_130[] = { { 633031164000000000ULL, 0ULL, 60, @@ -3376,7 +3224,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_128[] = { { { 0, 9, 0, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_130[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_132[] = { { 633978108000000000ULL, 633663612000000000ULL, 60, @@ -3447,14 +3295,21 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_130[] = { { { 0, 11, 0, 1, 2, 0, 0, 0 }, }, { - 3155378076000000000ULL, + 637133436000000000ULL, 636818940000000000ULL, 60, - { 0, 1, 0, 3, 3, 0, 0, 0 }, - { 0, 11, 0, 1, 2, 0, 0, 0 }, + { 0, 1, 0, 2, 3, 0, 0, 0 }, + { 0, 11, 0, 2, 2, 0, 0, 0 }, + }, + { + 3155378076000000000ULL, + 637134300000000000ULL, + 60, + { 0, 1, 0, 2, 3, 0, 0, 0 }, + { 0, 11, 0, 2, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_131[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_133[] = { { 3155378076000000000ULL, 0ULL, 60, @@ -3462,7 +3317,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_131[] = { { { 0, 3, 0, 5, 2, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_132[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_134[] = { { 633031164000000000ULL, 0ULL, 60, @@ -3484,7 +3339,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_132[] = { { { 0, 9, 0, 5, 2, 45, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_134[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_136[] = { { 636187356000000000ULL, 635871996000000000ULL, 60, @@ -3499,7 +3354,7 @@ static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_134[] = { { { 0, 1, 0, 1, 0, 0, 0, 0 }, } }; -static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_135[] = { { +static const TIME_ZONE_RULE_ENTRY TimeZoneRuleTable_137[] = { { 633978108000000000ULL, 0ULL, 0, @@ -3561,7 +3416,7 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { { "Central Standard Time", 360, TRUE, "(UTC-06:00) Central Time (US & Canada)", "Central Standard Time", "Central Daylight Time", TimeZoneRuleTable_14, 2 }, { "Easter Island Standard Time", 360, TRUE, "(UTC-06:00) Easter Island", - "Easter Island Standard Time", "Easter Island Daylight Time", TimeZoneRuleTable_15, 10 }, + "Easter Island Standard Time", "Easter Island Daylight Time", TimeZoneRuleTable_15, 13 }, { "Central Standard Time (Mexico)", 360, TRUE, "(UTC-06:00) Guadalajara, Mexico City, Monterrey", "Central Standard Time (Mexico)", "Central Daylight Time (Mexico)", TimeZoneRuleTable_16, 1 }, @@ -3589,18 +3444,18 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { "Venezuela Daylight Time", TimeZoneRuleTable_27, 10 }, { "Central Brazilian Standard Time", 240, TRUE, "(UTC-04:00) Cuiaba", "Central Brazilian Standard Time", "Central Brazilian Daylight Time", TimeZoneRuleTable_28, - 37 }, + 16 }, { "SA Western Standard Time", 240, FALSE, "(UTC-04:00) Georgetown, La Paz, Manaus, San Juan", "SA Western Standard Time", "SA Western Daylight Time", NULL, 0 }, { "Pacific SA Standard Time", 240, TRUE, "(UTC-04:00) Santiago", "Pacific SA Standard Time", - "Pacific SA Daylight Time", TimeZoneRuleTable_30, 10 }, + "Pacific SA Daylight Time", TimeZoneRuleTable_30, 13 }, { "Newfoundland Standard Time", 210, TRUE, "(UTC-03:30) Newfoundland", "Newfoundland Standard Time", "Newfoundland Daylight Time", TimeZoneRuleTable_31, 7 }, { "Tocantins Standard Time", 180, TRUE, "(UTC-03:00) Araguaina", "Tocantins Standard Time", "Tocantins Daylight Time", TimeZoneRuleTable_32, 2 }, { "E. South America Standard Time", 180, TRUE, "(UTC-03:00) Brasilia", "E. South America Standard Time", "E. South America Daylight Time", TimeZoneRuleTable_33, - 37 }, + 16 }, { "SA Eastern Standard Time", 180, FALSE, "(UTC-03:00) Cayenne, Fortaleza", "SA Eastern Standard Time", "SA Eastern Daylight Time", NULL, 0 }, { "Argentina Standard Time", 180, TRUE, "(UTC-03:00) City of Buenos Aires", @@ -3625,22 +3480,22 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { "Cabo Verde Standard Time", "Cabo Verde Daylight Time", NULL, 0 }, { "UTC", 0, FALSE, "(UTC) Coordinated Universal Time", "Coordinated Universal Time", "Coordinated Universal Time", NULL, 0 }, - { "Morocco Standard Time", 0, TRUE, "(UTC+00:00) Casablanca", "Morocco Standard Time", - "Morocco Daylight Time", TimeZoneRuleTable_46, 12 }, { "GMT Standard Time", 0, TRUE, "(UTC+00:00) Dublin, Edinburgh, Lisbon, London", - "GMT Standard Time", "GMT Daylight Time", TimeZoneRuleTable_47, 1 }, + "GMT Standard Time", "GMT Daylight Time", TimeZoneRuleTable_46, 1 }, { "Greenwich Standard Time", 0, FALSE, "(UTC+00:00) Monrovia, Reykjavik", "Greenwich Standard Time", "Greenwich Daylight Time", NULL, 0 }, + { "Sao Tome Standard Time", 0, TRUE, "(UTC+00:00) Sao Tome", "Sao Tome Standard Time", + "Sao Tome Daylight Time", TimeZoneRuleTable_48, 2 }, + { "Morocco Standard Time", 0, TRUE, "(UTC+01:00) Casablanca", "Morocco Standard Time", + "Morocco Daylight Time", TimeZoneRuleTable_49, 13 }, { "W. Europe Standard Time", -60, TRUE, "(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna", "W. Europe Standard Time", - "W. Europe Daylight Time", TimeZoneRuleTable_49, 1 }, + "W. Europe Daylight Time", TimeZoneRuleTable_50, 1 }, { "Central Europe Standard Time", -60, TRUE, "(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague", - "Central Europe Standard Time", "Central Europe Daylight Time", TimeZoneRuleTable_50, 1 }, + "Central Europe Standard Time", "Central Europe Daylight Time", TimeZoneRuleTable_51, 1 }, { "Romance Standard Time", -60, TRUE, "(UTC+01:00) Brussels, Copenhagen, Madrid, Paris", - "Romance Standard Time", "Romance Daylight Time", TimeZoneRuleTable_51, 1 }, - { "Sao Tome Standard Time", -60, TRUE, "(UTC+01:00) Sao Tome", "Sao Tome Standard Time", - "Sao Tome Daylight Time", TimeZoneRuleTable_52, 2 }, + "Romance Standard Time", "Romance Daylight Time", TimeZoneRuleTable_52, 1 }, { "Central European Standard Time", -60, TRUE, "(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb", "Central European Standard Time", "Central European Daylight Time", TimeZoneRuleTable_53, 1 }, { "W. Central Africa Standard Time", -60, FALSE, "(UTC+01:00) West Central Africa", @@ -3658,7 +3513,7 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { { "Syria Standard Time", -120, TRUE, "(UTC+02:00) Damascus", "Syria Standard Time", "Syria Daylight Time", TimeZoneRuleTable_60, 17 }, { "West Bank Standard Time", -120, TRUE, "(UTC+02:00) Gaza, Hebron", - "West Bank Gaza Standard Time", "West Bank Gaza Daylight Time", TimeZoneRuleTable_61, 7 }, + "West Bank Gaza Standard Time", "West Bank Gaza Daylight Time", TimeZoneRuleTable_61, 9 }, { "South Africa Standard Time", -120, FALSE, "(UTC+02:00) Harare, Pretoria", "South Africa Standard Time", "South Africa Daylight Time", NULL, 0 }, { "FLE Standard Time", -120, TRUE, "(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius", @@ -3681,7 +3536,7 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { "Arab Daylight Time", NULL, 0 }, { "Belarus Standard Time", -180, TRUE, "(UTC+03:00) Minsk", "Belarus Standard Time", "Belarus Daylight Time", TimeZoneRuleTable_72, 2 }, - { "Russian Standard Time", -180, TRUE, "(UTC+03:00) Moscow, St. Petersburg, Volgograd", + { "Russian Standard Time", -180, TRUE, "(UTC+03:00) Moscow, St. Petersburg", "Russia TZ 2 Standard Time", "Russia TZ 2 Daylight Time", TimeZoneRuleTable_73, 5 }, { "E. Africa Standard Time", -180, FALSE, "(UTC+03:00) Nairobi", "E. Africa Standard Time", "E. Africa Daylight Time", NULL, 0 }, @@ -3701,16 +3556,20 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { "Saratov Daylight Time", TimeZoneRuleTable_81, 5 }, { "Georgian Standard Time", -240, FALSE, "(UTC+04:00) Tbilisi", "Georgian Standard Time", "Georgian Daylight Time", NULL, 0 }, + { "Volgograd Standard Time", -240, TRUE, "(UTC+04:00) Volgograd", "Volgograd Standard Time", + "Volgograd Daylight Time", TimeZoneRuleTable_83, 7 }, { "Caucasus Standard Time", -240, TRUE, "(UTC+04:00) Yerevan", "Caucasus Standard Time", - "Caucasus Daylight Time", TimeZoneRuleTable_83, 1 }, + "Caucasus Daylight Time", TimeZoneRuleTable_84, 1 }, { "Afghanistan Standard Time", -270, FALSE, "(UTC+04:30) Kabul", "Afghanistan Standard Time", "Afghanistan Daylight Time", NULL, 0 }, { "West Asia Standard Time", -300, FALSE, "(UTC+05:00) Ashgabat, Tashkent", "West Asia Standard Time", "West Asia Daylight Time", NULL, 0 }, { "Ekaterinburg Standard Time", -300, TRUE, "(UTC+05:00) Ekaterinburg", - "Russia TZ 4 Standard Time", "Russia TZ 4 Daylight Time", TimeZoneRuleTable_86, 5 }, + "Russia TZ 4 Standard Time", "Russia TZ 4 Daylight Time", TimeZoneRuleTable_87, 5 }, { "Pakistan Standard Time", -300, TRUE, "(UTC+05:00) Islamabad, Karachi", - "Pakistan Standard Time", "Pakistan Daylight Time", TimeZoneRuleTable_87, 2 }, + "Pakistan Standard Time", "Pakistan Daylight Time", TimeZoneRuleTable_88, 2 }, + { "Qyzylorda Standard Time", -300, TRUE, "(UTC+05:00) Qyzylorda", "Qyzylorda Standard Time", + "Qyzylorda Daylight Time", TimeZoneRuleTable_89, 2 }, { "India Standard Time", -330, FALSE, "(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi", "India Standard Time", "India Daylight Time", NULL, 0 }, { "Sri Lanka Standard Time", -330, FALSE, "(UTC+05:30) Sri Jayawardenepura", @@ -3720,93 +3579,93 @@ const TIME_ZONE_ENTRY TimeZoneTable[] = { { "Central Asia Standard Time", -360, FALSE, "(UTC+06:00) Astana", "Central Asia Standard Time", "Central Asia Daylight Time", NULL, 0 }, { "Bangladesh Standard Time", -360, TRUE, "(UTC+06:00) Dhaka", "Bangladesh Standard Time", - "Bangladesh Daylight Time", TimeZoneRuleTable_92, 1 }, + "Bangladesh Daylight Time", TimeZoneRuleTable_94, 1 }, { "Omsk Standard Time", -360, TRUE, "(UTC+06:00) Omsk", "Omsk Standard Time", - "Omsk Daylight Time", TimeZoneRuleTable_93, 5 }, + "Omsk Daylight Time", TimeZoneRuleTable_95, 5 }, { "Myanmar Standard Time", -390, FALSE, "(UTC+06:30) Yangon (Rangoon)", "Myanmar Standard Time", "Myanmar Daylight Time", NULL, 0 }, { "SE Asia Standard Time", -420, FALSE, "(UTC+07:00) Bangkok, Hanoi, Jakarta", "SE Asia Standard Time", "SE Asia Daylight Time", NULL, 0 }, { "Altai Standard Time", -420, TRUE, "(UTC+07:00) Barnaul, Gorno-Altaysk", - "Altai Standard Time", "Altai Daylight Time", TimeZoneRuleTable_96, 5 }, + "Altai Standard Time", "Altai Daylight Time", TimeZoneRuleTable_98, 5 }, { "W. Mongolia Standard Time", -420, TRUE, "(UTC+07:00) Hovd", "W. Mongolia Standard Time", - "W. Mongolia Daylight Time", TimeZoneRuleTable_97, 3 }, + "W. Mongolia Daylight Time", TimeZoneRuleTable_99, 3 }, { "North Asia Standard Time", -420, TRUE, "(UTC+07:00) Krasnoyarsk", - "Russia TZ 6 Standard Time", "Russia TZ 6 Daylight Time", TimeZoneRuleTable_98, 5 }, + "Russia TZ 6 Standard Time", "Russia TZ 6 Daylight Time", TimeZoneRuleTable_100, 5 }, { "N. Central Asia Standard Time", -420, TRUE, "(UTC+07:00) Novosibirsk", - "Novosibirsk Standard Time", "Novosibirsk Daylight Time", TimeZoneRuleTable_99, 5 }, + "Novosibirsk Standard Time", "Novosibirsk Daylight Time", TimeZoneRuleTable_101, 5 }, { "Tomsk Standard Time", -420, TRUE, "(UTC+07:00) Tomsk", "Tomsk Standard Time", - "Tomsk Daylight Time", TimeZoneRuleTable_100, 5 }, + "Tomsk Daylight Time", TimeZoneRuleTable_102, 5 }, { "China Standard Time", -480, FALSE, "(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi", "China Standard Time", "China Daylight Time", NULL, 0 }, { "North Asia East Standard Time", -480, TRUE, "(UTC+08:00) Irkutsk", - "Russia TZ 7 Standard Time", "Russia TZ 7 Daylight Time", TimeZoneRuleTable_102, 5 }, + "Russia TZ 7 Standard Time", "Russia TZ 7 Daylight Time", TimeZoneRuleTable_104, 5 }, { "Singapore Standard Time", -480, FALSE, "(UTC+08:00) Kuala Lumpur, Singapore", "Malay Peninsula Standard Time", "Malay Peninsula Daylight Time", NULL, 0 }, { "W. Australia Standard Time", -480, TRUE, "(UTC+08:00) Perth", "W. Australia Standard Time", - "W. Australia Daylight Time", TimeZoneRuleTable_104, 4 }, + "W. Australia Daylight Time", TimeZoneRuleTable_106, 4 }, { "Taipei Standard Time", -480, FALSE, "(UTC+08:00) Taipei", "Taipei Standard Time", "Taipei Daylight Time", NULL, 0 }, { "Ulaanbaatar Standard Time", -480, TRUE, "(UTC+08:00) Ulaanbaatar", - "Ulaanbaatar Standard Time", "Ulaanbaatar Daylight Time", TimeZoneRuleTable_106, 2 }, + "Ulaanbaatar Standard Time", "Ulaanbaatar Daylight Time", TimeZoneRuleTable_108, 2 }, { "Aus Central W. Standard Time", -525, FALSE, "(UTC+08:45) Eucla", "Aus Central W. Standard Time", "Aus Central W. Daylight Time", NULL, 0 }, { "Transbaikal Standard Time", -540, TRUE, "(UTC+09:00) Chita", "Transbaikal Standard Time", - "Transbaikal Daylight Time", TimeZoneRuleTable_108, 7 }, + "Transbaikal Daylight Time", TimeZoneRuleTable_110, 7 }, { "Tokyo Standard Time", -540, FALSE, "(UTC+09:00) Osaka, Sapporo, Tokyo", "Tokyo Standard Time", "Tokyo Daylight Time", NULL, 0 }, { "North Korea Standard Time", -540, TRUE, "(UTC+09:00) Pyongyang", "North Korea Standard Time", - "North Korea Daylight Time", TimeZoneRuleTable_110, 4 }, + "North Korea Daylight Time", TimeZoneRuleTable_112, 4 }, { "Korea Standard Time", -540, FALSE, "(UTC+09:00) Seoul", "Korea Standard Time", "Korea Daylight Time", NULL, 0 }, { "Yakutsk Standard Time", -540, TRUE, "(UTC+09:00) Yakutsk", "Russia TZ 8 Standard Time", - "Russia TZ 8 Daylight Time", TimeZoneRuleTable_112, 5 }, + "Russia TZ 8 Daylight Time", TimeZoneRuleTable_114, 5 }, { "Cen. Australia Standard Time", -570, TRUE, "(UTC+09:30) Adelaide", - "Cen. Australia Standard Time", "Cen. Australia Daylight Time", TimeZoneRuleTable_113, 2 }, + "Cen. Australia Standard Time", "Cen. Australia Daylight Time", TimeZoneRuleTable_115, 2 }, { "AUS Central Standard Time", -570, FALSE, "(UTC+09:30) Darwin", "AUS Central Standard Time", "AUS Central Daylight Time", NULL, 0 }, { "E. Australia Standard Time", -600, FALSE, "(UTC+10:00) Brisbane", "E. Australia Standard Time", "E. Australia Daylight Time", NULL, 0 }, { "AUS Eastern Standard Time", -600, TRUE, "(UTC+10:00) Canberra, Melbourne, Sydney", - "AUS Eastern Standard Time", "AUS Eastern Daylight Time", TimeZoneRuleTable_116, 2 }, + "AUS Eastern Standard Time", "AUS Eastern Daylight Time", TimeZoneRuleTable_118, 2 }, { "West Pacific Standard Time", -600, FALSE, "(UTC+10:00) Guam, Port Moresby", "West Pacific Standard Time", "West Pacific Daylight Time", NULL, 0 }, { "Tasmania Standard Time", -600, TRUE, "(UTC+10:00) Hobart", "Tasmania Standard Time", - "Tasmania Daylight Time", TimeZoneRuleTable_118, 2 }, + "Tasmania Daylight Time", TimeZoneRuleTable_120, 2 }, { "Vladivostok Standard Time", -600, TRUE, "(UTC+10:00) Vladivostok", - "Russia TZ 9 Standard Time", "Russia TZ 9 Daylight Time", TimeZoneRuleTable_119, 5 }, + "Russia TZ 9 Standard Time", "Russia TZ 9 Daylight Time", TimeZoneRuleTable_121, 5 }, { "Lord Howe Standard Time", -630, TRUE, "(UTC+10:30) Lord Howe Island", - "Lord Howe Standard Time", "Lord Howe Daylight Time", TimeZoneRuleTable_120, 4 }, + "Lord Howe Standard Time", "Lord Howe Daylight Time", TimeZoneRuleTable_122, 4 }, { "Bougainville Standard Time", -660, TRUE, "(UTC+11:00) Bougainville Island", - "Bougainville Standard Time", "Bougainville Daylight Time", TimeZoneRuleTable_121, 2 }, + "Bougainville Standard Time", "Bougainville Daylight Time", TimeZoneRuleTable_123, 2 }, { "Russia Time Zone 10", -660, TRUE, "(UTC+11:00) Chokurdakh", "Russia TZ 10 Standard Time", - "Russia TZ 10 Daylight Time", TimeZoneRuleTable_122, 5 }, + "Russia TZ 10 Daylight Time", TimeZoneRuleTable_124, 5 }, { "Magadan Standard Time", -660, TRUE, "(UTC+11:00) Magadan", "Magadan Standard Time", - "Magadan Daylight Time", TimeZoneRuleTable_123, 7 }, + "Magadan Daylight Time", TimeZoneRuleTable_125, 7 }, { "Norfolk Standard Time", -660, TRUE, "(UTC+11:00) Norfolk Island", "Norfolk Standard Time", - "Norfolk Daylight Time", TimeZoneRuleTable_124, 2 }, + "Norfolk Daylight Time", TimeZoneRuleTable_126, 4 }, { "Sakhalin Standard Time", -660, TRUE, "(UTC+11:00) Sakhalin", "Sakhalin Standard Time", - "Sakhalin Daylight Time", TimeZoneRuleTable_125, 5 }, + "Sakhalin Daylight Time", TimeZoneRuleTable_127, 5 }, { "Central Pacific Standard Time", -660, FALSE, "(UTC+11:00) Solomon Is., New Caledonia", "Central Pacific Standard Time", "Central Pacific Daylight Time", NULL, 0 }, { "Russia Time Zone 11", -720, TRUE, "(UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky", - "Russia TZ 11 Standard Time", "Russia TZ 11 Daylight Time", TimeZoneRuleTable_127, 3 }, + "Russia TZ 11 Standard Time", "Russia TZ 11 Daylight Time", TimeZoneRuleTable_129, 3 }, { "New Zealand Standard Time", -720, TRUE, "(UTC+12:00) Auckland, Wellington", - "New Zealand Standard Time", "New Zealand Daylight Time", TimeZoneRuleTable_128, 3 }, + "New Zealand Standard Time", "New Zealand Daylight Time", TimeZoneRuleTable_130, 3 }, { "UTC+12", -720, FALSE, "(UTC+12:00) Coordinated Universal Time+12", "UTC+12", "UTC+12", NULL, 0 }, { "Fiji Standard Time", -720, TRUE, "(UTC+12:00) Fiji", "Fiji Standard Time", - "Fiji Daylight Time", TimeZoneRuleTable_130, 11 }, + "Fiji Daylight Time", TimeZoneRuleTable_132, 12 }, { "Kamchatka Standard Time", -720, TRUE, "(UTC+12:00) Petropavlovsk-Kamchatsky - Old", - "Kamchatka Standard Time", "Kamchatka Daylight Time", TimeZoneRuleTable_131, 1 }, + "Kamchatka Standard Time", "Kamchatka Daylight Time", TimeZoneRuleTable_133, 1 }, { "Chatham Islands Standard Time", -765, TRUE, "(UTC+12:45) Chatham Islands", - "Chatham Islands Standard Time", "Chatham Islands Daylight Time", TimeZoneRuleTable_132, 3 }, + "Chatham Islands Standard Time", "Chatham Islands Daylight Time", TimeZoneRuleTable_134, 3 }, { "UTC+13", -780, FALSE, "(UTC+13:00) Coordinated Universal Time+13", "UTC+13", "UTC+13", NULL, 0 }, { "Tonga Standard Time", -780, TRUE, "(UTC+13:00) Nuku'alofa", "Tonga Standard Time", - "Tonga Daylight Time", TimeZoneRuleTable_134, 2 }, + "Tonga Daylight Time", TimeZoneRuleTable_136, 2 }, { "Samoa Standard Time", -780, TRUE, "(UTC+13:00) Samoa", "Samoa Standard Time", - "Samoa Daylight Time", TimeZoneRuleTable_135, 4 }, + "Samoa Daylight Time", TimeZoneRuleTable_137, 4 }, { "Line Islands Standard Time", -840, FALSE, "(UTC+14:00) Kiritimati Island", "Line Islands Standard Time", "Line Islands Daylight Time", NULL, 0 } };